LuaLS / LuaLS/lua-language-server

`repeat…until val ~= nil` should satisfy the need for nil checks

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

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

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

説明

I have some code where I have to wait for a forked process to create a file and I can't get feedback over its return status or stdout, so I use a polling pattern similar to this:

```lua
local val = nil

-- kick off the external process
fork_process(...)

repeat
val = check_for_val(...)
until val ~= nil

val:foo()
```

In this current form, I get a diagnostic that says I need to perform a nil check on `val` before calling `foo`, but the loop condition here should be considered the nil check.

This already works for `while val == nil do...end` so it would be nice to see it for `repeat...until val~= nil` as well.

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

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

はじめの一歩

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

調査の方向性

この issue ではソースファイルもテストも指定されていません。まず、while ループと repeat…until 条件の nil チェックを処理する flow analysis ロジックを見つけてください。polling の例を再現し、その診断結果を既存の while val == nil の動作と比較してください。repeat…until val ~= nil の後に val:foo() が追加の nil チェックを必要としなくなれば完了です。

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

評価

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

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

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