summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCrollie Rollz <crollierollz@gmail.com>2022-04-03 02:47:37 +0800
committerCrollie Rollz <crollierollz@gmail.com>2022-04-03 03:08:27 +0800
commitcd032f35f1922c663b0a67c41adee4996d5cb858 (patch)
tree5551a00700c06f6d29d77a147e52eb1098b0b099
parent9f46e568af0a63e0db46596de3b32c779d27c5cd (diff)
downloadlua-language-server-cd032f35f1922c663b0a67c41adee4996d5cb858.zip
fix(infer): check second arg for event name
-rw-r--r--script/core/noder.lua3
-rw-r--r--test/type_inference/init.lua11
2 files changed, 13 insertions, 1 deletions
diff --git a/script/core/noder.lua b/script/core/noder.lua
index 1e502339..2a60baee 100644
--- a/script/core/noder.lua
+++ b/script/core/noder.lua
@@ -887,7 +887,8 @@ local function compileCallParam(noders, call, sourceID)
local eventNodeID
for firstIndex, callArg in ipairs(call.args) do
firstIndex = firstIndex - fixIndex
- if firstIndex == 1 and callArg.type == 'string' then
+ if (firstIndex == 1 or firstIndex == 2)
+ and callArg.type == 'string' then
if callArg[1] then
eventNodeID = sformat('%s%s%s'
, nodeID
diff --git a/test/type_inference/init.lua b/test/type_inference/init.lua
index ef2d1f62..7316730e 100644
--- a/test/type_inference/init.lua
+++ b/test/type_inference/init.lua
@@ -941,6 +941,17 @@ emit:on("died", function (<?i?>)
end)
]]
+TEST 'integer' [[
+--- @class Emit
+--- @field on fun(self: Emit, eventName: string, cb: function)
+--- @field on fun(self: Emit, eventName: '"died"', cb: fun(i: integer))
+--- @field on fun(self: Emit, eventName: '"won"', cb: fun(s: string))
+local emit = {}
+
+emit.on(self, "died", function (<?i?>)
+end)
+]]
+
TEST '👍' [[
---@class 👍
local <?x?>