diff options
Diffstat (limited to 'server-beta/test/definition/special.lua')
-rw-r--r-- | server-beta/test/definition/special.lua | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/server-beta/test/definition/special.lua b/server-beta/test/definition/special.lua index 823e3a46..febf8943 100644 --- a/server-beta/test/definition/special.lua +++ b/server-beta/test/definition/special.lua @@ -12,3 +12,112 @@ TEST [[ <!rawset(_G, 'x', 1)!> print(<?x?>) ]] + +TEST [[ +local mt +mt.__index = mt +function mt:<!method1!>() +end + +local obj = setmetatable({}, mt) +obj:<?method1?>() +]] + +TEST [[ +local mt +function mt:<!method1!>() +end + +local obj = setmetatable({}, { __index = mt }) +obj:<?method1?>() +]] + +TEST [[ +local mt +function mt:<!method1!>() +end + +setmetatable(api, { __index = mt }) +api:<?method1?>() +]] + +TEST [[ +local mt +local api +function mt:<!method1!>() +end + +setmetatable(api, { __index = mt }) +api:<?method1?>() +]] + +TEST [[ +local mt +function mt:x() + self.<?init?>() +end + +local obj = setmetatable({}, { __index = mt }) +obj.<!init!> = 1 +obj:x() +]] + +TEST [[ +local mt +function mt:x() + self.<?init?>() +end + +local obj = setmetatable({ <!init!> = 1 }, { __index = mt }) +obj:x() +]] + +TEST [[ +local mt +function mt:x() + self.a.<?out?>() +end + +local obj = setmetatable({ + a = { + <!out!> = 1, + } +}, { __index = mt }) +obj:x() +]] + +TEST [[ +local sm = setmetatable +local mt +mt.__index = mt +function mt:<!method1!>() +end + +local obj = sm({}, mt) +obj:<?method1?>() +]] + +TEST [[ +local mt = {} +function mt:<!x!>() +end + +local obj = setmetatable({}, {__index = mt}) +function obj:x() +end + +mt:<?x?>() +]] + +-- TODO 通过代码执行顺序来判断 +--TEST [[ +--local mt = {} +--function mt:x() +--end +-- +--local obj = setmetatable({}, {__index = mt}) +--function obj:<!x!>() +--end +-- +--obj:<?x?>() +--]] |