diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2020-11-20 21:57:09 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2020-11-20 21:57:09 +0800 |
commit | 4ca61ec457822dd14966afa0752340ae8ce180a1 (patch) | |
tree | ae8adb1ad82c717868e551e699fd3cf3bb290089 /test/definition/special.lua | |
parent | c63b2e404d8d2bb984afe3678a5ba2b2836380cc (diff) | |
download | lua-language-server-4ca61ec457822dd14966afa0752340ae8ce180a1.zip |
no longer beta
Diffstat (limited to 'test/definition/special.lua')
-rw-r--r-- | test/definition/special.lua | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/test/definition/special.lua b/test/definition/special.lua new file mode 100644 index 00000000..4e3728e3 --- /dev/null +++ b/test/definition/special.lua @@ -0,0 +1,126 @@ +TEST [[ +_ENV.<!x!> = 1 +print(<?x?>) +]] + +TEST [[ +_G.<!x!> = 1 +print(<?x?>) +]] + +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?>() +]] + +-- TODO 不支持从方法内部找外部的赋值 +--TEST [[ +--local mt +--function mt:x() +-- self.<?init?>() +--end +-- +--local obj, _ = setmetatable({}, { __index = mt }) +--obj.<!init!> = 1 +--obj:x() +--]] + +-- TODO 不支持从方法内部找外部的赋值 +--TEST [[ +--local mt +--function mt:x() +-- self.<?init?>() +--end +-- +--local obj = setmetatable({ <!init!> = 1 }, { __index = mt }) +--obj:x() +--]] + +-- TODO 不支持从方法内部找外部的赋值 +--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?>() +]] |