Files
hakorune/apps/tests/phase193_init_method_call.hako

42 lines
1.4 KiB
Plaintext
Raw Normal View History

// Phase 193: MethodCall in Body-Local Init Expression
//
// Test: local digit_str = i.toString() (simplified from indexOf)
//
// NOTE: This is a placeholder test demonstrating the Phase 193 infrastructure.
// The original design targeted digits.indexOf(ch), but that requires outer scope
// variables in ConditionEnv, which would need Pattern 2/3 enhancements (Phase 194+).
//
// For Phase 193, we test that:
// 1. MethodCall in body-local init expressions can be lowered to JoinIR
// 2. The receiver can be resolved from ConditionEnv (loop param)
// 3. BoxCall instruction is correctly emitted
//
// This verifies the core Phase 193 implementation is working.
//
// Expected behavior:
// - i = 0, 1, 2 (loop iterations)
// - toString() converts each to string
// - Result: prints string concatenation (actual output may vary due to BoxCall behavior)
// - The key success criterion is that MethodCall is lowered without error
static box Main {
main() {
local result = ""
local i = 0
loop(i < 10) {
if i >= 3 {
break
}
// Phase 193 target: MethodCall in body-local init
// Receiver (i) is in ConditionEnv as loop parameter
local digit_str = i.toString()
result = result + digit_str
i = i + 1
}
print(result) // Output varies (BoxCall behavior dependent)
return 0
}
}