diff --git a/changelog.md b/changelog.md index 957493770..cc8f10b52 100644 --- a/changelog.md +++ b/changelog.md @@ -4,6 +4,7 @@ * `FIX` Correct `math.type` meta return annotation to use `nil` instead of the string literal `'nil'` * `FIX` Fix initial `nameStyle.config` not getting loaded in the appropriate workspace. +* `FIX` string.match and string.gmatch may return `string|integer?` [#3357](https://github.com/LuaLS/lua-language-server/issues/3357) ## 3.18.2 * `CHG` `duplicate-set-field` diagnostic now supports linked suppression: when any occurrence of a duplicate field is suppressed with `---@diagnostic disable` or `---@diagnostic disable-next-line`, all warnings for that field name will be suppressed diff --git a/meta/template/string.lua b/meta/template/string.lua index c7c2f915d..0961f3432 100644 --- a/meta/template/string.lua +++ b/meta/template/string.lua @@ -55,14 +55,14 @@ function string.format(s, ...) end ---#if VERSION <= 5.3 then ---@param s string|number ---@param pattern string|number ----@return fun():string, ... +---@return fun():string|integer?, ... ---@nodiscard function string.gmatch(s, pattern) end ---#else ---@param s string|number ---@param pattern string|number ---@param init? integer ----@return fun():string, ... +---@return fun():string|integer?, ... function string.gmatch(s, pattern, init) end ---#end @@ -91,7 +91,7 @@ function string.lower(s) end ---@param s string|number ---@param pattern string|number ---@param init? integer ----@return any ... +---@return string|integer? ... ---@nodiscard function string.match(s, pattern, init) end