mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 14:00:35 +00:00
* don't zero out in a move in the VM * Add testcases for #17199 * Update tests/arc/tarcmisc.nim Co-authored-by: Timothee Cour <timothee.cour2@gmail.com> * Update tests/vm/tissues.nim Co-authored-by: Timothee Cour <timothee.cour2@gmail.com> * Fix test failures * Fix test * Fix tests Co-authored-by: Andreas Rumpf <rumpf_a@web.de> Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
This commit is contained in:
@@ -7,7 +7,7 @@ import std/[isolation, json]
|
||||
|
||||
|
||||
|
||||
proc main() =
|
||||
proc main(moveZeroesOut: static bool) =
|
||||
block:
|
||||
type
|
||||
Empty = ref object
|
||||
@@ -19,64 +19,76 @@ proc main() =
|
||||
block: # string literals
|
||||
var data = isolate("string")
|
||||
doAssert data.extract == "string"
|
||||
doAssert data.extract == ""
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == ""
|
||||
|
||||
block: # string literals
|
||||
var data = isolate("")
|
||||
doAssert data.extract == ""
|
||||
doAssert data.extract == ""
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == ""
|
||||
|
||||
block:
|
||||
var src = "string"
|
||||
var data = isolate(move src)
|
||||
doAssert data.extract == "string"
|
||||
doAssert src.len == 0
|
||||
if moveZeroesOut:
|
||||
doAssert src.len == 0
|
||||
|
||||
block: # int literals
|
||||
var data = isolate(1)
|
||||
doAssert data.extract == 1
|
||||
doAssert data.extract == 0
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == 0
|
||||
|
||||
block: # float literals
|
||||
var data = isolate(1.6)
|
||||
doAssert data.extract == 1.6
|
||||
doAssert data.extract == 0.0
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == 0.0
|
||||
|
||||
block:
|
||||
var data = isolate(@["1", "2"])
|
||||
doAssert data.extract == @["1", "2"]
|
||||
doAssert data.extract == @[]
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == @[]
|
||||
|
||||
block:
|
||||
var data = isolate(@["1", "2", "3", "4", "5"])
|
||||
doAssert data.extract == @["1", "2", "3", "4", "5"]
|
||||
doAssert data.extract == @[]
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == @[]
|
||||
|
||||
block:
|
||||
var data = isolate(@["", ""])
|
||||
doAssert data.extract == @["", ""]
|
||||
doAssert data.extract == @[]
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == @[]
|
||||
|
||||
block:
|
||||
var src = @["1", "2"]
|
||||
var data = isolate(move src)
|
||||
doAssert data.extract == @["1", "2"]
|
||||
doAssert src.len == 0
|
||||
if moveZeroesOut:
|
||||
doAssert src.len == 0
|
||||
|
||||
block:
|
||||
var data = isolate(@[1, 2])
|
||||
doAssert data.extract == @[1, 2]
|
||||
doAssert data.extract == @[]
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == @[]
|
||||
|
||||
block:
|
||||
var data = isolate(["1", "2"])
|
||||
doAssert data.extract == ["1", "2"]
|
||||
doAssert data.extract == ["", ""]
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == ["", ""]
|
||||
|
||||
block:
|
||||
var data = isolate([1, 2])
|
||||
doAssert data.extract == [1, 2]
|
||||
doAssert data.extract == [0, 0]
|
||||
if moveZeroesOut:
|
||||
doAssert data.extract == [0, 0]
|
||||
|
||||
block:
|
||||
type
|
||||
@@ -119,5 +131,5 @@ proc main() =
|
||||
doAssert $x == """@[(value: "1234")]"""
|
||||
|
||||
|
||||
static: main()
|
||||
main()
|
||||
static: main(moveZeroesOut = false)
|
||||
main(moveZeroesOut = true)
|
||||
|
||||
Reference in New Issue
Block a user