From 23e85274b64e337e2b150b0a2f86616d498049ec Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Sun, 22 Mar 2020 23:46:25 -0400 Subject: [PATCH] fix #35201, syntax error with named splatting inside function call (#35202) (cherry picked from commit 59d7522eaecc86783078eac8746516e3a0d8a308) --- src/julia-syntax.scm | 2 ++ test/syntax.jl | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/julia-syntax.scm b/src/julia-syntax.scm index 5c936908afb06..abc0e794facfe 100644 --- a/src/julia-syntax.scm +++ b/src/julia-syntax.scm @@ -1416,6 +1416,8 @@ `(,(car x) ,(arg-to-temp (cadr x)))) ((or (eq? (car x) 'kw) (and tup (eq? (car x) '=))) `(,(car x) ,(cadr x) ,(arg-to-temp (caddr x)))) + ((eq? (car x) 'parameters) + `(parameters ,@(map arg-to-temp (cdr x)))) ((eq? (car x) 'tuple) (let ((tmp (remove-argument-side-effects x #t))) (set! a (revappend (cdr tmp) a)) diff --git a/test/syntax.jl b/test/syntax.jl index 724b5c109d6a9..fe549b34cb782 100644 --- a/test/syntax.jl +++ b/test/syntax.jl @@ -1979,3 +1979,8 @@ f33987(args::(Vararg{Any, N} where N); kwargs...) = args end pop = 1 end == 1 + +# issue #35201 +h35201(x; k=1) = (x, k) +f35201(c) = h35201((;c...), k=true) +@test f35201(Dict(:a=>1,:b=>3)) === ((a=1,b=3), true)