Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Internal error for missing brace #315

Closed
oxinabox opened this issue Jun 22, 2023 · 3 comments · Fixed by #323
Closed

Internal error for missing brace #315

oxinabox opened this issue Jun 22, 2023 · 3 comments · Fixed by #323
Labels
bug Something isn't working

Comments

@oxinabox
Copy link

copy-pasting this reproduces -- you don't need to load the packages or define the variables

julia> open(joinpath(mkpath(joinpath(@__DIR__, "outputs", "branch")), filename)), "w") do fh
           JSON3.write(fh, TimerOutputs.todict(to))
       end
┌ 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) (repeats 2 times)
│        @ 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"{…})(::String, ::Vararg{…})
│        @ 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(REPL.softscope), mod::Module, code::String, filename::String)
│        @ Base ./loading.jl:1997
│     [15] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:864
│     [16] invokelatest(::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:861
│     [17] inlineeval(m::Module, code::String, code_line::Int64, code_column::Int64, file::String; softscope::Bool)
│        @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.47.2/scripts/packages/VSCodeServer/src/eval.jl:233
│     [18] (::VSCodeServer.var"#66#70"{…})()
│        @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.47.2/scripts/packages/VSCodeServer/src/eval.jl:157
│     [19] withpath(f::VSCodeServer.var"#66#70"{…}, path::String)
│        @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.47.2/scripts/packages/VSCodeServer/src/repl.jl:249
│     [20] (::VSCodeServer.var"#65#69"{…})()
│        @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.47.2/scripts/packages/VSCodeServer/src/eval.jl:155
│     [21] hideprompt(f::VSCodeServer.var"#65#69"{…})
│        @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.47.2/scripts/packages/VSCodeServer/src/repl.jl:38
│     [22] (::VSCodeServer.var"#64#68"{…})()
│        @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.47.2/scripts/packages/VSCodeServer/src/eval.jl:126
│     [23] with_logstate(f::Function, logstate::Any)
│        @ Base.CoreLogging ./logging.jl:515
│     [24] with_logger(f::VSCodeServer.var"#64#68"{…}, logger::VSCodeServer.VSCodeLogger)
│        @ Base.CoreLogging ./logging.jl:627 [inlined]
│     [25] (::VSCodeServer.var"#63#67"{VSCodeServer.ReplRunCodeRequestParams})()
│        @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.47.2/scripts/packages/VSCodeServer/src/eval.jl:225
│     [26] invokelatest(::Any; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:864 [inlined]
│     [27] invokelatest(::Any)
│        @ Base ./essentials.jl:861
│     [28] (::VSCodeServer.var"#61#62")()
│        @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.47.2/scripts/packages/VSCodeServer/src/eval.jl:34
│    Some type information was truncated. Use `show(err)` to see complete types.
│   offset = 0
│   code = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nopen(joinpath(mkpath(joinpath(@__DIR__, \"outputs\", \"branch\")), filename)), \"w\") do fh\n    JSON3.write(fh, TimerOutputs.todict(to))\nend\n"
└ @ Base.JuliaSyntax /build/julia/base/JuliaSyntax/src/hooks.jl:258
ERROR: syntax: extra token ")" after end of expression
Stacktrace:
 [1] top-level scope
   @ ~/JuliaEnvs/DAECompiler.jl/benchmarks/benchmark.jl:64
@c42f
Copy link
Member

c42f commented Jun 25, 2023

Great find! Thanks ❤️

@c42f c42f added the bug Something isn't working label Jun 25, 2023
@c42f
Copy link
Member

c42f commented Jun 25, 2023

Looks to be a bug specific to core_parser_hook, perhaps, because parsestmt seems to handle this ok.

@c42f
Copy link
Member

c42f commented Jun 26, 2023

MWE:

JuliaSyntax.core_parser_hook("""y do""", "foo.jl", 0, :all)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants