summary refs log tree commit diff stats
path: root/compiler/pragmas.nim
diff options
context:
space:
mode:
authorawr <41453959+awr1@users.noreply.github.com>2018-09-04 16:46:43 -0500
committerawr <41453959+awr1@users.noreply.github.com>2018-09-04 16:46:43 -0500
commitc2b09a499c7b4fe255bb57ade50e2736f89aba2c (patch)
treee5a8a712277a14293e4f7149aa4f47e3366ba65f /compiler/pragmas.nim
parentcd3d4faa79d0ae90afa706393ec67f0721ed87be (diff)
downloadNim-c2b09a499c7b4fe255bb57ade50e2736f89aba2c.tar.gz
Fix merge
Diffstat (limited to 'compiler/pragmas.nim')
-rw-r--r--compiler/pragmas.nim29
1 files changed, 7 insertions, 22 deletions
diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim
index fae215556..8f6b6e362 100644
--- a/compiler/pragmas.nim
+++ b/compiler/pragmas.nim
@@ -347,7 +347,13 @@ proc processExperimental(c: PContext; n: PNode) =
     case n[1].kind
     of nkStrLit, nkRStrLit, nkTripleStrLit:
       try:
-        c.features.incl parseEnum[Feature](n[1].strVal)
+        let feature = parseEnum[Feature](n[1].strVal)
+        c.features.incl feature
+        if feature == codeReordering:
+          if not isTopLevel(c):
+              localError(c.config, n.info,
+                         "Code reordering experimental pragma only valid at toplevel")
+          c.module.flags.incl sfReorder
       except ValueError:
         localError(c.config, n[1].info, "unknown experimental feature")
     else:
@@ -732,27 +738,6 @@ proc semCustomPragma(c: PContext, n: PNode): PNode =
     elif n.kind == nkExprColonExpr:
       result.kind = n.kind # pragma(arg) -> pragma: arg
 
-proc processExperimental(c: PContext; n: PNode) =
-  if n.kind notin nkPragmaCallKinds or n.len != 2:
-    c.features.incl oldExperimentalFeatures
-  else:
-    n[1] = c.semConstExpr(c, n[1])
-    case n[1].kind
-    of nkStrLit, nkRStrLit, nkTripleStrLit:
-      try:
-        let feature = parseEnum[Feature](n[1].strVal)
-        c.features.incl feature
-        if feature == codeReordering:
-          if not isTopLevel(c):
-              localError(c.config, n.info,
-                         "Code reordering experimental pragma only valid at toplevel")
-          else:
-            c.module.flags.incl sfReorder
-      except ValueError:
-        localError(c.config, n[1].info, "unknown experimental feature")
-    else:
-      localError(c.config, n.info, errStringLiteralExpected)
-
 proc singlePragma(c: PContext, sym: PSym, n: PNode, i: var int,
                   validPragmas: TSpecialWords): bool =
   var it = n.sons[i]