From dc856223f5eab57d8a4881782ec0f50abd12afa3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 9 Nov 2017 23:31:18 +0100 Subject: ui: Add an 'unbound-variable' exception printer. * guix/ui.scm (print-unbound-variable-error): New variable. Use it as the 'unbound-variable' printer. --- guix/ui.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/guix/ui.scm b/guix/ui.scm index 9f790b6451..05782a537e 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -149,6 +149,18 @@ messages." (report-error args ...) (exit 1))) +(define (print-unbound-variable-error port key args default-printer) + ;; Print unbound variable errors more nicely, and in the right language. + (match args + ((proc message (variable) _ ...) + ;; We can always omit PROC because when it's useful (i.e., different from + ;; "module-lookup"), it gets displayed before. + (format port (G_ "~a: unbound variable") variable)) + (_ + (default-printer)))) + +(set-exception-printer! 'unbound-variable print-unbound-variable-error) + (define (make-user-module modules) "Return a new user module with the additional MODULES loaded." ;; Module in which the machine description file is loaded. -- cgit v1.2.3