guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 01/03: psyntax: Preserve source location information for


From: Ludovic Courtès
Subject: [Guile-commits] 01/03: psyntax: Preserve source location information for top-level references.
Date: Sat, 7 Mar 2020 10:04:23 -0500 (EST)

civodul pushed a commit to branch master
in repository guile.

commit d3a775ff10cbd0e14af38d6f900a7538db89bd90
Author: Ludovic Courtès <address@hidden>
AuthorDate: Sat Mar 7 15:50:13 2020 +0100

    psyntax: Preserve source location information for top-level references.
    
    Fixes <https://bugs.gnu.org/38388>.
    
    * module/ice-9/psyntax.scm (expand-expr): In 'build-global-reference'
    call, pass S when (source-annotation (car e)) returns #f.
    * module/ice-9/psyntax-pp.scm: Regenerate.
---
 module/ice-9/psyntax-pp.scm | 87 +++++++++++++++++++++++----------------------
 module/ice-9/psyntax.scm    |  2 +-
 2 files changed, 46 insertions(+), 43 deletions(-)

diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm
index b19ed77..9575825 100644
--- a/module/ice-9/psyntax-pp.scm
+++ b/module/ice-9/psyntax-pp.scm
@@ -865,7 +865,7 @@
                  ((memv key '(global-call))
                   (expand-call
                     (build-global-reference
-                      (source-annotation (car e))
+                      (or (source-annotation (car e)) s)
                       (if (syntax? value) (syntax-expression value) value)
                       (if (syntax? value) (syntax-module value) mod))
                     e
@@ -987,11 +987,11 @@
                          (source-wrap e w (cdr w) mod)
                          x))
                       (else (decorate-source x s))))))
-           (let* ((t-680b775fb37a463-d6b transformer-environment)
-                  (t-680b775fb37a463-d6c (lambda (k) (k e r w s rib mod))))
+           (let* ((t-680b775fb37a463-d6f transformer-environment)
+                  (t-680b775fb37a463-d70 (lambda (k) (k e r w s rib mod))))
              (with-fluid*
-               t-680b775fb37a463-d6b
-               t-680b775fb37a463-d6c
+               t-680b775fb37a463-d6f
+               t-680b775fb37a463-d70
                (lambda ()
                  (rebuild-macro-output
                    (p (source-wrap e (anti-mark w) s mod))
@@ -1554,11 +1554,11 @@
                                           s
                                           mod
                                           get-formals
-                                          (map (lambda (tmp-680b775fb37a463-fdc
-                                                        tmp-680b775fb37a463-fdb
-                                                        
tmp-680b775fb37a463-fda)
-                                                 (cons tmp-680b775fb37a463-fda
-                                                       (cons 
tmp-680b775fb37a463-fdb tmp-680b775fb37a463-fdc)))
+                                          (map (lambda (tmp-680b775fb37a463-fe0
+                                                        tmp-680b775fb37a463-fdf
+                                                        
tmp-680b775fb37a463-fde)
+                                                 (cons tmp-680b775fb37a463-fde
+                                                       (cons 
tmp-680b775fb37a463-fdf tmp-680b775fb37a463-fe0)))
                                                e2*
                                                e1*
                                                args*)))
@@ -2823,9 +2823,11 @@
                            #f
                            k
                            '()
-                           (map (lambda (tmp-680b775fb37a463-2 
tmp-680b775fb37a463-1 tmp-680b775fb37a463)
-                                  (list (cons tmp-680b775fb37a463 
tmp-680b775fb37a463-1)
-                                        tmp-680b775fb37a463-2))
+                           (map (lambda (tmp-680b775fb37a463-110d
+                                         tmp-680b775fb37a463-110c
+                                         tmp-680b775fb37a463-110b)
+                                  (list (cons tmp-680b775fb37a463-110b 
tmp-680b775fb37a463-110c)
+                                        tmp-680b775fb37a463-110d))
                                 template
                                 pattern
                                 keyword)))
@@ -2858,11 +2860,11 @@
                                    dots
                                    k
                                    '()
-                                   (map (lambda (tmp-680b775fb37a463-113b
-                                                 tmp-680b775fb37a463-113a
-                                                 tmp-680b775fb37a463)
-                                          (list (cons tmp-680b775fb37a463 
tmp-680b775fb37a463-113a)
-                                                tmp-680b775fb37a463-113b))
+                                   (map (lambda (tmp-680b775fb37a463-113f
+                                                 tmp-680b775fb37a463-113e
+                                                 tmp-680b775fb37a463-113d)
+                                          (list (cons tmp-680b775fb37a463-113d 
tmp-680b775fb37a463-113e)
+                                                tmp-680b775fb37a463-113f))
                                         template
                                         pattern
                                         keyword)))
@@ -2878,9 +2880,11 @@
                                        dots
                                        k
                                        (list docstring)
-                                       (map (lambda (tmp-680b775fb37a463-115a 
tmp-680b775fb37a463-1 tmp-680b775fb37a463)
-                                              (list (cons tmp-680b775fb37a463 
tmp-680b775fb37a463-1)
-                                                    tmp-680b775fb37a463-115a))
+                                       (map (lambda (tmp-680b775fb37a463-115e
+                                                     tmp-680b775fb37a463-115d
+                                                     tmp-680b775fb37a463-115c)
+                                              (list (cons 
tmp-680b775fb37a463-115c tmp-680b775fb37a463-115d)
+                                                    tmp-680b775fb37a463-115e))
                                             template
                                             pattern
                                             keyword)))
@@ -3028,8 +3032,8 @@
                                                (apply (lambda (p)
                                                         (if (= lev 0)
                                                           (quasilist*
-                                                            (map (lambda 
(tmp-680b775fb37a463-120a)
-                                                                   (list 
"value" tmp-680b775fb37a463-120a))
+                                                            (map (lambda 
(tmp-680b775fb37a463-120e)
+                                                                   (list 
"value" tmp-680b775fb37a463-120e))
                                                                  p)
                                                             (quasi q lev))
                                                           (quasicons
@@ -3052,8 +3056,8 @@
                                                    (apply (lambda (p)
                                                             (if (= lev 0)
                                                               (quasiappend
-                                                                (map (lambda 
(tmp-680b775fb37a463-120f)
-                                                                       (list 
"value" tmp-680b775fb37a463-120f))
+                                                                (map (lambda 
(tmp-680b775fb37a463)
+                                                                       (list 
"value" tmp-680b775fb37a463))
                                                                      p)
                                                                 (quasi q lev))
                                                               (quasicons
@@ -3106,8 +3110,8 @@
                                       (apply (lambda (p)
                                                (if (= lev 0)
                                                  (quasiappend
-                                                   (map (lambda 
(tmp-680b775fb37a463-122a)
-                                                          (list "value" 
tmp-680b775fb37a463-122a))
+                                                   (map (lambda 
(tmp-680b775fb37a463-122e)
+                                                          (list "value" 
tmp-680b775fb37a463-122e))
                                                         p)
                                                    (vquasi q lev))
                                                  (quasicons
@@ -3207,8 +3211,7 @@
                        (let ((tmp-1 ($sc-dispatch tmp '(#(atom "quote") 
each-any))))
                          (if tmp-1
                            (apply (lambda (y)
-                                    (k (map (lambda (tmp-680b775fb37a463-127f)
-                                              (list "quote" 
tmp-680b775fb37a463-127f))
+                                    (k (map (lambda (tmp-680b775fb37a463) 
(list "quote" tmp-680b775fb37a463))
                                             y)))
                                   tmp-1)
                            (let ((tmp-1 ($sc-dispatch tmp '(#(atom "list") . 
each-any))))
@@ -3219,8 +3222,8 @@
                                    (apply (lambda (y z) (f z (lambda (ls) (k 
(append y ls))))) tmp-1)
                                    (let ((else tmp))
                                      (let ((tmp x))
-                                       (let ((t-680b775fb37a463-128e tmp))
-                                         (list "list->vector" 
t-680b775fb37a463-128e)))))))))))))))))
+                                       (let ((t-680b775fb37a463 tmp))
+                                         (list "list->vector" 
t-680b775fb37a463)))))))))))))))))
          (emit (lambda (x)
                  (let ((tmp x))
                    (let ((tmp-1 ($sc-dispatch tmp '(#(atom "quote") any))))
@@ -3233,9 +3236,9 @@
                                     (let ((tmp-1 (map emit x)))
                                       (let ((tmp ($sc-dispatch tmp-1 
'each-any)))
                                         (if tmp
-                                          (apply (lambda 
(t-680b775fb37a463-129d)
+                                          (apply (lambda 
(t-680b775fb37a463-12a1)
                                                    (cons (make-syntax 'list 
'((top)) '(hygiene guile))
-                                                         
t-680b775fb37a463-129d))
+                                                         
t-680b775fb37a463-12a1))
                                                  tmp)
                                           (syntax-violation
                                             #f
@@ -3251,10 +3254,10 @@
                                             (let ((tmp-1 (list (emit (car x*)) 
(f (cdr x*)))))
                                               (let ((tmp ($sc-dispatch tmp-1 
'(any any))))
                                                 (if tmp
-                                                  (apply (lambda 
(t-680b775fb37a463-12b1 t-680b775fb37a463-12b0)
+                                                  (apply (lambda 
(t-680b775fb37a463-12b5 t-680b775fb37a463-12b4)
                                                            (list (make-syntax 
'cons '((top)) '(hygiene guile))
-                                                                 
t-680b775fb37a463-12b1
-                                                                 
t-680b775fb37a463-12b0))
+                                                                 
t-680b775fb37a463-12b5
+                                                                 
t-680b775fb37a463-12b4))
                                                          tmp)
                                                   (syntax-violation
                                                     #f
@@ -3267,9 +3270,9 @@
                                             (let ((tmp-1 (map emit x)))
                                               (let ((tmp ($sc-dispatch tmp-1 
'each-any)))
                                                 (if tmp
-                                                  (apply (lambda 
(t-680b775fb37a463-12bd)
+                                                  (apply (lambda 
(t-680b775fb37a463-12c1)
                                                            (cons (make-syntax 
'append '((top)) '(hygiene guile))
-                                                                 
t-680b775fb37a463-12bd))
+                                                                 
t-680b775fb37a463-12c1))
                                                          tmp)
                                                   (syntax-violation
                                                     #f
@@ -3282,9 +3285,9 @@
                                                 (let ((tmp-1 (map emit x)))
                                                   (let ((tmp ($sc-dispatch 
tmp-1 'each-any)))
                                                     (if tmp
-                                                      (apply (lambda 
(t-680b775fb37a463-12c9)
+                                                      (apply (lambda 
(t-680b775fb37a463-12cd)
                                                                (cons 
(make-syntax 'vector '((top)) '(hygiene guile))
-                                                                     
t-680b775fb37a463-12c9))
+                                                                     
t-680b775fb37a463-12cd))
                                                              tmp)
                                                       (syntax-violation
                                                         #f
@@ -3295,9 +3298,9 @@
                                          (if tmp-1
                                            (apply (lambda (x)
                                                     (let ((tmp (emit x)))
-                                                      (let 
((t-680b775fb37a463-12d5 tmp))
+                                                      (let 
((t-680b775fb37a463-12d9 tmp))
                                                         (list (make-syntax 
'list->vector '((top)) '(hygiene guile))
-                                                              
t-680b775fb37a463-12d5))))
+                                                              
t-680b775fb37a463-12d9))))
                                                   tmp-1)
                                            (let ((tmp-1 ($sc-dispatch tmp 
'(#(atom "value") any))))
                                              (if tmp-1
diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm
index b97911d..b11771a 100644
--- a/module/ice-9/psyntax.scm
+++ b/module/ice-9/psyntax.scm
@@ -1437,7 +1437,7 @@
             e r w s mod))
           ((global-call)
            (expand-call
-            (build-global-reference (source-annotation (car e))
+            (build-global-reference (or (source-annotation (car e)) s)
                                     (if (syntax? value)
                                         (syntax-expression value)
                                         value)



reply via email to

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