LuaLS / LuaLS/lua-language-server

Diagnostics for class array

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

Dieses Issue hat noch niemand übernommen.

enhancement feat/type check
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?

Visual Studio Code Extension (sumneko.lua)

### Which OS are you using?

Windows

### What is the issue affecting?

Type Checking

### Expected Behaviour

When a class is matched with its array it should produce a diagnostic error.

### Actual Behaviour

No diagnostic error is produced when a class array is matched with a class.

### Reproduction steps

1. Paste the following code:
```lua
---@class classA
local a

---@type classA[]
local b

---@param param1 classA[]
---@return classA
local function testFunc(param1)
param1 = a
return b
end

local result = testFunc(a)
```
2. Assigning `param1`, returning `b` and calling `testFunc` with `a` should all produce diagnostic errors, but no diagnostic error is produced.

### Additional Notes

Another class, such as `classB` can be matched with `classA[]` without error.

### 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

Führen Sie die Lua-Reproduktion in der Visual Studio Code-Erweiterung aus und untersuchen Sie den Einstiegspunkt der Typprüfungsdiagnose auf die Kompatibilität zwischen Klassen und Arrays. Überprüfen Sie, dass die Zuweisung von param1, die Rückgabe von b und der Aufruf von testFunc(a) jeweils Diagnosen erzeugen, während der Vergleich von classB weiterhin durch das bestehende Verhalten abgedeckt ist.

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

Neue Issues direkt in Ihr Postfach

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