12345678910111213141516171819202122232425262728293031323334353637383940 |
- discard """
- matrix: "--mm:refc; --mm:orc"
- targets: "c cpp js"
- """
- import std/assertions
- # bug #20227
- type
- Data = object
- id: int
- Test = distinct Data
- Object = object
- data: Test
- var x: Object = Object(data: Test(Data(id: 12)))
- doAssert Data(x.data).id == 12
- block: # bug #16771
- type A = object
- n: int
- proc foo(a, b: var A) =
- swap a, b
- var a, b: A
- a.n = 42
- b.n = 1
- doAssert a.n == 42
- doAssert b.n == 1
- a.swap b
- doAssert a.n == 1
- doAssert b.n == 42
- a.foo b
- doAssert a.n == 42
- doAssert b.n == 1
|