fixes #21674; lent can be used in the fields or the cast type as a parameter (#21684)

* fixes #21674; `lent` can be used in the fields or the cast type as a parameter

* add a test case

* fix the test
This commit is contained in:
ringabout
2023-04-18 00:31:47 +08:00
committed by GitHub
parent 91e4381a20
commit 65223e6f59
3 changed files with 20 additions and 2 deletions

View File

@@ -261,7 +261,7 @@ proc isCastable(c: PContext; dst, src: PType, info: TLineInfo): bool =
return false
elif srcSize < 0:
return false
elif typeAllowed(dst, skParam, c) != nil:
elif typeAllowed(dst, skParam, c, {taIsCastable}) != nil:
return false
elif dst.kind == tyProc and dst.callConv == ccClosure:
return src.kind == tyProc and src.callConv == ccClosure