LuaLS / LuaLS/lua-language-server

Bug with incorrectly reporting undefined-global

Aperta
#1,702 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Info Needed
Lingua principale
Lua
Stelle
4.4k
Fork
442
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

So I have this very strange bug where the VSCode extension starts reporting undefined-globals but when I click on the actual problem report, it goes away.

These globals are defined in a file that is loaded as a library via an extension so I figured I might reach the max workspace files/size limit but even with those set to very high numbers it keeps happening. I can click on all of them to make them go away but the next indexing run (hitting save) will bring them back.

workspace.maxPreload is set to 20000
workspace.preloadFileSize is set to 8000

The repo I tested with is WeakAuras

https://user-images.githubusercontent.com/75278/202040021-d15fda8e-85ce-4055-a39e-d9538f6b5446.mp4

So my next guess was that the LSP just crashes and restarts, I checked the output panel and got this:

script/core/diagnostics/param-type-mismatch.lua:21: attempt to index a nil value (field 'generic')
stack traceback:
	script/core/diagnostics/param-type-mismatch.lua:21: in upvalue 'expandGenerics'
	script/core/diagnostics/param-type-mismatch.lua:48: in upvalue 'getDefNode'
	script/core/diagnostics/param-type-mismatch.lua:97: in local 'callback'
	script/parser/guide.lua:716: in function 'parser.guide.eachSourceType'
	script/core/diagnostics/param-type-mismatch.lua:83: in function 'core.diagnostics.param-type-mismatch'
	script/core/diagnostics/init.lua:117: in upvalue 'check'
	script/core/diagnostics/init.lua:174: in function 'core.diagnostics'
	[C]: in function 'xpcall'
	script/provider/diagnostic.lua:324: in function 'provider.diagnostic.doDiagnostic'
	[C]: in function 'xpcall'
	script/provider/diagnostic.lua:665: in upvalue 'callback'
	script/files.lua:880: in function <script/files.lua:879>
script/core/diagnostics/param-type-mismatch.lua:21: attempt to index a nil value (field 'generic')

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci il problema nel repository WeakAuras con l’estensione VSCode e le impostazioni dell’area di lavoro segnalate. Inizia da script/core/diagnostics/param-type-mismatch.lua alla riga 21 e segui lo stack attraverso script/provider/diagnostic.lua; il lavoro è completato quando l’indicizzazione dei diagnostici non causa più arresti anomali e i report sulle variabili globali non definite rimangono corretti dopo la reindicizzazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
lua
Ambito
devtools
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.