Skip to content

Commit ce8f763

Browse files
committed
fix and test fullspan properly
1 parent 3aa5133 commit ce8f763

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

src/components/operators.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,11 @@ function parse_unary_colon(ps::ParseState, op::EXPR)
253253
unwrapped = unwrapbracket(arg)
254254
if isoperator(unwrapped) || isidentifier(unwrapped) || isliteral(unwrapped)
255255
ret = EXPR(:quotenode, EXPR[arg], EXPR[op])
256-
elseif arg.head == :tuple && length(arg.args) == 1 && arg.args[1].head == :parameters && length(something(arg.args[1].args, [])) == 0 && arg.span > 3
257-
ret = EXPR(:quote, EXPR[EXPR(:BLOCK, EXPR[], EXPR[])], EXPR[op])
256+
elseif arg.head == :tuple && length(arg.args) == 1 && arg.args[1].head == :parameters && arg.args[1].args !== nothing && length(arg.args[1].args) == 0 && arg.span > 3
257+
block = EXPR(:BLOCK, EXPR[], EXPR[])
258+
block.span = arg.span
259+
block.fullspan = arg.fullspan
260+
ret = EXPR(:quote, EXPR[block], EXPR[op])
258261
else
259262
ret = EXPR(:quote, EXPR[arg], EXPR[op])
260263
end

test/check_base.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,12 @@ end
8585

8686
str = read(file, String)
8787

88+
cst = CSTParser.parse(str, true)
8889
cst_expr, cst_err = cst_parse_file(str)
8990
meta_expr, meta_err = meta_parse_file(str)
9091
@test cst_err == meta_err
92+
@test cst.fullspan == sizeof(str)
93+
9194
if cst_err || meta_err
9295
if cst_err && !meta_err
9396
@error "CSTParser.parse errored, but Meta.parse didn't." file=file

test/parser.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ function test_expr(str, show_data=true)
3939
@test isempty(check_span(x))
4040
check_parents(x)
4141
@test traverse(x)
42+
@test x.fullspan == sizeof(str)
4243

4344
if CSTParser.has_error(ps) || x0 != x1
4445
if show_data

0 commit comments

Comments
 (0)