summaryrefslogtreecommitdiff
path: root/test-beta
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2020-10-25 18:21:40 +0800
committer最萌小汐 <sumneko@hotmail.com>2020-10-25 18:21:40 +0800
commitc848377b107594759492c6ba6566705c9821df32 (patch)
tree1adec8c9a1d1638bacd23d0658c1c62d6188b72c /test-beta
parent0e12a5a4ad223393a76827ffdd39d27ca3db4bd9 (diff)
downloadlua-language-server-c848377b107594759492c6ba6566705c9821df32.zip
更新诊断
Diffstat (limited to 'test-beta')
-rw-r--r--test-beta/diagnostics/init.lua2
-rw-r--r--test-beta/hover/init.lua816
-rw-r--r--test-beta/rename/init.lua40
3 files changed, 449 insertions, 409 deletions
diff --git a/test-beta/diagnostics/init.lua b/test-beta/diagnostics/init.lua
index f8cfa39a..b1801083 100644
--- a/test-beta/diagnostics/init.lua
+++ b/test-beta/diagnostics/init.lua
@@ -714,7 +714,7 @@ TEST [[
TEST [[
---@class Class
----@field <!x!> Class
+---@field x Class
---@field <!x!> Class
]]
diff --git a/test-beta/hover/init.lua b/test-beta/hover/init.lua
index f06afbfc..182474e0 100644
--- a/test-beta/hover/init.lua
+++ b/test-beta/hover/init.lua
@@ -842,411 +842,411 @@ local <?x?> <close> = 1
local x <close>: integer = 1
]]
---TEST[[
------@class Class
---local <?x?> = class()
---]]
---[[
---local x: *Class {}
---]]
---
---TEST[[
------@class Class
---<?x?> = class()
---]]
---[[
---global x: *Class {}
---]]
---
---TEST[[
---local t = {
--- ---@class Class
--- <?x?> = class()
---}
---]]
---[[
---field x: *Class {}
---]]
---
---TEST[[
------@type Class
---local <?x?> = class()
---]]
---[[
---local x: *Class {}
---]]
---
---TEST[[
------@type Class
---<?x?> = class()
---]]
---[[
---global x: *Class {}
---]]
---
---TEST[[
---local t = {
--- ---@type Class
--- <?x?> = class()
---}
---]]
---[[
---field x: *Class {}
---]]
---
---TEST[[
------@type A|B|C
---local <?x?> = class()
---]]
---[[
---local x: *A|B|C {}
---]]
---
---TEST[[
------@class Class
---local <?x?> = {
--- b = 1
---}
---]]
---[[
---local x: *Class {
--- b: number = 1,
---}
---]]
---
---TEST [[
------@class Class
---local mt = {}
---
------@param t Class
---function f(<?t?>)
---end
---]]
---[[
---local t: *Class {}
---]]
---
---TEST [[
------@class Class
---local mt = {}
---
------@param t Class
---function f(t)
--- print(<?t?>)
---end
---]]
---[[
---local t: *Class {}
---]]
---
---TEST [[
------@class Class
---local mt = {}
---
------@param t Class
---function f(t)
---end
---
---f(<?s?>)
---]]
---[[
---global s: *Class {}
---]]
---
---TEST [[
------@class Class
---
------@param k Class
---for <?k?> in pairs(t) do
---end
---]]
---[[
---local k<key>: *Class {}
---]]
---
---TEST [[
------@class Class
---
------@param v Class
---for k, <?v?> in pairs(t) do
---end
---]]
---[[
---local v<value>: *Class {}
---]]
---
---TEST [[
------@return A|B
------@return C
---local function <?f?>()
---end
---]]
---[[
---function f()
--- -> A|B, C
---]]
---
---TEST [[
------@generic T
------@param x T
------@return T
---local function f(x)
---end
---
---local <?r?> = f(1)
---]]
---[[
---local r: number
---]]
---
---TEST [[
------@param x number
------@param y boolean
---local function <?f?>(x, y)
---end
---]]
---[[
---function f(x: number, y: boolean)
---]]
---
---TEST [[
------@vararg Class
---local function f(...)
--- local _, <?x?> = ...
---end
---f(1, 2, 3)
---]]
---[[
---local x: *Class = 2
---]]
---
---TEST [[
------@vararg Class
---local function f(...)
--- local _, <?x?> = ...
---end
---]]
---[[
---local x: *Class {}
---]]
---
---TEST [[
------@type string[]
---local <?x?>
---]]
---[[
---local x: {
--- [*integer]: string,
---}
---]]
---
---TEST [[
------@type (string|boolean)[]
---local <?x?>
---]]
---[[
---local x: {
--- [*integer]: string|boolean,
---}
---]]
---
---TEST [[
------@type string[]
---local t
---local <?x?> = t[1]
---]]
---[[
---local x: string
---]]
---
---TEST [[
------@type string[]
---local t
---for _, <?x?> in ipairs(t) do
---end
---]]
---[[
---local x: string
---]]
---
---TEST [[
------@type string[]
---local t
---for _, <?x?> in pairs(t) do
---end
---]]
---[[
---local x: string
---]]
---
---TEST [[
------@type string[]
---local t
---for <?k?>, v in pairs(t) do
---end
---]]
---[[
---local k: integer
---]]
---
---TEST [[
------@type table<ClassA, ClassB>
---local <?x?>
---]]
---[[
---local x: {
--- [*ClassA]: ClassB,
---}
---]]
---
---TEST [[
------@type table<ClassA, ClassB>
---local t
---for _, <?x?> in pairs(t) do
---end
---]]
---[[
---local x: *ClassB
---]]
---
---TEST [[
------@type table<ClassA, ClassB>
---local t
---for <?k?>, v in pairs(t) do
---end
---]]
---[[
---local k: *ClassA
---]]
---
---TEST [[
------@type fun(x: number, y: number):boolean
---local <?f?>
---]]
---[[
---function f(x: number, y: number)
--- -> boolean
---]]
---
---TEST [[
------@type fun(x: number, y: number):boolean
---local f
---f(<?a?>)
---]]
---[[
---global a: number
---]]
---
---TEST [[
------@type fun(x: number, y: number):boolean
---local f
---local <?r?> = f()
---]]
---[[
---local r: boolean
---]]
---
---TEST [[
------@param f fun():void
---function t(<?f?>) end
---]]
---[[
---function ()
--- -> void
---]]
---
---TEST [[
------@type fun(a:any, b:any)
---local f
---local t = {f = f}
---t:<?f?>()
---]]
---[[
---function f(b: any)
--- -> any
---]]
---
---TEST [[
------@param names string[]
---local function f(<?names?>)
---end
---]]
---[[
---local names: {
--- [*integer]: string,
---}
---]]
---
---TEST [[
------@return any
---function <?f?>()
--- ---@type integer
--- local a
--- return a
---end
---]]
---[[
---function f()
--- -> any
---]]
---
---TEST [[
------@return any
---function f()
--- ---@type integer
--- local a
--- return a
---end
---
---local <?x?> = f()
---]]
---[[
---local x: any
---]]
---
---
---TEST [[
------@param x number {optional = 'after'}
------@param y boolean {optional = 'self'}
------@param z string
---function <?f?>(x, y, z) end
---]]
---[=[
---function f([x: number [, y: boolean], z: string])
---]=]
---
---TEST [[
------@return string {name = 'key'}
------@return string {name = 'value'}
---function <?f?>() end
---]]
---[=[
---function f()
--- -> key: string, value: string
---]=]
---
---TEST [[
------@return {name = 'x', optional = 'after'}
------@return string {name = 'y', optional = 'self'}
------@return string {name = 'z'}
---function <?f?>() end
---]]
---[=[
---function f()
--- -> [x: any [, y: string], z: string]
---]=]
---
---TEST [[
------@return {name = 'x', optional = 'after'}
------@return string {name = 'y', optional = 'self'}
------@return string {name = 'z'}
---function f()
--- return function (a, b)
--- end
---end
---
---<?f2?> = f()
---]]
---[=[
---function f2(a: any, b: any)
---]=]
+TEST[[
+---@class Class
+local <?x?> = class()
+]]
+[[
+local x: Class {}
+]]
+
+TEST[[
+---@class Class
+<?x?> = class()
+]]
+[[
+global x: Class {}
+]]
+
+TEST[[
+local t = {
+ ---@class Class
+ <?x?> = class()
+}
+]]
+[[
+field x: Class {}
+]]
+
+TEST[[
+---@type Class
+local <?x?> = class()
+]]
+[[
+local x: Class {}
+]]
+
+TEST[[
+---@type Class
+<?x?> = class()
+]]
+[[
+global x: Class {}
+]]
+
+TEST[[
+local t = {
+ ---@type Class
+ <?x?> = class()
+}
+]]
+[[
+field x: Class {}
+]]
+
+TEST[[
+---@type A|B|C
+local <?x?> = class()
+]]
+[[
+local x: A|B|C {}
+]]
+
+TEST[[
+---@class Class
+local <?x?> = {
+ b = 1
+}
+]]
+[[
+local x: Class {
+ b: number = 1,
+}
+]]
+
+TEST [[
+---@class Class
+local mt = {}
+
+---@param t Class
+function f(<?t?>)
+end
+]]
+[[
+local t: Class {}
+]]
+
+TEST [[
+---@class Class
+local mt = {}
+
+---@param t Class
+function f(t)
+ print(<?t?>)
+end
+]]
+[[
+local t: *Class {}
+]]
+
+TEST [[
+---@class Class
+local mt = {}
+
+---@param t Class
+function f(t)
+end
+
+f(<?s?>)
+]]
+[[
+global s: Class {}
+]]
+
+TEST [[
+---@class Class
+
+---@param k Class
+for <?k?> in pairs(t) do
+end
+]]
+[[
+local k<key>: Class {}
+]]
+
+TEST [[
+---@class Class
+
+---@param v Class
+for k, <?v?> in pairs(t) do
+end
+]]
+[[
+local v<value>: *Class {}
+]]
+
+TEST [[
+---@return A|B
+---@return C
+local function <?f?>()
+end
+]]
+[[
+function f()
+ -> A|B, C
+]]
+
+TEST [[
+---@generic T
+---@param x T
+---@return T
+local function f(x)
+end
+
+local <?r?> = f(1)
+]]
+[[
+local r: number
+]]
+
+TEST [[
+---@param x number
+---@param y boolean
+local function <?f?>(x, y)
+end
+]]
+[[
+function f(x: number, y: boolean)
+]]
+
+TEST [[
+---@vararg Class
+local function f(...)
+ local _, <?x?> = ...
+end
+f(1, 2, 3)
+]]
+[[
+local x: *Class = 2
+]]
+
+TEST [[
+---@vararg Class
+local function f(...)
+ local _, <?x?> = ...
+end
+]]
+[[
+local x: *Class {}
+]]
+
+TEST [[
+---@type string[]
+local <?x?>
+]]
+[[
+local x: {
+ [*integer]: string,
+}
+]]
+
+TEST [[
+---@type (string|boolean)[]
+local <?x?>
+]]
+[[
+local x: {
+ [*integer]: string|boolean,
+}
+]]
+
+TEST [[
+---@type string[]
+local t
+local <?x?> = t[1]
+]]
+[[
+local x: string
+]]
+
+TEST [[
+---@type string[]
+local t
+for _, <?x?> in ipairs(t) do
+end
+]]
+[[
+local x: string
+]]
+
+TEST [[
+---@type string[]
+local t
+for _, <?x?> in pairs(t) do
+end
+]]
+[[
+local x: string
+]]
+
+TEST [[
+---@type string[]
+local t
+for <?k?>, v in pairs(t) do
+end
+]]
+[[
+local k: integer
+]]
+
+TEST [[
+---@type table<ClassA, ClassB>
+local <?x?>
+]]
+[[
+local x: {
+ [*ClassA]: ClassB,
+}
+]]
+
+TEST [[
+---@type table<ClassA, ClassB>
+local t
+for _, <?x?> in pairs(t) do
+end
+]]
+[[
+local x: *ClassB
+]]
+
+TEST [[
+---@type table<ClassA, ClassB>
+local t
+for <?k?>, v in pairs(t) do
+end
+]]
+[[
+local k: *ClassA
+]]
+
+TEST [[
+---@type fun(x: number, y: number):boolean
+local <?f?>
+]]
+[[
+function f(x: number, y: number)
+ -> boolean
+]]
+
+TEST [[
+---@type fun(x: number, y: number):boolean
+local f
+f(<?a?>)
+]]
+[[
+global a: number
+]]
+
+TEST [[
+---@type fun(x: number, y: number):boolean
+local f
+local <?r?> = f()
+]]
+[[
+local r: boolean
+]]
+
+TEST [[
+---@param f fun():void
+function t(<?f?>) end
+]]
+[[
+function ()
+ -> void
+]]
+
+TEST [[
+---@type fun(a:any, b:any)
+local f
+local t = {f = f}
+t:<?f?>()
+]]
+[[
+function f(b: any)
+ -> any
+]]
+
+TEST [[
+---@param names string[]
+local function f(<?names?>)
+end
+]]
+[[
+local names: {
+ [*integer]: string,
+}
+]]
+
+TEST [[
+---@return any
+function <?f?>()
+ ---@type integer
+ local a
+ return a
+end
+]]
+[[
+function f()
+ -> any
+]]
+
+TEST [[
+---@return any
+function f()
+ ---@type integer
+ local a
+ return a
+end
+
+local <?x?> = f()
+]]
+[[
+local x: any
+]]
+
+
+TEST [[
+---@param x number {optional = 'after'}
+---@param y boolean {optional = 'self'}
+---@param z string
+function <?f?>(x, y, z) end
+]]
+[=[
+function f([x: number [, y: boolean], z: string])
+]=]
+
+TEST [[
+---@return string {name = 'key'}
+---@return string {name = 'value'}
+function <?f?>() end
+]]
+[=[
+function f()
+ -> key: string, value: string
+]=]
+
+TEST [[
+---@return {name = 'x', optional = 'after'}
+---@return string {name = 'y', optional = 'self'}
+---@return string {name = 'z'}
+function <?f?>() end
+]]
+[=[
+function f()
+ -> [x: any [, y: string], z: string]
+]=]
+
+TEST [[
+---@return {name = 'x', optional = 'after'}
+---@return string {name = 'y', optional = 'self'}
+---@return string {name = 'z'}
+function f()
+ return function (a, b)
+ end
+end
+
+<?f2?> = f()
+]]
+[=[
+function f2(a: any, b: any)
+]=]
diff --git a/test-beta/rename/init.lua b/test-beta/rename/init.lua
index a1595d9a..5ca0ca15 100644
--- a/test-beta/rename/init.lua
+++ b/test-beta/rename/init.lua
@@ -163,3 +163,43 @@ a()
function a:b() end
a:b()
]]
+
+-- TODO
+do return end
+TEST ('class1', 'class2') [[
+---@class1
+
+---@type class1
+
+---@param x class1
+]] [[
+---@class2
+
+---@type class2
+
+---@param x class2
+]]
+
+TEST ('alias1', 'alias2') [[
+---@alias alias1 class
+
+---@type alias1
+
+---@param x alias1
+]] [[
+---@alias alias2 class
+
+---@type alias2
+
+---@param x alias2
+]]
+
+TEST ('arg1', 'arg2') [[
+---@param arg1 number
+function f(arg1)
+end
+]] [[
+---@param arg2 number
+function f(arg2)
+end
+]]