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

Julia VSCode extension crash upon unpacking an alias #398

Open
DaniGlez opened this issue Feb 4, 2025 · 0 comments
Open

Julia VSCode extension crash upon unpacking an alias #398

DaniGlez opened this issue Feb 4, 2025 · 0 comments

Comments

@DaniGlez
Copy link

DaniGlez commented Feb 4, 2025

Hi, I understand this issue belongs here; let me know if it should go in a different repo. Here's a MWE:

struct Foo
    a::Int
    b::Int
end

const FOO = Foo

function bar(x)
    (; a, b) = FOO(x, 2x)
    a + b
end

The LS will crash at the (; a, b) = FOO(x, 2x) line, here's a stacktrace:

[ Info: Starting LS with Julia 1.11.3
  Activating project at `~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/environments/languageserver/v1.11`
[ Info: Starting the Julia Language Server
[ Info: Symbol server store is at '/home/dani/.config/Code/User/globalStorage/julialang.language-julia/symbolstorev5'.
[ Info: Starting LS at 1738668533
┌ Error: Some Julia code in the VS Code extension crashed
└ @ Main ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/error_handler.jl:15
ERROR: type Nothing has no field names
Stacktrace:
  [1] getproperty
    @ ./Base.jl:49 [inlined]
  [2] infer_destructuring_type(binding::StaticLint.Binding, rb::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/type_inf.jl:122
  [3] infer_destructuring_type(binding::StaticLint.Binding, rb::StaticLint.Binding)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/type_inf.jl:128
  [4] infer_type_assignment_rhs(binding::StaticLint.Binding, state::StaticLint.Delayed, scope::StaticLint.Scope)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/type_inf.jl:62
  [5] infer_type(binding::StaticLint.Binding, scope::StaticLint.Scope, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/type_inf.jl:24
  [6] add_binding(x::CSTParser.EXPR, state::StaticLint.Delayed, scope::StaticLint.Scope)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/bindings.jl:364
  [7] add_binding
    @ ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/bindings.jl:274 [inlined]
  [8] (::StaticLint.Delayed)(x::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:114
  [9] traverse(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:227
 [10] (::StaticLint.Delayed)(x::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:121
 [11] traverse(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:227
 [12] (::StaticLint.Delayed)(x::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:121
 [13] traverse(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:208
 [14] (::StaticLint.Delayed)(x::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:121
 [15] traverse(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:227
 [16] (::StaticLint.Delayed)(x::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:121
 [17] traverse(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:227
 [18] semantic_pass(file::LanguageServer.Document, modified_expr::Nothing)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:179
 [19] semantic_pass
    @ ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/StaticLint/src/StaticLint.jl:172 [inlined]
 [20] parse_all(doc::LanguageServer.Document, server::LanguageServerInstance)
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/LanguageServer/src/requests/textdocument.jl:209
 [21] textDocument_didOpen_notification(params::LanguageServer.DidOpenTextDocumentParams, server::LanguageServerInstance, conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint})
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/LanguageServer/src/requests/textdocument.jl:33
 [22] (::LanguageServer.var"#108#109"{typeof(LanguageServer.textDocument_didOpen_notification), LanguageServerInstance})(conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, params::LanguageServer.DidOpenTextDocumentParams)
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/LanguageServer/src/languageserverinstance.jl:307
 [23] dispatch_msg(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, dispatcher::JSONRPC.MsgDispatcher, msg::Dict{String, Any})
    @ JSONRPC ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/JSONRPC/src/typed.jl:67
 [24] run(server::LanguageServerInstance; timings::Vector{Any})
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/LanguageServer/src/languageserverinstance.jl:444
 [25] run(server::LanguageServerInstance)
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/packages/LanguageServer/src/languageserverinstance.jl:317
 [26] top-level scope
    @ ~/.vscode/extensions/julialang.language-julia-1.138.1/scripts/languageserver/main.jl:189
 [27] include(mod::Module, _path::String)
    @ Base ./Base.jl:557
 [28] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:323
 [29] _start()
    @ Base ./client.jl:531
[Info  - 12:29:04 PM] Connection to server got closed. Server will restart.
true
[Error - 12:29:04 PM] Server process exited with code 1.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant