LuaLS / LuaLS/lua-language-server

Generic Class: a method does not catch the type

Offen
#3,433 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Lua
Sterne
4.4k
Forks
442
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

---@class Map<T>
Map = {}

---@param key T
---@return any?
function Map:Find(key) end

---@param key T
---@return boolean
function Map:Contains(key) end

---@param key T
function Map:Erase(key) end

function Map:Clear() end


---@class NumberMap: Map<number>
NumberMap = {}

---@return NumberMap
function NumberMap() end
local map = NumberMap()
map:Find(1)
Image

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

Reproduziere die Diagnose mit den im Issue gezeigten Deklarationen generic Map, NumberMap: Map und map:Find(1). Beginne damit, die Propagierung von Generic-Class-Typen im Lua language server nachzuverfolgen und zu untersuchen, wie Map:Find seinen Schlüsselparameter auflöst. Als abgeschlossen gilt die Aufgabe, wenn die NumberMap-Spezialisierung beim Prüfen von Find-Aufrufen angewendet wird und die resultierende Diagnose dem konkreten Schlüsseltyp entspricht.

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
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
65/100

Neue Issues direkt in Ihr Postfach

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