File tree Expand file tree Collapse file tree 2 files changed +150
-0
lines changed
Expand file tree Collapse file tree 2 files changed +150
-0
lines changed Original file line number Diff line number Diff line change @@ -332,3 +332,69 @@ local x
332332- 类型 `nil` 无法匹配 `'B'`
333333- 类型 `nil` 无法匹配 `'A'`]] )
334334end )
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+ ]]
Original file line number Diff line number Diff line change @@ -264,3 +264,87 @@ local function f(v) end
264264f 'x'
265265f '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+ ]]
You can’t perform that action at this time.
0 commit comments