parent
9134bb9cfb
commit
c70b3952ff
2 changed files with 23 additions and 2 deletions
|
|
@ -128,7 +128,7 @@ proc fillBodyObj(c: var TLiftCtx; n, body, x, y: PNode; enforceDefaultOp: bool)
|
||||||
|
|
||||||
proc fillBodyObjTImpl(c: var TLiftCtx; t: PType, body, x, y: PNode) =
|
proc fillBodyObjTImpl(c: var TLiftCtx; t: PType, body, x, y: PNode) =
|
||||||
if t.len > 0 and t[0] != nil:
|
if t.len > 0 and t[0] != nil:
|
||||||
fillBodyObjTImpl(c, skipTypes(t[0], abstractPtrs), body, x, y)
|
fillBody(c, skipTypes(t[0], abstractPtrs), body, x, y)
|
||||||
fillBodyObj(c, t.n, body, x, y, enforceDefaultOp = false)
|
fillBodyObj(c, t.n, body, x, y, enforceDefaultOp = false)
|
||||||
|
|
||||||
proc fillBodyObjT(c: var TLiftCtx; t: PType, body, x, y: PNode) =
|
proc fillBodyObjT(c: var TLiftCtx; t: PType, body, x, y: PNode) =
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,9 @@ discard """
|
||||||
output: '''
|
output: '''
|
||||||
destroyed: false
|
destroyed: false
|
||||||
destroyed: false
|
destroyed: false
|
||||||
destroying variable'''
|
closed
|
||||||
|
destroying variable
|
||||||
|
'''
|
||||||
cmd: "nim c --gc:arc $file"
|
cmd: "nim c --gc:arc $file"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -27,3 +29,22 @@ proc test(count: int) =
|
||||||
echo "destroyed: ", v.isNil
|
echo "destroyed: ", v.isNil
|
||||||
|
|
||||||
test(3)
|
test(3)
|
||||||
|
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# issue #13810
|
||||||
|
|
||||||
|
import streams
|
||||||
|
|
||||||
|
type
|
||||||
|
A = ref AObj
|
||||||
|
AObj = object of RootObj
|
||||||
|
io: Stream
|
||||||
|
B = ref object of A
|
||||||
|
x: int
|
||||||
|
|
||||||
|
proc `=destroy`(x: var AObj) =
|
||||||
|
close(x.io)
|
||||||
|
echo "closed"
|
||||||
|
|
||||||
|
var x = B(io: newStringStream("thestream"))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue