Skip to content

Commit f5c00bc

Browse files
committed
fix array error token handling
1 parent 03cb923 commit f5c00bc

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/components/lists.jl

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,11 @@ end
185185

186186
function _process_inner_array(args_list, trivia_bp)
187187
if isempty(trivia_bp)
188-
return first(args_list)
188+
if length(args_list) == 1
189+
return first(args_list)
190+
else
191+
return EXPR(:errortoken, EXPR[], EXPR[])
192+
end
189193
end
190194
bp = minimum(trivia_bp)
191195
if all(==(bp), trivia_bp)
@@ -196,7 +200,6 @@ function _process_inner_array(args_list, trivia_bp)
196200
pushfirst!(ret, EXPR(Symbol(-bp), 0, 0, ""))
197201
end
198202
end
199-
200203
i = 1
201204
i0 = 1
202205
if bp == 0
@@ -208,6 +211,15 @@ function _process_inner_array(args_list, trivia_bp)
208211
while true
209212
i = findnext(==(bp), trivia_bp, i0)
210213
i === nothing && (i = length(args_list))
214+
if !checkbounds(Bool, args_list, i0:i) || !checkbounds(Bool, trivia_bp, i0:(i-1))
215+
err = EXPR(:errortoken, EXPR[], EXPR[])
216+
217+
for a in args_list[i0:end]
218+
push!(err, a)
219+
end
220+
push!(ret, err)
221+
break
222+
end
211223
inner_args = args_list[i0:i]
212224
inner_trivia = trivia_bp[i0:(i-1)]
213225
i0 = i + 1

0 commit comments

Comments
 (0)