LuaLS / LuaLS/lua-language-server
Generics Return Issue
Personne n'a encore pris cette issue.
- 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?
Windows
What is the issue affecting?
Annotations
Expected Behaviour
In this function:
--- Merge two tables together, keys that are the same will use the value from the second table
---@generic K, V, L, W
---@param table1 table<K, V>
---@param table2 table<L, W>
---@return table<K | L, V | W>
function table.merge(table1, table2)
for k, v in pairs(table2) do
table1[k] = v
end
return table1
end
I would expect the return type to be table<K | L, V | W> however it is actually always table<K, V>
There is also a secondary issue here where k, v are seen as unknown when they should be seen as V, W (I assume this is another generics issue)
Actual Behaviour
Reproduction steps
- Copy example code
- Observe result
Additional Notes
No response
Log File
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez l’exemple annoté de table.merge dans l’extension Visual Studio Code sous Windows. Commencez par suivre l’annotation générique et l’inférence de type de table pour @generic, @param, @return et pairs ; c’est terminé lorsque la valeur de retour est table<K | L, V | W> et que k et v sont résolus vers les types de la deuxième table.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua, vscode
- Domaine
- devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100