From 2e5c3d91fea5b583c541d70b4c318c2f81554d43 Mon Sep 17 00:00:00 2001 From: Maxime Devos Date: Thu, 3 Mar 2022 14:14:22 +0000 Subject: gexp: Correctly handle #$output in 'gexp->approximate-sexp'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This addresses the following backtrace from "guix lint -c wrapper-inputs hostapd": Backtrace:ostapd@2.10 [wrapper-inputs]... [...] 174:9 3 (gexp->approximate-sexp #) In srfi/srfi-1.scm: 586:17 2 (map1 (# #)) In guix/gexp.scm: 175:16 1 (_ _) In ice-9/boot-9.scm: 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: Throw to key `match-error' with args `("match" "no matching pattern" #)'. * guix/gexp.scm (gexp->approximate-sexp): Handle the case where 'reference' is a ,, by returning (*approximate*). * tests/gexp.scm ("gexp->approximate-sexp, outputs"): Test it. Signed-off-by: Ludovic Courtès --- guix/gexp.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'guix') 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*)))) + (($ ) '(*approximate*)))) (gexp-references gexp)))) (define (write-gexp gexp port) -- cgit v1.2.3