LuaLS / LuaLS/lua-language-server

assign-type-mismatch not emitted when assigning a class to an array

Ouverte
#2,827 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

feat/type check
Langage dominant
Lua
Étoiles
4.4k
Forks
442
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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?

Type Checking

Expected Behaviour
---@class a
local a = {}

---@class b
local b = {}

---@type a[]
local c = {
    a,
    b, // assign-type-mismatch emitted here
}
c = "" // assign-type-mismatch emitted here
c = b // assign-type-mismatch emitted here
c = a // assign-type-mismatch emitted here
Actual Behaviour
---@class a
local a = {}

---@class b
local b = {}

---@type a[]
local c = {
    a,
    b, // assign-type-mismatch is correctly emitted here
}
c = "" // assign-type-mismatch is correctly emitted here
c = b // No assign-type-mismatch is emitted here.  I would expect it to be emitted here.
c = a // No assign-type-mismatch is emitted here.  I would expect it to be emitted here.
Reproduction steps

.luarc.json:

{
    "$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
    "runtime.version": "Lua 5.1"
}
Additional Notes

No response

Log File

No response

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez le rapport à l’aide du .luarc.json et de l’extrait Lua fournis, en vérifiant les trois cas d’affectation impliquant l’annotation a[]. Suivez le chemin de vérification des types responsable des diagnostics assign-type-mismatch et comparez les affectations de classes avec l’affectation de string et l’élément du littéral de tableau, qui font déjà l’objet d’un diagnostic. Le travail est terminé lorsque les affectations de classes incompatibles au tableau sont diagnostiquées sans modifier les diagnostics existants.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
lua
Domaine
devtools
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.