M guix/gexp.scm => guix/gexp.scm +3 -3
@@ 314,12 314,12 @@ references."
(cons name result))
((? gexp? exp)
(append (gexp-outputs exp) result))
+ ((lst ...)
+ (fold-right add-reference-output result lst))
(_
result)))
- (fold-right add-reference-output
- '()
- (gexp-references exp)))
+ (add-reference-output (gexp-references exp) '()))
(define* (gexp->sexp exp #:key
(system (%current-system))
M tests/gexp.scm => tests/gexp.scm +10 -0
@@ 230,6 230,16 @@
(gexp-outputs exp2))
(= 2 (length (gexp-outputs exp2))))))
+(test-assert "output list + ungexp-splicing list, combined gexps"
+ (let* ((exp0 (gexp (mkdir (ungexp output))))
+ (exp1 (gexp (mkdir (ungexp output "foo"))))
+ (exp2 (gexp (begin (display "hi!")
+ (ungexp-splicing (list exp0 exp1))))))
+ (and (lset= equal?
+ (append (gexp-outputs exp0) (gexp-outputs exp1))
+ (gexp-outputs exp2))
+ (= 2 (length (gexp-outputs exp2))))))
+
(test-assertm "gexp->file"
(mlet* %store-monad ((exp -> (gexp (display (ungexp %bootstrap-guile))))
(guile (package-file %bootstrap-guile))