fix(table): regression in contains

Other changes are just whitespace.
This commit is contained in:
Linden
2024-10-16 09:08:18 +11:00
parent 4596e4319c
commit d4bb2ab7b3

View File

@@ -9,8 +9,6 @@ local pairs = pairs
---@return boolean ---@return boolean
---Checks if tbl contains the given values. Only intended for simple values and unnested tables. ---Checks if tbl contains the given values. Only intended for simple values and unnested tables.
local function contains(tbl, value) local function contains(tbl, value)
if not next(tbl) then return false end
if type(value) ~= 'table' then if type(value) ~= 'table' then
for _, v in pairs(tbl) do for _, v in pairs(tbl) do
if v == value then if v == value then
@@ -21,6 +19,7 @@ local function contains(tbl, value)
return false return false
else else
local set = {} local set = {}
for _, v in pairs(tbl) do for _, v in pairs(tbl) do
set[v] = true set[v] = true
end end
@@ -43,6 +42,7 @@ local function table_matches(t1, t2)
local tabletype1 = table.type(t1) local tabletype1 = table.type(t1)
if not tabletype1 then return t1 == t2 end if not tabletype1 then return t1 == t2 end
if tabletype1 ~= table.type(t2) or (tabletype1 == 'array' and #t1 ~= #t2) then if tabletype1 ~= table.type(t2) or (tabletype1 == 'array' and #t1 ~= #t2) then
return false return false
end end
@@ -68,15 +68,15 @@ end
---@return T ---@return T
---Recursively clones a table to ensure no table references. ---Recursively clones a table to ensure no table references.
local function table_deepclone(tbl) local function table_deepclone(tbl)
tbl = table.clone(tbl) tbl = table.clone(tbl)
for k, v in pairs(tbl) do for k, v in pairs(tbl) do
if type(v) == 'table' then if type(v) == 'table' then
tbl[k] = table_deepclone(v) tbl[k] = table_deepclone(v)
end end
end end
return tbl return tbl
end end
---@param t1 table ---@param t1 table
@@ -91,12 +91,12 @@ local function table_merge(t1, t2, addDuplicateNumbers)
local type1 = type(v1) local type1 = type(v1)
local type2 = type(v2) local type2 = type(v2)
if type1 == 'table' and type2 == 'table' then if type1 == 'table' and type2 == 'table' then
table_merge(v1, v2, addDuplicateNumbers) table_merge(v1, v2, addDuplicateNumbers)
elseif addDuplicateNumbers and (type1 == 'number' and type2 == 'number') then elseif addDuplicateNumbers and (type1 == 'number' and type2 == 'number') then
t1[k] = v1 + v2 t1[k] = v1 + v2
else else
t1[k] = v2 t1[k] = v2
end end
end end