diff options
Diffstat (limited to 'tests/js/tcopying.nim')
-rw-r--r-- | tests/js/tcopying.nim | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/tests/js/tcopying.nim b/tests/js/tcopying.nim index 387df9cd3..306d25090 100644 --- a/tests/js/tcopying.nim +++ b/tests/js/tcopying.nim @@ -2,6 +2,11 @@ discard """ output: '''123 2 9 2 9 +1 124 +true false +100 300 100 +1 +1 ''' """ @@ -10,7 +15,7 @@ type MyArray = array[1, int] proc changeArray(a: var MyArray) = a = [123] -var a : MyArray +var a: MyArray changeArray(a) echo a[0] @@ -30,8 +35,46 @@ block: ary2: array[3, int] let ary1 = [1, 2, 3] - var obj = TestObj(ary2:ary1) + var obj = TestObj(ary2: ary1) obj.ary2[1] = 9 echo ary1[1], " ", obj.ary2[1] + +block: + type TestObj = object + x, y: int + + let obj = TestObj(x: 1, y: 2) + var s = @[obj] + s[0].x += 123 + echo obj.x, " ", s[0].x + +block: + var nums = {1, 2, 3, 4} + let obj = (n: nums) + nums.incl 5 + echo (5 in nums), " ", (5 in obj.n) + +block: + let tup1 = (a: 100) + var tup2 = (t: (t2: tup1)) + var tup3 = tup1 + tup2.t.t2.a = 300 + echo tup1.a, " ", tup2.t.t2.a, " ", tup3.a + +block: + proc foo(arr: array[2, int]) = + var s = @arr + s[0] = 500 + + var nums = [1, 2] + foo(nums) + echo nums[0] + +proc bug9674 = + var b = @[1,2,3] + var a = move(b) + echo a[0] + +bug9674() |