LuaLS / LuaLS/lua-language-server
Nil check for functions
Offen
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Lua
- Sterne
- 4.4k
- Forks
- 442
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
How are you using the lua-language-server?
NeoVim
Which OS are you using?
Linux
What is the issue affecting?
Type Checking, Diagnostics/Syntax Checking
Expected Behaviour
---@class Type1
---@field maybe_fun? fun(a: integer)
---@field absolutely_nil nil
---@type Type1
local type {
maybe_fun = nil
absolutely_nil = nil
}
type.maybe_fun(5) -- ERROR "maybe_fun" is nil, add nil check
type.absolutely_nil() -- ERROR "absolutely_nil" is nil
Actual Behaviour
---@class Type1
---@field maybe_fun? fun(a: integer)
---@field absolutely_nil nil
---@type Type1
local type {
maybe_fun = nil
absolutely_nil = nil
}
-- No error messages, luals does not complain at all
type.maybe_fun(5)
type.absolutely_nil()
Reproduction steps
- Run example
Additional Notes
No response
Log File
No response
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, das Lua-Beispiel in NeoVim unter Linux zu reproduzieren, und verfolge den Einstiegspunkt für Typprüfung und Diagnose bei Aufrufen über nil-typisierte Felder. Erledigt ist die Aufgabe, wenn die Diagnosen beide gezeigten nil-Aufruffälle melden, einschließlich der optionalen Funktion und des als nil typisierten Felds.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- lua
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100