diff options
-rw-r--r-- | compiler/ast.nim | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/ast.nim b/compiler/ast.nim index a52cf2144..6ad8d78f5 100644 --- a/compiler/ast.nim +++ b/compiler/ast.nim @@ -1692,12 +1692,14 @@ proc isException*(t: PType): bool = # check if `y` is object type and it inherits from Exception assert(t != nil) + if t.kind notin {tyObject, tyGenericInst}: + return false + var base = t - while base != nil and base.kind in {tyRef, tyObject, tyGenericInst, tyAlias}: + while base != nil: if base.sym != nil and base.sym.magic == mException: return true - if base.len == 0: break - else: base = base.lastSon + base = base.lastSon return false proc isImportedException*(t: PType; conf: ConfigRef): bool = |