fixes #20695; fixes object with distinct defaults and tables (#21428)

This commit is contained in:
ringabout
2023-02-24 16:02:44 +08:00
committed by GitHub
parent 8a19ac2070
commit bbb6d2c69d
2 changed files with 41 additions and 2 deletions

View File

@@ -222,9 +222,11 @@ proc isRecursiveType(t: PType, cycleDetector: var IntSet): bool =
proc fitDefaultNode(c: PContext, n: PNode): PType =
let expectedType = if n[^2].kind != nkEmpty: semTypeNode(c, n[^2], nil) else: nil
let oldType = n[^1].typ
n[^1] = semConstExpr(c, n[^1], expectedType = expectedType)
n[^1].flags.incl nfSem
if n[^2].kind != nkEmpty:
if expectedType != nil:
if expectedType != nil and oldType != expectedType:
n[^1] = fitNodeConsiderViewType(c, expectedType, n[^1], n[^1].info)
result = n[^1].typ
else: