59 lines
1.6 KiB
Plaintext
59 lines
1.6 KiB
Plaintext
|
|
# Phase 8.9: Test explicit birth() syntax
|
||
|
|
# This file tests that explicit birth() calls work correctly
|
||
|
|
|
||
|
|
print("=== Testing explicit birth() syntax ===")
|
||
|
|
|
||
|
|
# Test 1: Basic explicit birth() call
|
||
|
|
box SimpleBox {
|
||
|
|
init { content }
|
||
|
|
|
||
|
|
birth(data) {
|
||
|
|
me.content = data
|
||
|
|
print("SimpleBox birth: " + data)
|
||
|
|
}
|
||
|
|
|
||
|
|
getContent() {
|
||
|
|
return me.content
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
local simple = new SimpleBox("test_data")
|
||
|
|
print("Content: " + simple.getContent())
|
||
|
|
|
||
|
|
# Test 2: Explicit birth() with inheritance
|
||
|
|
box EnhancedString from StringBox {
|
||
|
|
init { prefix }
|
||
|
|
|
||
|
|
birth(content, prefixStr) {
|
||
|
|
from StringBox.birth(content) # ✅ Explicit syntax
|
||
|
|
me.prefix = prefixStr
|
||
|
|
print("EnhancedString birth: " + prefixStr + " -> " + content)
|
||
|
|
}
|
||
|
|
|
||
|
|
override toString() {
|
||
|
|
return me.prefix + ": " + from StringBox.toString()
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
local enhanced = new EnhancedString("Hello World", "MESSAGE")
|
||
|
|
print("Enhanced string: " + enhanced.toString())
|
||
|
|
|
||
|
|
# Test 3: Multiple inheritance levels
|
||
|
|
box SuperEnhancedString from EnhancedString {
|
||
|
|
init { suffix }
|
||
|
|
|
||
|
|
birth(content, prefixStr, suffixStr) {
|
||
|
|
from EnhancedString.birth(content, prefixStr) # ✅ Explicit parent birth
|
||
|
|
me.suffix = suffixStr
|
||
|
|
print("SuperEnhancedString birth: " + suffixStr)
|
||
|
|
}
|
||
|
|
|
||
|
|
override toString() {
|
||
|
|
return from EnhancedString.toString() + " [" + me.suffix + "]"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
local superEnh = new SuperEnhancedString("Amazing", "SUPER", "END")
|
||
|
|
print("Super enhanced: " + superEnh.toString())
|
||
|
|
|
||
|
|
print("=== All explicit birth() tests passed ===")
|