diff options
Diffstat (limited to 'compiler/semstmts.nim')
-rw-r--r-- | compiler/semstmts.nim | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 5232c5706..d0cab48a5 100644 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -1329,8 +1329,10 @@ proc typeSectionFinalPass(c: PContext, n: PNode) = else: while x.kind in {nkStmtList, nkStmtListExpr} and x.len > 0: x = x.lastSon + # we need the 'safeSkipTypes' here because illegally recursive types + # can enter at this point, see bug #13763 if x.kind notin {nkObjectTy, nkDistinctTy, nkEnumTy, nkEmpty} and - s.typ.skipTypes(abstractPtrs-{tyAlias}).kind notin {tyObject, tyEnum}: + s.typ.safeSkipTypes(abstractPtrs).kind notin {tyObject, tyEnum}: # type aliases are hard: var t = semTypeNode(c, x, nil) assert t != nil |