Skip to content

Commit 7b9f941

Browse files
authored
Merge pull request #369 from julia-vscode/sp/fix-dotted-generator
fix: correctly abort macro parsing in dotted generators
2 parents 0d68ad7 + ca781c5 commit 7b9f941

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/components/operators.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,13 +384,13 @@ function parse_operator_dot(ps::ParseState, ret::EXPR, op::EXPR)
384384
if kindof(ps.nt) === Tokens.LPAREN
385385
@static if VERSION > v"1.1-"
386386
iserred = kindof(ps.ws) != Tokens.EMPTY_WS
387-
sig = @default ps parse_call(ps, ret)
387+
sig = @default ps @closer ps :for_generator parse_call(ps, ret)
388388
nextarg = EXPR(:tuple, sig.args[2:end], sig.trivia)
389389
if iserred
390390
nextarg = mErrorToken(ps, nextarg, UnexpectedWhiteSpace)
391391
end
392392
else
393-
sig = @default ps parse_call(ps, ret)
393+
sig = @default ps @closer ps :for_generator parse_call(ps, ret)
394394
nextarg = EXPR(:tuple, sig.args[2:end], sig.trivia)
395395
end
396396
elseif iskeyword(ps.nt) || both_symbol_and_op(ps.nt)

test/parser.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,8 @@ end
464464
@test ":(@foo bar baz bat)" |> test_expr
465465
@test ":(@foo bar for i in j end)" |> test_expr
466466
@test "(@foo bar for i in j end)" |> test_expr
467+
@test "foo(@foo bar for i in j)" |> test_expr
468+
@test "foo.(@foo bar for i in j)" |> test_expr
467469
@test CSTParser.parse("@__DIR__\n\nx", true)[1].span == 8
468470

469471
if VERSION >= v"1.8.0-"

0 commit comments

Comments
 (0)