summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2024-09-09 10:33:19 +0800
committerGitHub <noreply@github.com>2024-09-09 10:33:19 +0800
commitd1320ae5e41086fd9f569c2504a88130447444b8 (patch)
tree26286c0fbed38d80d7c7b8efb36092c19b8544c7 /test
parentc9d819305b6f88b53de294d54c820681518430c8 (diff)
parentfe84a713afe4a37629cc95ca3d8a3e9c23be8eb8 (diff)
downloadlua-language-server-d1320ae5e41086fd9f569c2504a88130447444b8.zip
Merge pull request #2838 from tomlau10/fix/func_type_union_overload
Fix incorrect function params' type infer when there is only `@overload`
Diffstat (limited to 'test')
-rw-r--r--test/type_inference/param_match.lua38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/type_inference/param_match.lua b/test/type_inference/param_match.lua
index 906b9305..21dcf4d3 100644
--- a/test/type_inference/param_match.lua
+++ b/test/type_inference/param_match.lua
@@ -172,6 +172,44 @@ local v = 'y'
local <?r?> = f(v)
]]
+TEST 'string|number' [[
+---@overload fun(a: string)
+---@overload fun(a: number)
+local function f(<?a?>) end
+]]
+
+TEST '1|2' [[
+---@overload fun(a: 1)
+---@overload fun(a: 2)
+local function f(<?a?>) end
+]]
+
+TEST 'string' [[
+---@overload fun(a: 1): string
+---@overload fun(a: 2): number
+local function f(a) end
+
+local <?r?> = f(1)
+]]
+
+TEST 'number' [[
+---@overload fun(a: 1): string
+---@overload fun(a: 2): number
+local function f(a) end
+
+local <?r?> = f(2)
+]]
+
+TEST 'string|number' [[
+---@overload fun(a: 1): string
+---@overload fun(a: 2): number
+local function f(a) end
+
+---@type number
+local v
+local <?r?> = f(v)
+]]
+
TEST 'number' [[
---@overload fun(a: 1, c: fun(x: number))
---@overload fun(a: 2, c: fun(x: string))