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:42:37 -0500
committerawr <41453959+awr1@users.noreply.github.com>2018-09-04 16:42:37 -0500
commitcd3d4faa79d0ae90afa706393ec67f0721ed87be (patch)
tree9f19b79a5419bdb0441bba9339c1ac0d361c23d0 /compiler/pragmas.nim
parenteb668003bf35671d7358e5f54e05820c0f4aef3d (diff)
downloadNim-cd3d4faa79d0ae90afa706393ec67f0721ed87be.tar.gz
Deny THIS experimental pragma specifically for non-toplevel
Diffstat (limited to 'compiler/pragmas.nim')
-rw-r--r--compiler/pragmas.nim6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim
index 910ee799c..fae215556 100644
--- a/compiler/pragmas.nim
+++ b/compiler/pragmas.nim
@@ -743,7 +743,11 @@ proc processExperimental(c: PContext; n: PNode) =
         let feature = parseEnum[Feature](n[1].strVal)
         c.features.incl feature
         if feature == codeReordering:
-          c.module.flags.incl sfReorder
+          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: