diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-01-01 18:17:29 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-01-01 23:30:30 +0100 |
commit | 4a6e889feba7bb382bb9e356d15e8260a256ced4 (patch) | |
tree | 4a54328cec68d2c56ebae6008d16e0ab6c2fe9d7 | |
parent | 7be13d00063fe6da40e02769b00f5888515ca367 (diff) | |
download | guix-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.scm | 10 |
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 |