LuaLS / LuaLS/lua-language-server
`repeat…until val ~= nil` should satisfy the need for nil checks
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Lua
- Sterne
- 4.4k
- Forks
- 442
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Das Issue nennt keine Quelldatei und keinen Test; beginne damit, die Flow-Analysis-Logik zu finden, die Nil-Prüfungen für while-Schleifen und repeat…until-Bedingungen verarbeitet. Reproduziere das Polling-Beispiel und vergleiche seine Diagnose mit dem bestehenden Verhalten von while val == nil; fertig ist die Arbeit, wenn val:foo() nach repeat…until val ~= nil keine zusätzliche Nil-Prüfung mehr erfordert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- lua
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100