diff --git a/src/macroexpand.scm b/src/macroexpand.scm index 4349e3a5b67d6..1c1502e477c74 100644 --- a/src/macroexpand.scm +++ b/src/macroexpand.scm @@ -414,6 +414,14 @@ (body (cadr e)) (m (caddr e))) (resolve-expansion-vars-with-new-env body env m parent-scope inarg #t))) + ((tuple) + (cons (car e) + (map (lambda (x) + (if (assignment? x) + `(= ,(unescape (cadr x)) + ,(resolve-expansion-vars-with-new-env x env m parent-scope inarg)) + (resolve-expansion-vars-with-new-env x env m parent-scope inarg))) + (cdr e)))) ;; todo: trycatch (else diff --git a/test/syntax.jl b/test/syntax.jl index c557028dbf317..d8b608fd36c04 100644 --- a/test/syntax.jl +++ b/test/syntax.jl @@ -1741,6 +1741,10 @@ end end end)), :thunk) +# issue #32121 +macro id32121(x) x end +@test @id32121((a=1, b=2)) === (a=1, b=2) + # issue #30030 let x = 0 @test (a=1, b=2, c=(x=3)) == (a=1, b=2, c=3)