Skip to content

Commit e7f8bc7

Browse files
committed
fix #1676
1 parent 49de63c commit e7f8bc7

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# changelog
22

3+
## 3.6.2
4+
* `FIX` [#1676]
5+
[#1676]: https://github.com/sumneko/lua-language-server/issues/1676
6+
37
## 3.6.1
48
`2022-11-8`
59
* `FIX` wrong diagnostics for `pcall` and `xpcall`

script/core/diagnostics/param-type-mismatch.lua

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ local function expandGenerics(defNode)
99
local generics = {}
1010
for dn in defNode:eachObject() do
1111
if dn.type == 'doc.generic.name' then
12-
local limits = dn.generic.extends
13-
if limits then
14-
generics[#generics+1] = dn
15-
end
12+
generics[#generics+1] = dn
1613
end
1714
end
1815

@@ -22,7 +19,14 @@ local function expandGenerics(defNode)
2219

2320
for _, generic in ipairs(generics) do
2421
local limits = generic.generic.extends
25-
defNode:merge(vm.compileNode(limits))
22+
if limits then
23+
defNode:merge(vm.compileNode(limits))
24+
else
25+
local unknownType = vm.getGlobal('type', 'unknown')
26+
if unknownType then
27+
defNode:merge(unknownType)
28+
end
29+
end
2630
end
2731
end
2832

test/diagnostics/type-check.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,6 +1078,16 @@ local y
10781078
local x = y
10791079
]]
10801080

1081+
TEST [[
1082+
---@generic T
1083+
---@param v1 T
1084+
---@param v2 T|table
1085+
local function func(v1, v2)
1086+
end
1087+
1088+
func('hello', 'world')
1089+
]]
1090+
10811091
config.remove(nil, 'Lua.diagnostics.disable', 'unused-local')
10821092
config.remove(nil, 'Lua.diagnostics.disable', 'unused-function')
10831093
config.remove(nil, 'Lua.diagnostics.disable', 'undefined-global')

0 commit comments

Comments
 (0)