summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--script/vm/getDef.lua4
-rw-r--r--script/vm/global-node.lua6
-rw-r--r--script/vm/node/compiler.lua4
-rw-r--r--test/definition/table.lua10
4 files changed, 18 insertions, 6 deletions
diff --git a/script/vm/getDef.lua b/script/vm/getDef.lua
index 735a817e..df180420 100644
--- a/script/vm/getDef.lua
+++ b/script/vm/getDef.lua
@@ -88,6 +88,10 @@ local nodeMap;nodeMap = util.switch()
end)
: case 'getfield'
: case 'setfield'
+ : case 'getmethod'
+ : case 'setmethod'
+ : case 'getindex'
+ : case 'setindex'
: call(function (source, pushResult)
local node = compiler.compileNode(source.node)
if not node then
diff --git a/script/vm/global-node.lua b/script/vm/global-node.lua
index 107ea2e0..6235ff6b 100644
--- a/script/vm/global-node.lua
+++ b/script/vm/global-node.lua
@@ -5,7 +5,7 @@ local globalBuilder = require 'vm.node.global'
---@class parser.object
---@field _globalNode vm.node.global
----@class vm.global-id
+---@class vm.global-node
local m = {}
---@type table<string, vm.node.global>
m.globals = util.defaultTable(globalBuilder)
@@ -46,6 +46,8 @@ local compilerGlobalMap = util.switch()
end
end)
: case 'setfield'
+ : case 'setmethod'
+ : case 'setindex'
---@param uri uri
---@param source parser.object
: call(function (uri, source)
@@ -57,6 +59,8 @@ local compilerGlobalMap = util.switch()
source._globalNode = m.declareGlobal(name, uri, source)
end)
: case 'getfield'
+ : case 'getmethod'
+ : case 'getindex'
---@param uri uri
---@param source parser.object
: call(function (uri, source)
diff --git a/script/vm/node/compiler.lua b/script/vm/node/compiler.lua
index 003ff884..72869b25 100644
--- a/script/vm/node/compiler.lua
+++ b/script/vm/node/compiler.lua
@@ -158,10 +158,14 @@ local compilerMap = util.switch()
m.setNode(source, m.compileNode(source.node))
end)
: case 'setfield'
+ : case 'setmethod'
+ : case 'setindex'
: call(function (source)
compileByLocalID(source)
end)
: case 'getfield'
+ : case 'getmethod'
+ : case 'getindex'
: call(function (source)
compileByLocalID(source)
compileByParentNode(source)
diff --git a/test/definition/table.lua b/test/definition/table.lua
index 9486ae93..66e71b0c 100644
--- a/test/definition/table.lua
+++ b/test/definition/table.lua
@@ -170,8 +170,8 @@ local t = f()
t.<?x?>
]]
-TEST [[
-local t = { <!a!> }
-
-print(t[<?1?>])
-]]
+--TEST [[
+--local t = { <!a!> }
+--
+--print(t[<?1?>])
+--]]