1234567891011121314151617181920212223242526272829303132333435363738 |
- discard """
- output: ""
- target: "C"
- """
- # bug #9594
- type
- Foo = object
- i: int
- proc `=`(self: var Foo; other: Foo) =
- self.i = other.i + 1
- proc `=sink`(self: var Foo; other: Foo) =
- self.i = other.i
- proc `=destroy`(self: var Foo) = discard
- template preventCursorInference(x) =
- let p = unsafeAddr(x)
- proc test(): Foo =
- result = Foo()
- let temp = result
- preventCursorInference temp
- doAssert temp.i > 0
- return result
- proc testB(): Foo =
- result = Foo()
- let temp = result
- preventCursorInference temp
- doAssert temp.i > 0
- discard test()
- discard testB()
|