summary refs log tree commit diff stats
path: root/compiler/sempass2.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-08-22 23:54:26 +0200
committerAraq <rumpf_a@web.de>2014-08-22 23:54:26 +0200
commitdbf9117c562601d6b571d964a6cb152e95fe8c4e (patch)
tree95592f484b39d607594816c41934f3e3663ca60f /compiler/sempass2.nim
parent014b79617ec08141c06aaff1aaf777cecf535633 (diff)
downloadNim-dbf9117c562601d6b571d964a6cb152e95fe8c4e.tar.gz
the big renamefest: first steps
Diffstat (limited to 'compiler/sempass2.nim')
-rw-r--r--compiler/sempass2.nim15
1 files changed, 11 insertions, 4 deletions
diff --git a/compiler/sempass2.nim b/compiler/sempass2.nim
index acc2425f1..332b74155 100644
--- a/compiler/sempass2.nim
+++ b/compiler/sempass2.nim
@@ -130,20 +130,27 @@ proc addToIntersection(inter: var TIntersection, s: int) =
 
 proc throws(tracked, n: PNode) =
   if n.typ == nil or n.typ.kind != tyError: tracked.add n
-  
+
+proc getEbase(): PType =
+  result = if getCompilerProc("Exception") != nil: sysTypeFromName"Exception"
+           else: sysTypeFromName"E_Base"
+
 proc excType(n: PNode): PType =
   # reraise is like raising E_Base:
-  let t = if n.kind == nkEmpty: sysTypeFromName"E_Base" else: n.typ
+  let t = if n.kind == nkEmpty: getEbase() else: n.typ
   result = skipTypes(t, skipPtrs)
 
 proc createRaise(n: PNode): PNode =
   result = newNode(nkType)
-  result.typ = sysTypeFromName"E_Base"
+  result.typ = getEbase()
   if not n.isNil: result.info = n.info
 
 proc createTag(n: PNode): PNode =
   result = newNode(nkType)
-  result.typ = sysTypeFromName"TEffect"
+  if getCompilerProc("RootEffect") != nil:
+    result.typ = sysTypeFromName"RootEffect"
+  else:
+    result.typ = sysTypeFromName"TEffect"
   if not n.isNil: result.info = n.info
 
 proc createAnyGlobal(n: PNode): PNode =