summary refs log tree commit diff stats
path: root/compiler/sem.nim
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/sem.nim')
-rw-r--r--compiler/sem.nim11
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/sem.nim b/compiler/sem.nim
index df37a6384..e9c2de657 100644
--- a/compiler/sem.nim
+++ b/compiler/sem.nim
@@ -204,12 +204,15 @@ proc tryConstExpr(c: PContext, n: PNode): PNode =
   result = getConstExpr(c.module, e)
   if result != nil: return
 
-  result = evalConstExpr(c.module, e)
-  if result == nil or result.kind == nkEmpty:
+  try:
+    result = evalConstExpr(c.module, e)
+    if result == nil or result.kind == nkEmpty:
+      return nil
+
+    result = fixupTypeAfterEval(c, result, e)
+  except:
     return nil
 
-  result = fixupTypeAfterEval(c, result, e)
-  
 proc semConstExpr(c: PContext, n: PNode): PNode =
   var e = semExprWithType(c, n)
   if e == nil: