From c2b09a499c7b4fe255bb57ade50e2736f89aba2c Mon Sep 17 00:00:00 2001 From: awr <41453959+awr1@users.noreply.github.com> Date: Tue, 4 Sep 2018 16:46:43 -0500 Subject: [PATCH] Fix merge --- compiler/pragmas.nim | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim index fae2155567..8f6b6e362c 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]