Skip to content

Commit 180a13b

Browse files
authored
Merge pull request #2924 from Rcklos/rcklos
Fix table array infer
2 parents 3894968 + 835516b commit 180a13b

File tree

3 files changed

+4
-1
lines changed

3 files changed

+4
-1
lines changed

changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## Unreleased
44
<!-- Add all new changes here. They will be moved under a version at release -->
5+
* `NEW` Setting: `Lua.type.inferTableSize`: A Small Table array can be infered
56

67
## 3.12.0
78
`2024-10-30`

script/config/template.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@ local template = {
403403
['Lua.type.weakNilCheck'] = Type.Boolean >> false,
404404
['Lua.type.inferParamType'] = Type.Boolean >> false,
405405
['Lua.type.checkTableShape'] = Type.Boolean >> false,
406+
['Lua.type.inferTableSize'] = Type.Integer >> 10,
406407
['Lua.doc.privateName'] = Type.Array(Type.String),
407408
['Lua.doc.protectedName'] = Type.Array(Type.String),
408409
['Lua.doc.packageName'] = Type.Array(Type.String),

script/vm/type.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,7 @@ end
615615
---@return vm.node?
616616
function vm.getTableValue(uri, tnode, knode, inversion)
617617
local result = vm.createNode()
618+
local inferSize = config.get(uri, "Lua.type.inferTableSize")
618619
for tn in tnode:eachObject() do
619620
if tn.type == 'doc.type.table' then
620621
for _, field in ipairs(tn.fields) do
@@ -657,7 +658,7 @@ function vm.getTableValue(uri, tnode, knode, inversion)
657658
end
658659
if field.type == 'tableexp'
659660
and field.value
660-
and field.tindex == 1 then
661+
and field.tindex <= inferSize then
661662
if inversion then
662663
if vm.isSubType(uri, 'integer', knode) then
663664
result:merge(vm.compileNode(field.value))

0 commit comments

Comments
 (0)