aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-01-01 18:17:29 +0100
committerLudovic Courtès <ludo@gnu.org>2017-01-01 23:30:30 +0100
commit4a6e889feba7bb382bb9e356d15e8260a256ced4 (patch)
tree4a54328cec68d2c56ebae6008d16e0ab6c2fe9d7
parent7be13d00063fe6da40e02769b00f5888515ca367 (diff)
downloadguix-4a6e889feba7bb382bb9e356d15e8260a256ced4.tar
guix-4a6e889feba7bb382bb9e356d15e8260a256ced4.tar.gz
gexp: Properly report substitution errors.
* guix/gexp.scm (gexp)[substitute-ungexp]: Wrap body in 'with-syntax' and pass EXP as the last argument to 'syntax-error'. [substitute-ungexp-splicing]: Pass EXP as the last argument to 'syntax-error'.
-rw-r--r--guix/gexp.scm10
1 files changed, 5 insertions, 5 deletions
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 6f63afe6a6..79a7b18b09 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -846,9 +846,9 @@ environment."
(match (assoc exp substs)
((_ id)
id)
- (_
- #'(syntax-error "error: no 'ungexp' substitution"
- #'ref))))
+ (_ ;internal error
+ (with-syntax ((exp exp))
+ #'(syntax-error "error: no 'ungexp' substitution" exp)))))
(define (substitute-ungexp-splicing exp substs)
(syntax-case exp ()
@@ -860,7 +860,7 @@ environment."
#,(substitute-references #'(rest ...) substs))))
(_
#'(syntax-error "error: no 'ungexp-splicing' substitution"
- #'ref))))))
+ exp))))))
(define (substitute-references exp substs)
;; Return a variant of EXP where all the cars of SUBSTS have been