mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-07 04:14:19 +00:00
@@ -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) =
|
||||
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)
|
||||
|
||||
proc fillBodyObjT(c: var TLiftCtx; t: PType, body, x, y: PNode) =
|
||||
|
||||
@@ -2,7 +2,9 @@ discard """
|
||||
output: '''
|
||||
destroyed: false
|
||||
destroyed: false
|
||||
destroying variable'''
|
||||
closed
|
||||
destroying variable
|
||||
'''
|
||||
cmd: "nim c --gc:arc $file"
|
||||
"""
|
||||
|
||||
@@ -27,3 +29,22 @@ proc test(count: int) =
|
||||
echo "destroyed: ", v.isNil
|
||||
|
||||
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"))
|
||||
|
||||
Reference in New Issue
Block a user