Closed
Description
Parsing this malformed code:
foo() do x
]
end
triggers this unhelpful error + huge backtrace from JuliaSyntax:
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│ exception =
│ Internal error: length(args) == 3
│ Stacktrace:
│ [1] error(::String, ::String)
│ @ Base ./error.jl:44
│ [2] internal_error(strs::String)
│ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/utils.jl:23
│ [3] _internal_node_to_Expr(source::Base.JuliaSyntax.SourceFile, srcrange::UnitRange{…}, head::Base.JuliaSyntax.SyntaxHead, childranges::Vector{…}, childheads::Vector{…}, args::Vector{…})
│ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/expr.jl:399
│ [4] _to_expr(node::Base.JuliaSyntax.SyntaxNode)
│ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/expr.jl:497
│ [5] _to_expr(node::Base.JuliaSyntax.SyntaxNode)
│ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/expr.jl:496
│ [6] Expr(node::Base.JuliaSyntax.SyntaxNode)
│ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/expr.jl:501
│ [7] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/hooks.jl:209
│ [8] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│ @ Base ./essentials.jl:898
│ [9] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│ @ Base ./essentials.jl:895
│ [10] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::String, ::Vararg{…}; kws::@Kwargs{})
│ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/hooks.jl:118
│ [11] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{Base.JuliaSyntax.var"#invoke_fixedworld#116#120"{…}})(::String, ::Vararg{Any})
│ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/hooks.jl:117
│ [12] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│ @ Base.Meta ./meta.jl:200
│ [13] parseall(text::String; filename::String, lineno::Int64)
│ @ Base.Meta ./meta.jl:292 [inlined]
│ [14] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│ @ Base ./loading.jl:1997
│ [15] _include(mapexpr::Function, mod::Module, _path::String)
│ @ Base ./loading.jl:2071
│ [16] include(mod::Module, _path::String)
│ @ Base ./Base.jl:489
│ [17] exec_options(opts::Base.JLOptions)
│ @ Base ./client.jl:318
│ [18] _start()
│ @ Base ./client.jl:552
│ Some type information was truncated. Use `show(err)` to see complete types.
│ offset = 0
│ code = "foo() do x\n ]\nend\n"
└ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/hooks.jl:258