LuaLS / LuaLS/lua-language-server

generic in the loop

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

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

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

説明

How are you using the lua-language-server?

Visual Studio Code Extension (sumneko.lua)

Which OS are you using?

Windows

What is the issue affecting?

Annotations, Type Checking

Expected Behaviour

Снимок экрана 2024-03-24 160655

Actual Behaviour

Снимок экрана 2024-03-24 162116

Reproduction steps
---@generic T
---@param t T[]
---@return fun(): { first: integer, second: T }
local function test_function(t)
    local ending = #t
    local begining = 1

    local j = begining

    return function()
        if ending < j then
            return nil
        end

        local i = t[j]

        j = j + 1

        if i then return { first = j - 1, second = i } end
    end
end

---@type integer[]
local test_table = {}

local test_result = test_function(test_table)()

local test1 = test_result.second

for itr in test_function(test_table) do
    local test2 = itr.first;
    local test3 = itr.second;
end

Additional Notes

No response

Log File

No response

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

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

はじめの一歩

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

調査の方向性

まず issue にある Lua の再現手順を実行し、推論された型を Expected Behaviour と Actual Behaviour のスクリーンショットと比較します。次に、ジェネリック関数とイテレーターの戻り値に対する language server のアノテーションおよび型チェックのエントリーポイントを追跡し、報告された型が期待される結果と一致することを確認します。

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

評価

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

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

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