diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/pragmas.nim | 9 | ||||
-rw-r--r-- | compiler/wordrecg.nim | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim index 2065f587d..94e6a4332 100644 --- a/compiler/pragmas.nim +++ b/compiler/pragmas.nim @@ -25,9 +25,9 @@ const wBorrow, wExtern, wImportCompilerProc, wThread, wImportCpp, wImportObjC, wAsmNoStackFrame, wError, wDiscardable, wNoInit, wCodegenDecl, wGensym, wInject, wRaises, wTags, wLocks, wDelegator, wGcSafe, - wConstructor, wExportNims, wUsed, wLiftLocals, wStacktrace, wLinetrace} - converterPragmas* = procPragmas - methodPragmas* = procPragmas+{wBase}-{wImportCpp} + wConstructor, wExportNims, wUsed, wLiftLocals, wStacktrace, wLinetrace, wNoDestroy} + converterPragmas* = procPragmas - {wNoDestroy} + methodPragmas* = procPragmas+{wBase}-{wImportCpp, wNoDestroy} templatePragmas* = {wDeprecated, wError, wGensym, wInject, wDirty, wDelegator, wExportNims, wUsed, wPragma} macroPragmas* = {FirstCallConv..LastCallConv, wImportc, wExportc, @@ -874,6 +874,9 @@ proc singlePragma(c: PContext, sym: PSym, n: PNode, i: var int, if sym.typ[0] != nil: localError(c.config, sym.ast[paramsPos][0].info, ".noreturn with return type not allowed") + of wNoDestroy: + noVal(c, it) + incl(sym.flags, sfGeneratedOp) of wDynlib: processDynLib(c, it, sym) of wCompilerProc, wCore: diff --git a/compiler/wordrecg.nim b/compiler/wordrecg.nim index ef59fc979..07921f0b3 100644 --- a/compiler/wordrecg.nim +++ b/compiler/wordrecg.nim @@ -57,7 +57,7 @@ type wAssertions, wPatterns, wTrMacros, wWarnings, wHints, wOptimization, wRaises, wWrites, wReads, wSize, wEffects, wTags, wDeadCodeElimUnused, # deprecated, dead code elim always happens - wSafecode, wPackage, wNoForward, wReorder, wNoRewrite, + wSafecode, wPackage, wNoForward, wReorder, wNoRewrite, wNoDestroy, wPragma, wCompileTime, wNoInit, wPassc, wPassl, wBorrow, wDiscardable, @@ -148,7 +148,7 @@ const "assertions", "patterns", "trmacros", "warnings", "hints", "optimization", "raises", "writes", "reads", "size", "effects", "tags", "deadcodeelim", # deprecated, dead code elim always happens - "safecode", "package", "noforward", "reorder", "norewrite", + "safecode", "package", "noforward", "reorder", "norewrite", "nodestroy", "pragma", "compiletime", "noinit", "passc", "passl", "borrow", "discardable", "fieldchecks", |