// Phase 285W-Syntax-0: WeakRef basic test with weak x syntax // SSOT: docs/reference/language/lifecycle.md:179 - weak /weak_to_strong() // // Test: weak x creates WeakRef, weak_to_strong() returns Box when alive // Note: Full drop semantics test deferred (needs GC/scope analysis) // VM: PASS expected // LLVM: SKIP (Phase 285A1) box SomeBox { x } static box Main { main() { local x = new SomeBox() x.x = 42 local w = weak x // Test 1: weak_to_strong should succeed while x is alive local y = w.weak_to_strong() if y == null { print("ng: weak_to_strong returned null while x alive") return 1 } // Test 2: verify weak_to_strong returns same object (identity) if y.x != 42 { print("ng: weak_to_strong returned different object (expected x=42)") return 1 } print("ok: weak and weak_to_strong work correctly") return 2 } }