LuaLS / LuaLS/lua-language-server

Error "Undefined field" on _G if global is declared by Lua.diagnostics.globals

Offen
#2,064 2 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

How are you using the lua-language-server?

Visual Studio Code Extension (sumneko.lua)

Which OS are you using?

Linux

What is the issue affecting?

Diagnostics/Syntax Checking

Expected Behaviour
local extract0 = bit32 and bit32.extract -- Lua 5.2/Lua 5.3 in compatibility mode
local extract = _G.bit32 and _G.bit32.extract -- Lua 5.2/Lua 5.3 in compatibility mode

Expected: No error

Actual Behaviour

Error on 2nd line:

(global) _G.bit32: unknown
Undefined field bit32.Lua Diagnostics.(undefined-field)

Reproduction steps
  1. Add 'bit32' to globals;
  2. Errors on 1st line disappeared; but errors on 2nd line persists.
Additional Notes

sumneko.lua-3.6.18-linux-x64

Real global variables does not trigger errors. Only Lua.diagnostics.globals items lead to errors.

Additional question: how to mute errors for this pattern?

if _G.bit then -- LuaJIT
    local shl, shr, band = _G.bit.lshift, _G.bit.rshift, _G.bit.band
...
end

@diagnostic disable: mute too much, but @diagnostic disable-line: mute too little.

Log File

No response

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 das Diagnoseproblem in der Visual Studio Code-Erweiterung mit Lua.diagnostics.globals und bit32, wobei der direkte Zugriff mit dem Zugriff über _G.bit32 verglichen wird. Verfolge die Diagnoseverarbeitung für konfigurierte Globals; abgeschlossen ist die Aufgabe, wenn _G.bit32 kein undefiniertes Feld mehr meldet, während unabhängige Diagnosen zu undefinierten Feldern und das Verhalten der Unterdrückung auf Zeilenebene intakt bleiben.

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

Neue Issues direkt in Ihr Postfach

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