diff --git a/src/julia-parser.scm b/src/julia-parser.scm index 9699a91a89c47..74f5aade494ee 100644 --- a/src/julia-parser.scm +++ b/src/julia-parser.scm @@ -1172,7 +1172,7 @@ #f finalb) (let* ((var (parse-eq* s)) - (var? (and (not nl) (symbol? var))) + (var? (and (not nl) (or (symbol? var) (and (length= var 2) (eq? (car var) '$))))) (catch-block (if (eq? (require-token s) 'finally) '(block) (parse-block s)))) diff --git a/test/parser.jl b/test/parser.jl index f7ad510b36a5f..674cd1d706315 100644 --- a/test/parser.jl +++ b/test/parser.jl @@ -10,3 +10,15 @@ let @test ex1.args[3] === :x && (ex1.args[3] === ex2.args[3]) end end + +# issue #9704 +let a = :a + @test :(try + catch $a + end) == :(try + catch a + end) + @test :(module $a + end) == :(module a + end) +end