44 lines
918 B
Plaintext
44 lines
918 B
Plaintext
// Debug field visibility
|
|
|
|
box TestBox {
|
|
init { x, y }
|
|
|
|
TestBox(x, y) {
|
|
me.x = x
|
|
me.y = y
|
|
}
|
|
|
|
debugFields() {
|
|
print("From inside method:")
|
|
print(" me.x = " + me.x)
|
|
print(" me.y = " + me.y)
|
|
}
|
|
}
|
|
|
|
// Direct creation
|
|
print("=== Direct Creation ===")
|
|
direct = new TestBox(10, 20)
|
|
print("Field access: x=" + direct.x + ", y=" + direct.y)
|
|
direct.debugFields()
|
|
|
|
// Function return
|
|
print("\n=== Function Return ===")
|
|
function createBox() {
|
|
b = new TestBox(30, 40)
|
|
print("Inside function, before return:")
|
|
print(" b.x = " + b.x)
|
|
print(" b.y = " + b.y)
|
|
b.debugFields()
|
|
return b
|
|
}
|
|
|
|
returned = createBox()
|
|
print("\nAfter return:")
|
|
returned.debugFields() // Method should still work
|
|
try {
|
|
print("Direct field access: x=" + returned.x)
|
|
} catch {
|
|
print("ERROR: Direct field access failed!")
|
|
}
|
|
|
|
print("\n✅ Debug test completed!") |