Skip to content

Commit 78530ad

Browse files
committed
[修改] infer长度小于配置N的列表value
1 parent 69eda2a commit 78530ad

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

changelog.md

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

33
## Unreleased
44
<!-- Add all new changes here. They will be moved under a version at release -->
5-
* `FIX` Using variables to retrieve array elements always prompts the first element type
5+
* `NEW` Setting: `Lua.type.inferTableSize`: A Small Table array can be infered
66

77
## 3.12.0
88
`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: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -655,8 +655,10 @@ function vm.getTableValue(uri, tnode, knode, inversion)
655655
end
656656
end
657657
end
658+
local N = config.get(uri, "Lua.type.inferTableSize")
658659
if field.type == 'tableexp'
659-
and field.value then
660+
and field.value
661+
and field.tindex <= N then
660662
if inversion then
661663
if vm.isSubType(uri, 'integer', knode) then
662664
result:merge(vm.compileNode(field.value))
@@ -666,6 +668,8 @@ function vm.getTableValue(uri, tnode, knode, inversion)
666668
result:merge(vm.compileNode(field.value))
667669
end
668670
end
671+
elseif field.tindex and field.tindex > N then
672+
fprint("field.tindex = %s", field.tindex)
669673
end
670674
if field.type == 'varargs' then
671675
result:merge(vm.compileNode(field))

0 commit comments

Comments
 (0)