summary refs log tree commit diff stats
path: root/lib/system.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/system.nim')
-rw-r--r--lib/system.nim13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/system.nim b/lib/system.nim
index b9dd7f143..3e7d84b1d 100644
--- a/lib/system.nim
+++ b/lib/system.nim
@@ -1615,11 +1615,12 @@ when notJSnotNims and defined(nimSeqsV2):
 when not defined(js):
   template newSeqImpl(T, len) =
     result = newSeqOfCap[T](len)
-    when defined(nimSeqsV2):
-      cast[ptr int](addr result)[] = len
-    else:
-      var s = cast[PGenericSeq](result)
-      s.len = len
+    {.cast(noSideEffect).}:
+      when defined(nimSeqsV2):
+        cast[ptr int](addr result)[] = len
+      else:
+        var s = cast[PGenericSeq](result)
+        s.len = len
 
   proc newSeqUninitialized*[T: SomeNumber](len: Natural): seq[T] {.deprecated: "Use `newSeqUninit` instead".} =
     ## Creates a new sequence of type `seq[T]` with length `len`.
@@ -1640,7 +1641,7 @@ when not defined(js):
       var s = cast[PGenericSeq](result)
       s.len = len
 
-  proc newSeqUninit*[T](len: Natural): seq[T] =
+  func newSeqUninit*[T](len: Natural): seq[T] =
     ## Creates a new sequence of type `seq[T]` with length `len`.
     ##
     ## Only available for types, which don't contain