LuaLS / LuaLS/lua-language-server
Multipe parameters infer differently?
まだ誰も着手していません。
- 主要言語
- Lua
- スター
- 4.4k
- フォーク
- 442
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Infers `a` and `aa` correctly but not the rest
```lua
---@diagnostic disable: codestyle-check, spell-check, unused-local
---@alias AnyChild A|B|C
---@class PARENT
local PARENT = {}
---@class A: PARENT
local A = {}
---@class B: PARENT
local B = {}
---@class C: PARENT
local C = {}
---@overload fun(self:PARENT): A
---@overload fun(self:AnyChild, other: A): A
---@overload fun(self:AnyChild, other: B): B
function PARENT:new(other)
self.a = 2
return {}
end
local a = A:new()
local aa = a:new()
local aaa = a:new(B)
local b = B:new(B)
local bb = b:new(B)
local bbb = b:new(C)
```

コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
埋め込み Lua 再現例から始め、`a` と `aa` と比較して、language server が `aaa`、`b`、`bb`、`bbb` に対して推論した型を調べます。コロン呼び出しと複数パラメーターのオーバーロード解決を追跡し、その後、すべての例で期待される推論型を確認する、対象を絞った回帰テストを追加するか実行します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- lua
- 領域
- tooling
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100