diff options
-rw-r--r-- | guix/gexp.scm | 3 | ||||
-rw-r--r-- | tests/gexp.scm | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/guix/gexp.scm b/guix/gexp.scm index 38114f8863..9fdb7a30be 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -181,7 +181,8 @@ As a result, the S-expression will be approximate if GEXP has references." (#true ;; Simply returning 'thing' won't work in some ;; situations; see 'write-gexp' below. - '(*approximate*)))))) + '(*approximate*)))) + (($ <gexp-output>) '(*approximate*)))) (gexp-references gexp)))) (define (write-gexp gexp port) diff --git a/tests/gexp.scm b/tests/gexp.scm index 61ed5bc02d..c80ca13fab 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -148,6 +148,11 @@ (null? (gexp-inputs exp)) (gexp->sexp* exp)))) +(test-equal "gexp->approximate-sexp, outputs" + '(list 'out:foo (*approximate*) 'out:bar (*approximate*)) + (gexp->approximate-sexp + #~(list 'out:foo #$output:foo 'out:bar #$output:bar))) + (test-equal "unquote" '(display `(foo ,(+ 2 3))) (let ((exp (gexp (display `(foo ,(+ 2 3)))))) |