From 2363bdd707ba382d89c96e03c04038c047d7228c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 19 Apr 2017 16:11:25 +0200 Subject: gexp: 'gexp-modules' accepts plain Scheme objects. * guix/gexp.scm (gexp-modules): Return '() when not (gexp? GEXP). * tests/gexp.scm ("gexp-modules and literal Scheme object"): New test. --- guix/gexp.scm | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'guix/gexp.scm') diff --git a/guix/gexp.scm b/guix/gexp.scm index 80d8f735b3..d9c4cb461e 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -459,21 +459,24 @@ whether this should be considered a \"native\" input or not." (set-record-type-printer! write-gexp-output) (define (gexp-modules gexp) - "Return the list of Guile module names GEXP relies on." - (delete-duplicates - (append (gexp-self-modules gexp) - (append-map (match-lambda - (($ (? gexp? exp)) - (gexp-modules exp)) - (($ (lst ...)) - (append-map (lambda (item) - (if (gexp? item) - (gexp-modules item) - '())) - lst)) - (_ - '())) - (gexp-references gexp))))) + "Return the list of Guile module names GEXP relies on. If (gexp? GEXP) is +false, meaning that GEXP is a plain Scheme object, return the empty list." + (if (gexp? gexp) + (delete-duplicates + (append (gexp-self-modules gexp) + (append-map (match-lambda + (($ (? gexp? exp)) + (gexp-modules exp)) + (($ (lst ...)) + (append-map (lambda (item) + (if (gexp? item) + (gexp-modules item) + '())) + lst)) + (_ + '())) + (gexp-references gexp)))) + '())) ;plain Scheme data type (define* (lower-inputs inputs #:key system target) -- cgit v1.2.3