summary refs log tree commit diff stats
path: root/lib/system/assign.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/system/assign.nim')
-rwxr-xr-xlib/system/assign.nim16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/system/assign.nim b/lib/system/assign.nim
index 895a7f9fd..cd4a34f6c 100755
--- a/lib/system/assign.nim
+++ b/lib/system/assign.nim
@@ -144,11 +144,17 @@ proc objectInit(dest: Pointer, typ: PNimType) =
   
 # ---------------------- assign zero -----------------------------------------
 
-# dummy declaration; XXX we need 'mixin' here
-proc destroy(x: int) = nil
-proc nimDestroyRange*[T](r: T) =
-  # internal proc used for destroying sequences and arrays
-  for i in countup(0, r.len - 1): destroy(r[i])
+when not defined(nimmixin):
+  proc destroy(x: int) = nil
+  proc nimDestroyRange*[T](r: T) =
+    # internal proc used for destroying sequences and arrays
+    for i in countup(0, r.len - 1): destroy(r[i])
+else:
+  # XXX Why is this exported and no compilerproc?
+  proc nimDestroyRange*[T](r: T) =
+    # internal proc used for destroying sequences and arrays
+    mixin destroy
+    for i in countup(0, r.len - 1): destroy(r[i])
 
 proc genericReset(dest: Pointer, mt: PNimType) {.compilerProc.}
 proc genericResetAux(dest: Pointer, n: ptr TNimNode) =