summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/ast.nim8
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 =