summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/template/basic.lua2
-rw-r--r--meta/template/io.lua6
-rw-r--r--meta/template/package.lua2
-rw-r--r--script-beta/core/diagnostics/doc-field-no-class.lua23
-rw-r--r--script-beta/library.lua2
-rw-r--r--script-beta/parser/guide.lua4
-rw-r--r--test-beta/diagnostics/init.lua12
7 files changed, 34 insertions, 17 deletions
diff --git a/meta/template/basic.lua b/meta/template/basic.lua
index 1e86d828..c58d09b7 100644
--- a/meta/template/basic.lua
+++ b/meta/template/basic.lua
@@ -145,7 +145,7 @@ function setmetatable(table, metatable) end
---@param e string|number
---@param base integer?
----@return number|nil
+---@return number?
function tonumber(e, base) end
---@param v any
diff --git a/meta/template/io.lua b/meta/template/io.lua
index c0d1689c..90354b64 100644
--- a/meta/template/io.lua
+++ b/meta/template/io.lua
@@ -35,6 +35,12 @@ function io.input(file) end
---@return fun():string|number
function io.lines(filename, ...) end
+---@param filename string
+---@param mode openmode
+---@return file?
+---@return string errmsg?
+function io.open(filename, mode) end
+
---@overload fun():file
---@param file string|file
function io.output(file) end
diff --git a/meta/template/package.lua b/meta/template/package.lua
index 7970e2ca..a133a4f6 100644
--- a/meta/template/package.lua
+++ b/meta/template/package.lua
@@ -17,7 +17,7 @@ function package.loadlib(libname, funcname) end
---@param path string
---@param sep string?
---@param rep string?
----@return string|nil filename
+---@return string filename?
---@return string errmsg?
function package.searchpath(name, path, sep, rep) end
diff --git a/script-beta/core/diagnostics/doc-field-no-class.lua b/script-beta/core/diagnostics/doc-field-no-class.lua
index 88c61824..f27bbb32 100644
--- a/script-beta/core/diagnostics/doc-field-no-class.lua
+++ b/script-beta/core/diagnostics/doc-field-no-class.lua
@@ -23,19 +23,18 @@ return function (uri, callback)
for _, other in ipairs(bindGroup) do
if other.type == 'doc.class' then
ok = true
- elseif other == doc then
- if not ok then
- callback {
- start = doc.start,
- finish = doc.finish,
- message = lang.script('DIAG_DOC_FIELD_NO_CLASS'),
- }
- end
- goto CONTINUE
- elseif other.type == 'doc.field' then
- else
- ok = false
+ break
end
+ if other == doc then
+ break
+ end
+ end
+ if not ok then
+ callback {
+ start = doc.start,
+ finish = doc.finish,
+ message = lang.script('DIAG_DOC_FIELD_NO_CLASS'),
+ }
end
::CONTINUE::
end
diff --git a/script-beta/library.lua b/script-beta/library.lua
index 78321d6a..a4741fd1 100644
--- a/script-beta/library.lua
+++ b/script-beta/library.lua
@@ -315,7 +315,7 @@ local function compileMetaDoc()
language = langID,
})
if fs.exists(m.metapath) then
- return
+ --return
end
fs.create_directory(m.metapath)
local templateDir = ROOT / 'meta' / 'template'
diff --git a/script-beta/parser/guide.lua b/script-beta/parser/guide.lua
index 288a0381..b85d10d8 100644
--- a/script-beta/parser/guide.lua
+++ b/script-beta/parser/guide.lua
@@ -806,8 +806,8 @@ end
---@param a table
---@param b table
---@return string|boolean mode
----@return table|nil pathA
----@return table|nil pathB
+---@return table pathA?
+---@return table pathB?
function m.getPath(a, b, sameFunction)
--- 首先测试双方在同一个函数内
if sameFunction and m.getParentFunction(a) ~= m.getParentFunction(b) then
diff --git a/test-beta/diagnostics/init.lua b/test-beta/diagnostics/init.lua
index 4fe96ec4..e32ef275 100644
--- a/test-beta/diagnostics/init.lua
+++ b/test-beta/diagnostics/init.lua
@@ -720,6 +720,18 @@ TEST [[
TEST [[
---@class Class
+
+---@field <!x Class!>
+]]
+
+TEST [[
+---@class Class
+---
+---@field x Class
+]]
+
+TEST [[
+---@class Class
---@field x Class
---@field <!x!> Class
]]