LuaLS / LuaLS/lua-language-server
Exact classes can have fields injected when used as parameters to funcitons
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Lua
- Sterne
- 4.4k
- Forks
- 442
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Love the new exact class! When using it though, I noticed that I could still 'inject' fields into an exact class when it is used as the input to a function. Example:
---@class (exact) TestClass
---@field public a number
---@field public b string
---@field public c boolean
---@param test_param TestClass
local function test(test_param)
end
test({a = 1, b = "2", c = true, d = 4})
causes no error.
I am not sure if this is intended or not, but I would expect to get an warning like: Fields cannot be injected into the reference of `TestClass` for `d`. To do so, use `---@class` for `test_param`.Lua Diagnostics.(inject-field) here.
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
Reproduziere das bereitgestellte Lua-Snippet in lua-language-server und untersuche die Behandlung von exact-class bei der Typprüfung von Funktionsparametern. Abgeschlossen, wenn die Übergabe eines zusätzlichen Feldes d an TestClass die angeforderte inject-field-Diagnose erzeugt, während die deklarierten Felder a, b und c weiterhin akzeptiert werden.
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
- 42/100