Files
hakorune/local_tests/test_weak_reference_basic.hako

50 lines
1.1 KiB
Plaintext
Raw Permalink Normal View History

// Basic weak reference test case
box Parent {
init { child }
pack() {
me.child = new Child()
me.child.setParent(me) // This should create a weak reference
}
getChild() {
return me.child
}
}
box Child {
init { weak parent } // weak modifier on parent field
setParent(p) {
me.parent = p
}
checkParent() {
return me.parent != null
}
getParentInfo() {
if me.parent != null {
return "Parent exists"
} else {
return "Parent is null (dropped)"
}
}
}
static box Main {
main() {
local p = new Parent()
local child = p.getChild()
print("Initial parent check: " + child.getParentInfo())
// When p goes out of scope, child.parent should automatically become null
p = 0 // Setting to 0 instead of null to avoid the undefined variable issue
print("After parent dropped: " + child.getParentInfo())
return "weak reference test completed"
}
}