LuaLS / LuaLS/lua-language-server

Type checking for functions as argument?

Offen
#3,461 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

Is there something I can do have type checking for passed in functions?

```lua
---@param fn fun(i: integer)
local function accepts_integer_function(fn)
end

---@type fun(s: string)
local function mismatching_function(s)
end

-- expecting this to raise an error, but it doesn't
accepts_integer_function(mismatching_function)
```

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

Beginne mit dem minimalen Lua-Beispiel im Issue und verfolge, wie der Language Server den Parameter fun(i: integer) von accepts_integer_function gegen den Typ fun(s: string) von mismatching_function prüft. Fertig ist die Aufgabe, wenn der Language Server an dem Aufruf, an den die inkompatible Funktion übergeben wird, einen Typfehler meldet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
lua
Bereich
devtools
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

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