Skip to content

Commit b7c5809

Browse files
committed
add test
1 parent 6cd1038 commit b7c5809

File tree

2 files changed

+150
-0
lines changed

2 files changed

+150
-0
lines changed

test/diagnostics/cast-local-type.lua

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,3 +332,69 @@ local x
332332
- 类型 `nil` 无法匹配 `'B'`
333333
- 类型 `nil` 无法匹配 `'A'`]])
334334
end)
335+
336+
TEST [[
337+
---@class A
338+
---@field x string
339+
---@field y number
340+
341+
local a = {x = "", y = 0}
342+
343+
---@type A
344+
local v
345+
v = a
346+
]]
347+
348+
TEST [[
349+
---@class A
350+
---@field x string
351+
---@field y number
352+
353+
local a = {x = ""}
354+
355+
---@type A
356+
local v
357+
<!v!> = a
358+
]]
359+
360+
TEST [[
361+
---@class A
362+
---@field x string
363+
---@field y number
364+
365+
local a = {x = "", y = ""}
366+
367+
---@type A
368+
local v
369+
<!v!> = a
370+
]]
371+
372+
TEST [[
373+
---@class A
374+
---@field x string
375+
---@field y? B
376+
377+
---@class B
378+
---@field x string
379+
380+
local a = {x = "b", y = {x = "c"}}
381+
382+
---@type A
383+
local v
384+
v = a
385+
]]
386+
387+
TEST [[
388+
---@class A
389+
---@field x string
390+
---@field y B
391+
392+
---@class B
393+
---@field x string
394+
395+
local a = {x = "b", y = {}}
396+
397+
---@type A
398+
local v
399+
<!v!> = a
400+
]]

test/diagnostics/param-type-mismatch.lua

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,3 +264,87 @@ local function f(v) end
264264
f 'x'
265265
f 'y'
266266
]]
267+
268+
TEST [[
269+
---@class A
270+
---@field x string
271+
---@field y number
272+
273+
local a = {x = "", y = 0}
274+
275+
---@param a A
276+
function f(a) end
277+
278+
f(a)
279+
]]
280+
281+
TEST [[
282+
---@class A
283+
---@field x string
284+
---@field y number
285+
286+
local a = {x = ""}
287+
288+
---@param a A
289+
function f(a) end
290+
291+
f(<!a!>)
292+
]]
293+
294+
TEST [[
295+
---@class A
296+
---@field x string
297+
---@field y number
298+
299+
local a = {x = "", y = ""}
300+
301+
---@param a A
302+
function f(a) end
303+
304+
f(<!a!>)
305+
]]
306+
307+
TEST [[
308+
---@class A
309+
---@field x string
310+
---@field y? B
311+
312+
---@class B
313+
---@field x string
314+
315+
local a = {x = "b", y = {x = "c"}}
316+
317+
---@param a A
318+
function f(a) end
319+
320+
f(a)
321+
]]
322+
323+
TEST [[
324+
---@class A
325+
---@field x string
326+
---@field y B
327+
328+
---@class B
329+
---@field x string
330+
331+
local a = {x = "b", y = {}}
332+
333+
---@param a A
334+
function f(a) end
335+
336+
f(<!a!>)
337+
]]
338+
339+
TEST [[
340+
---@class A
341+
---@field x string
342+
343+
---@type A
344+
local a = {}
345+
346+
---@param a A
347+
function f(a) end
348+
349+
f(a)
350+
]]

0 commit comments

Comments
 (0)