summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2017-11-28 14:40:27 +0100
committerAraq <rumpf_a@web.de>2017-11-28 17:34:30 +0100
commita22dba4a8bcfc04ef444ae9fd6b762ec093ac9e4 (patch)
treeed6ecf0e8dcbe63ffe96bb95972c8456282987d6
parent8fbe37b2d813f00ca934cee2fe17bc2e24f82f88 (diff)
downloadNim-a22dba4a8bcfc04ef444ae9fd6b762ec093ac9e4.tar.gz
newruntime: removed old way of writing destructors
-rw-r--r--compiler/pragmas.nim6
-rw-r--r--compiler/semdestruct.nim15
2 files changed, 8 insertions, 13 deletions
diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim
index f1d81f798..b598cadb2 100644
--- a/compiler/pragmas.nim
+++ b/compiler/pragmas.nim
@@ -23,7 +23,7 @@ const
     wMagic, wNosideeffect, wSideeffect, wNoreturn, wDynlib, wHeader,
     wCompilerproc, wProcVar, wDeprecated, wVarargs, wCompileTime, wMerge,
     wBorrow, wExtern, wImportCompilerProc, wThread, wImportCpp, wImportObjC,
-    wAsmNoStackFrame, wError, wDiscardable, wNoInit, wDestructor, wCodegenDecl,
+    wAsmNoStackFrame, wError, wDiscardable, wNoInit, wCodegenDecl,
     wGensym, wInject, wRaises, wTags, wLocks, wDelegator, wGcSafe,
     wOverride, wConstructor, wExportNims, wUsed, wLiftLocals}
   converterPragmas* = procPragmas
@@ -759,10 +759,6 @@ proc singlePragma(c: PContext, sym: PSym, n: PNode, i: int,
         incl(sym.loc.flags, lfNoDecl)
         # implies nodecl, because otherwise header would not make sense
         if sym.loc.r == nil: sym.loc.r = rope(sym.name.s)
-      of wDestructor:
-        sym.flags.incl sfOverriden
-        if sym.name.s.normalize != "destroy":
-          localError(n.info, errGenerated, "destructor has to be named 'destroy'")
       of wOverride:
         sym.flags.incl sfOverriden
       of wNosideeffect:
diff --git a/compiler/semdestruct.nim b/compiler/semdestruct.nim
index 4b61c6316..b16bf004f 100644
--- a/compiler/semdestruct.nim
+++ b/compiler/semdestruct.nim
@@ -23,7 +23,6 @@ new(destructorIsTrivial)
 var
   destructorName = getIdent"destroy_"
   destructorParam = getIdent"this_"
-  destructorPragma = newIdentNode(getIdent"destructor", unknownLineInfo())
 
 proc instantiateDestructor(c: PContext, typ: PType): PType
 
@@ -150,19 +149,19 @@ proc instantiateDestructor(c: PContext, typ: PType): PType =
     let generated = generateDestructor(c, t)
     if generated != nil:
       internalAssert t.sym != nil
-      var i = t.sym.info
-      let fullDef = newNode(nkProcDef, i, @[
-        newIdentNode(destructorName, i),
+      let info = t.sym.info
+      let fullDef = newNode(nkProcDef, info, @[
+        newIdentNode(destructorName, info),
         emptyNode,
         emptyNode,
-        newNode(nkFormalParams, i, @[
+        newNode(nkFormalParams, info, @[
           emptyNode,
-          newNode(nkIdentDefs, i, @[
-            newIdentNode(destructorParam, i),
+          newNode(nkIdentDefs, info, @[
+            newIdentNode(destructorParam, info),
             symNodeFromType(c, makeVarType(c, t), t.sym.info),
             emptyNode]),
           ]),
-        newNode(nkPragma, i, @[destructorPragma]),
+        emptyNode,
         emptyNode,
         generated
         ])