julia-vscode / LanguageServer.jl

An implementation of the Microsoft Language Server Protocol for the Julia language.
Other
354 stars 75 forks source link

Crash when using LS with ONNX.jl package #1198

Open ordicker opened 1 year ago

ordicker commented 1 year ago

Hi,

I think there is a bug in LanguageServer. When I open ONNX.jl I got this error:

┌ Error: Some Julia code in the VS Code extension crashed
└ @ Main ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/error_handler.jl:15
ERROR: MethodError: no method matching scopehasbinding(::StaticLint.Scope, ::Nothing)
Closest candidates are:
  scopehasbinding(::StaticLint.Scope, !Matched::String) at ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/scope.jl:57
Stacktrace:
  [1] resolve_getfield(x::CSTParser.EXPR, parent_type::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/references.jl:206
  [2] resolve_getfield(x::CSTParser.EXPR, b::StaticLint.Binding, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/references.jl:224
  [3] resolve_getfield(x::CSTParser.EXPR, scope::StaticLint.Scope, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/references.jl:193
  [4] resolve_ref(x::CSTParser.EXPR, scope::StaticLint.Scope, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/references.jl:51
  [5] resolve_ref(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/references.jl:23
  [6] (::StaticLint.Delayed)(x::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:116
  [7] traverse(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:225
  [8] (::StaticLint.Delayed)(x::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:119
  [9] traverse(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:225
 [10] (::StaticLint.Delayed)(x::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:119
 [11] traverse(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:225
 [12] (::StaticLint.Delayed)(x::CSTParser.EXPR)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:119
 [13] traverse(x::CSTParser.EXPR, state::StaticLint.Delayed)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:225
 [14] semantic_pass(file::LanguageServer.Document, modified_expr::Nothing)
    @ StaticLint ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:177
 [15] semantic_pass
    @ ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/StaticLint/src/StaticLint.jl:170 [inlined]
 [16] parse_all(doc::LanguageServer.Document, server::LanguageServerInstance)
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/LanguageServer/src/requests/textdocument.jl:122
 [17] textDocument_didOpen_notification(params::LanguageServer.DidOpenTextDocumentParams, server::LanguageServerInstance, conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint})
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/LanguageServer/src/requests/textdocument.jl:17
 [18] (::LanguageServer.var"#109#110"{typeof(LanguageServer.textDocument_didOpen_notification), LanguageServerInstance})(conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, params::LanguageServer.DidOpenTextDocumentParams)
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/LanguageServer/src/languageserverinstance.jl:267
 [19] dispatch_msg(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, dispatcher::JSONRPC.MsgDispatcher, msg::Dict{String, Any})
    @ JSONRPC ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/JSONRPC/src/typed.jl:67
 [20] run(server::LanguageServerInstance)
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/packages/LanguageServer/src/languageserverinstance.jl:387
 [21] top-level scope
    @ ~/.vscode/extensions/julialang.language-julia-1.38.2/scripts/languageserver/main.jl:104
 [22] include(mod::Module, _path::String)
    @ Base ./Base.jl:419
 [23] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:303
 [24] _start()
    @ Base ./client.jl:522
[Info  - 16:13:12] Connection to server got closed. Server will restart.

I got it in both emacs(lsp-mode) and VScode with the latetest LanguageServer(v1.4.3)

BenPH commented 1 year ago

This looks like it might be the same problem as in https://github.com/julia-vscode/julia-vscode/issues/3037 which was recently resolved

ordicker commented 1 year ago

It should be solved on the last release? Because on v1.4.3 it doesn't. I can do more tests, but I'm not sure what is the problem.

BenPH commented 1 year ago

The fix would be in an upcoming release