LuaLS / LuaLS/lua-language-server

Invalid type diagnostic doesn't show when passing value from array directly to a function

Offen
#1,643 3 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement
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?

Other

Which OS are you using?

Linux

What is the issue affecting?

Type Checking, Diagnostics/Syntax Checking

Expected Behaviour

When using a value from an array as a parameter I expect type checking to work.

Actual Behaviour

Type checking only works when I assign the value from the array to a temporary variable, not when passing it to a function directly.

Reproduction steps

This doesn't show a warning:

---@param num integer
function receive(num)
end

---@type (integer?)[]
local values = {}

receive(values[1])

This works:

local value = values[1]
receive(value) -- Cannot assign `integer?` to parameter `integer`.
Additional Notes

No response

Log File

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Es wird keine Quelldatei oder kein Test genannt. Beginne damit, die beiden Lua-Snippets zu reproduzieren und den Pfad der Typprüfungsdiagnose für ein direktes Array-Index-Argument im Vergleich zu einer temporären Variable nachzuverfolgen; fertig ist es, wenn der direkte Aufruf denselben integer?-zu-integer-Mismatch meldet.

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
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.