guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 01/03: bug#48096: [3.0.6] ‘syntax-error’ exceptions incl


From: Andy Wingo
Subject: [Guile-commits] 01/03: bug#48096: [3.0.6] ‘syntax-error’ exceptions include vectors instead of source location properties
Date: Thu, 29 Apr 2021 16:00:36 -0400 (EDT)

wingo pushed a commit to branch master
in repository guile.

commit 8847aaec41223cff191ee6d27d6d8e343e99d8ae
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Thu Apr 29 11:41:46 2021 +0200

    bug#48096: [3.0.6] ‘syntax-error’ exceptions include vectors instead of 
source location properties
    
    Hi!
    
    In 3.0.6, a slight incompatibility crept in: ‘syntax-error’ exceptions
    include vectors like #("example.scm" 1 2) instead of good’ol source
    property alists.
    
    Here is a test case that reproduces the problem:
---
 test-suite/tests/syntax.test | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/test-suite/tests/syntax.test b/test-suite/tests/syntax.test
index 10bc7b0..c60a453 100644
--- a/test-suite/tests/syntax.test
+++ b/test-suite/tests/syntax.test
@@ -1,7 +1,7 @@
 ;;;; syntax.test --- test suite for Guile's syntactic forms    -*- scheme -*-
 ;;;;
 ;;;; Copyright (C) 2001, 2003, 2004, 2005, 2006, 2009, 2010,
-;;;;   2011, 2012, 2013, 2014 Free Software Foundation, Inc.
+;;;;   2011, 2012, 2013, 2014, 2021 Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -112,6 +112,18 @@
 
   (with-test-prefix "Bad argument list"
 
+    (pass-if-equal "syntax-error location"
+        '((line . 1) (column . 2) (filename . "example.scm"))
+      (catch 'syntax-error
+        (lambda ()
+          (eval (call-with-input-string "\n  (let foo bar)"
+                  (lambda (port)
+                    (set-port-filename! port "example.scm")
+                    (read port)))
+                (interaction-environment)))
+        (lambda (key proc message properties form subform . rest)
+          properties)))
+
     (pass-if-syntax-error "improper argument list of length 1"
       exception:generic-syncase-error
       (eval '(let ((foo (lambda (x y) #t)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]