summary refs log tree commit diff stats
path: root/rod/sem.nim
diff options
context:
space:
mode:
Diffstat (limited to 'rod/sem.nim')
-rwxr-xr-xrod/sem.nim6
1 files changed, 4 insertions, 2 deletions
diff --git a/rod/sem.nim b/rod/sem.nim
index 66fc66cbe..eec579dda 100755
--- a/rod/sem.nim
+++ b/rod/sem.nim
@@ -28,8 +28,10 @@ proc considerAcc(n: PNode): PIdent =
     GlobalError(n.info, errIdentifierExpected, renderTree(n))
     result = nil
 
-proc isTopLevel(c: PContext): bool = 
-  result = c.tab.tos <= 2
+proc isTopLevel(c: PContext): bool {.inline.} = 
+  # if we encountered an error, we treat as top-level so that
+  # cascading errors are not that strange:
+  result = c.tab.tos <= 2 or msgs.gErrorCounter > 0
 
 proc newSymS(kind: TSymKind, n: PNode, c: PContext): PSym = 
   result = newSym(kind, considerAcc(n), getCurrOwner())