LuaLS / LuaLS/lua-language-server

`lua-language-server --check foo.lua` not working since version `3.8.0`

オープン
#2,989 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Lua
スター
4.4k
フォーク
442
PR マージ指標
30日以内にマージされた PR はありません

説明

### How are you using the lua-language-server?

Command Line

### Which OS are you using?

Windows WSL

### What is the issue affecting?

Annotations, Type Checking

### Expected Behaviour

`lua-language-server --check reproduction.lua` should error if there is an issue. For example in this file

`reproduction.lua`
```lua
---@class Foo
---@field bar asdfasfsdf_does_not_exist_is_not_defined
```

The `asdfasfsdf_does_not_exist_is_not_defined` type does not exist

### Actual Behaviour

The command reports `Diagnosis completed, no problems found`

### Reproduction steps

#### Last Working Version
```sh
git checkout 3.7.4
./make.sh
(cd ~/temp && lua-language-server --check --check reproduction.lua)
```

This errors as expected with `Diagnosis complete, 1 problems found, see {root}/lua-language-server/log/check.json` message

#### Broken
```sh
git checkout 3.8.0
./make.sh
(cd ~/temp && lua-language-server --check --check reproduction.lua)
```

```sh
git checkout 3.13.3
./make.sh
(cd ~/temp && lua-language-server --check --check reproduction.lua)
```

In both cases the report says `Diagnosis completed, no problems found`, instead of erroring as expected.

### Additional Notes

It seems a lot changed between 3.7.4 and 3.8.0. Maybe the expectations / interface `--check` are different now? It's a bit hard to find info online

### Log File

#### 3.7.4

check.json

```json
{
"file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua": [
{
"code": "undefined-doc-name",
"message": "Undefined type or alias `asdfasfsdf_does_not_exist_is_not_defined`.",
"range": {
"end": {
"character": 57,
"line": 1
},
"start": {
"character": 17,
"line": 1
}
},
"severity": 2,
"source": "Lua Diagnostics."
}
]
}
```

#### 3.13.4

service.log

```
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:68]: Lua Lsp startup, root: /home/selecaoone/repositories/lua-language-server
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:69]: ROOT: /home/selecaoone/repositories/lua-language-server
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:70]: LOGPATH: /home/selecaoone/repositories/lua-language-server/log
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:71]: METAPATH: /home/selecaoone/repositories/lua-language-server/meta
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:72]: VERSION: 3.13.3-dev
[11:36:12.793][info] [#0:script/language.lua:137]: VSC language: nil
[11:36:12.794][info] [#0:script/language.lua:138]: LS language: en-us
[11:36:12.794][info] [#0:script/client.lua:657]: Client init {
capabilities = {
textDocument = {
completion = {
completionItem = {
tagSupport = {
valueSet = { 1, 2 }
}
}
}
},
workspace = {
configuration = true
}
},
initializationOptions = {
changeConfiguration = true,
trustByClient = true,
useSemanticByRange = true,
viewDocument = true
},
rootUri = "file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua"
}
[11:36:12.794][info] [#0:script/language.lua:137]: VSC language: nil
[11:36:12.794][info] [#0:script/language.lua:138]: LS language: en-us
[11:36:12.794][info] [#0:script/workspace/workspace.lua:38]: Workspace init root: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.794][info] [#0:script/workspace/workspace.lua:42]: Log path: /home/selecaoone/repositories/lua-language-server/log/file_home_selecaoone_temp_annotation_tes_annotation_type_test.lua.log
```

/home/selecaoone/repositories/lua-language-server/log/file_home_selecaoone_temp_annotation_tes_annotation_type_test.lua.log

```
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:68]: Lua Lsp startup, root: /home/selecaoone/repositories/lua-language-server
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:69]: ROOT: /home/selecaoone/repositories/lua-language-server
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:70]: LOGPATH: /home/selecaoone/repositories/lua-language-server/log
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:71]: METAPATH: /home/selecaoone/repositories/lua-language-server/meta
[11:36:12.752][info] [#0:/home/selecaoone/repositories/lua-language-server/main.lua:72]: VERSION: 3.13.3-dev
[11:36:12.793][info] [#0:script/language.lua:137]: VSC language: nil
[11:36:12.794][info] [#0:script/language.lua:138]: LS language: en-us
[11:36:12.794][info] [#0:script/client.lua:657]: Client init {
capabilities = {
textDocument = {
completion = {
completionItem = {
tagSupport = {
valueSet = { 1, 2 }
}
}
}
},
workspace = {
configuration = true
}
},
initializationOptions = {
changeConfiguration = true,
trustByClient = true,
useSemanticByRange = true,
viewDocument = true
},
rootUri = "file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua"
}
[11:36:12.794][info] [#0:script/language.lua:137]: VSC language: nil
[11:36:12.794][info] [#0:script/language.lua:138]: LS language: en-us
[11:36:12.794][info] [#0:script/workspace/workspace.lua:38]: Workspace init root: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.794][info] [#0:script/workspace/workspace.lua:42]: Log path: /home/selecaoone/repositories/lua-language-server/log/file_home_selecaoone_temp_annotation_tes_annotation_type_test.lua.log
[11:36:12.794][info] [#0:script/workspace/workspace.lua:48]: Workspace create: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.795][warn] [#0:script/config/loader.lua:116]: No config? nil
[11:36:12.796][warn] [#0:script/config/loader.lua:116]: No config? nil
[11:36:12.796][info] [#0:script/provider/provider.lua:64]: Load config from client fallback
[11:36:12.796][info] [#0:script/provider/provider.lua:65]: nil
[11:36:12.796][info] [#0:script/library.lua:212]: Init builtin library at: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.828][info] [#0:script/library.lua:212]: Init builtin library at: nil
[11:36:12.845][warn] [#0:script/config/loader.lua:116]: No config? nil
[11:36:12.845][warn] [#0:script/config/loader.lua:116]: No config? nil
[11:36:12.846][info] [#0:script/provider/provider.lua:64]: Load config from client fallback
[11:36:12.846][info] [#0:script/provider/provider.lua:65]: nil
[11:36:12.846][info] [#0:script/workspace/workspace.lua:324]: Preload start: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.851][info] [#0:script/workspace/workspace.lua:330]: Scan files at: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.851][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/table.lua
[11:36:12.851][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/os.lua
[11:36:12.851][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/package.lua
[11:36:12.851][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/basic.lua
[11:36:12.851][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/io.lua
[11:36:12.852][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/string.lua
[11:36:12.852][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/builtin.lua
[11:36:12.852][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/math.lua
[11:36:12.852][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/debug.lua
[11:36:12.852][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/utf8.lua
[11:36:12.852][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/coroutine.lua
[11:36:12.852][info] [#0:script/workspace/workspace.lua:324]: Preload start:
[11:36:12.855][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/table.lua
[11:36:12.855][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/os.lua
[11:36:12.855][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/package.lua
[11:36:12.855][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/basic.lua
[11:36:12.855][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/io.lua
[11:36:12.855][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/string.lua
[11:36:12.855][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/builtin.lua
[11:36:12.856][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/math.lua
[11:36:12.856][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/debug.lua
[11:36:12.856][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/utf8.lua
[11:36:12.856][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/coroutine.lua
[11:36:12.856][info] [#0:script/workspace/workspace.lua:379]: Found 12 files at: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.856][info] [#0:script/workspace/loading.lua:160]: Load files from disk: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.856][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/coroutine.lua , size = 2.669 KB
[11:36:12.859][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/coroutine.lua
[11:36:12.859][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/utf8.lua , size = 2.447 KB
[11:36:12.862][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/utf8.lua
[11:36:12.862][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/debug.lua , size = 7.812 KB
[11:36:12.871][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/debug.lua
[11:36:12.871][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/math.lua , size = 8.825 KB
[11:36:12.879][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/math.lua
[11:36:12.879][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/builtin.lua , size = 0.302 KB
[11:36:12.880][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/builtin.lua
[11:36:12.880][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/string.lua , size = 6.547 KB
[11:36:12.887][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/string.lua
[11:36:12.887][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/io.lua , size = 6.566 KB
[11:36:12.893][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/io.lua
[11:36:12.893][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/basic.lua , size = 16.192 KB
[11:36:12.905][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/basic.lua
[11:36:12.905][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/package.lua , size = 3.050 KB
[11:36:12.911][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/package.lua
[11:36:12.911][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/os.lua , size = 5.863 KB
[11:36:12.915][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/os.lua
[11:36:12.915][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/table.lua , size = 4.551 KB
[11:36:12.919][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/table.lua
[11:36:12.920][info] [#0:script/workspace/loading.lua:100]: Preload file at: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua , size = 0.070 KB
[11:36:12.920][info] [#0:script/workspace/loading.lua:172]: Loaded files takes [0.064] sec: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.920][info] [#0:script/workspace/loading.lua:181]: Compile files takes [0.000] sec: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.920][info] [#0:script/workspace/loading.lua:182]: Loaded finish: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.920][info] [#0:script/workspace/workspace.lua:381]: Preload finish at: file:///home/selecaoone/temp/annotation_tes/annotation_type_test.lua
[11:36:12.924][info] [#0:script/workspace/workspace.lua:379]: Found 11 files at:
[11:36:12.924][info] [#0:script/workspace/loading.lua:160]: Load files from disk:
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/coroutine.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/coroutine.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/utf8.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/utf8.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/debug.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/debug.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/math.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/math.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/builtin.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/builtin.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/string.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/string.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/io.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/io.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/basic.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/basic.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/package.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/package.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/os.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/os.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:88]: Skip loaded file: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/table.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:112]: ++++As library of: file:///home/selecaoone/repositories/lua-language-server/meta/Lua%205.4%20en-us%20utf8/table.lua
[11:36:12.924][info] [#0:script/workspace/loading.lua:172]: Loaded files takes [0.000] sec:
[11:36:12.924][info] [#0:script/workspace/loading.lua:181]: Compile files takes [0.000] sec:
[11:36:12.924][info] [#0:script/workspace/loading.lua:182]: Loaded finish:
[11:36:12.924][info] [#0:script/workspace/workspace.lua:381]: Preload finish at:
```

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

Reproduce the regression with the supplied reproduction.lua and --check commands on versions 3.7.4 and 3.8.0 or later. Start at main.lua and the script/workspace and script/config paths shown in the logs; done means the undefined annotation type is diagnosed again and the check output reports a problem.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
lua
領域
cli, devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。