On 23-02-2023 12:38, Ludovic Courtès wrote:
Do you have a simple reproducer and a before/after comparison showing what Guile prints?
Simpler reproducer:
(define-syntax syntax-stuff-twice
(lambda (s)
(define (f x)
(syntax-case x ()
(#:this #''this)
(#:that #''that)))
(define (g y)
(syntax-case y ()
(#:cat #''cat)
(#:dog #''dog)))
(syntax-case s ()
((_)
;; Let's compute some syntax, for some reason.
;; (Hence, the syntax doesn't have line information
;; that might be an acceptable alternative to
;; a backtrace.)
(let ((x (datum->syntax #f "foo"))
(y (datum->syntax #f "bar")))
#`(list #,(f x) #,(g y)))))))
(syntax-stuff-twice 'this #:cat) ; <- L21
;; Before:
;; .../reproducer.scm:21:0: source expression failed to match any
pattern in form (quote this)
;; ;; After: ??? the same thing! Looks like another patch is needed.Looks like the patch I sent doesn't actually accomplish what it was supposed to solve ...
Greetings, Maxime.
OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key
OpenPGP_signature
Description: OpenPGP digital signature
