summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/transf.nim5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/transf.nim b/compiler/transf.nim
index ee05b6e43..4208c43e5 100644
--- a/compiler/transf.nim
+++ b/compiler/transf.nim
@@ -679,7 +679,7 @@ proc transformCall(c: PTransf, n: PNode): PTransNode =
           inc(j)
       add(result, a.PTransNode)
     if len(result) == 2: result = result[1]
-  elif magic == mNBindSym:
+  elif magic in {mNBindSym, mTypeOf}:
     # for bindSym(myconst) we MUST NOT perform constant folding:
     result = n.PTransNode
   elif magic == mProcCall:
@@ -820,7 +820,7 @@ proc transform(c: PTransf, n: PNode): PTransNode =
   of nkConstSection:
     # do not replace ``const c = 3`` with ``const 3 = 3``
     return transformConstSection(c, n)
-  of nkTypeSection:
+  of nkTypeSection, nkTypeOfExpr:
     # no need to transform type sections:
     return PTransNode(n)
   of nkVarSection, nkLetSection:
@@ -851,6 +851,7 @@ proc transform(c: PTransf, n: PNode): PTransNode =
     result = transformSons(c, n)
   when false:
     if oldDeferAnchor != nil: c.deferAnchor = oldDeferAnchor
+
   var cnst = getConstExpr(c.module, PNode(result))
   # we inline constants if they are not complex constants:
   if cnst != nil and not dontInlineConstant(n, cnst):