LuaLS / LuaLS/lua-language-server
Can not infer basic assignments in nested loop.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Lua
- Sterne
- 4.4k
- Forks
- 442
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Discussed in https://github.com/LuaLS/lua-language-server/discussions/2471
Originally posted by Luke100000 January 8, 2024
Why can it not infer the type here? How would I rewrite this to be type conform, without spamming type annotations?
local y = 0
for i = 1, 2 do
y = y + 1 -- here, y is inferred as an integer correctly
for j = 1, 2 do
y = y + 1 -- can not infer type
end
-- sometimes a bit more complexity is required to trigger the issue, so lets add another loop
for j = 1, 2 do
y = y + 1 -- can not infer type
end
end
print(y)
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
Beginne damit, das verschachtelte Schleifenbeispiel aus dem Issue zu reproduzieren, und lies die Discussion 2471 für die bestehende Analyse. Verfolge, wie der Language Server y über die Zuweisungen innerhalb der Schleife hinweg ableitet. Als abgeschlossen gilt die Aufgabe, wenn die gezeigten Zuweisungen den abgeleiteten Integer-Typ beibehalten, ohne wiederholte Typannotationen zu erfordern.
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
- 25/100