From 9d71a3b1a4f88325401dcaa0f7851b0a4666963a Mon Sep 17 00:00:00 2001 From: tomoaki Date: Sun, 21 Dec 2025 09:54:39 +0900 Subject: [PATCH] test(phase263): add minimal repro for Pattern2 LoopBodyLocal seg issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - apps/tests/phase263_p0_pattern2_seg_min.hako: loop body で seg 代入 - tools/.../phase263_p0_pattern2_seg_vm.sh: VM smoke test - 現状: Pattern2 rejection で FAIL(固定) - 期待: 修正後に Pattern1 fallback で PASS --- apps/tests/phase263_p0_pattern2_seg_min.hako | 35 +++++++++++++++++++ .../apps/phase263_p0_pattern2_seg_vm.sh | 9 +++++ 2 files changed, 44 insertions(+) create mode 100644 apps/tests/phase263_p0_pattern2_seg_min.hako create mode 100644 tools/smokes/v2/profiles/integration/apps/phase263_p0_pattern2_seg_vm.sh diff --git a/apps/tests/phase263_p0_pattern2_seg_min.hako b/apps/tests/phase263_p0_pattern2_seg_min.hako new file mode 100644 index 00000000..6a95b0bb --- /dev/null +++ b/apps/tests/phase263_p0_pattern2_seg_min.hako @@ -0,0 +1,35 @@ +// Phase 263 P0: Pattern2 LoopBodyLocal "seg" 問題の最小再現テスト +// +// 目的: +// - loop body で代入される seg 変数を Pattern2 が promote しようとして失敗する +// - 現状: Pattern2 rejection で FAIL +// - 期待: 修正後に Pattern1 fallback で PASS + +static box Main { + main() { + local result = parse_segments() + return 0 + } +} + +// Pattern2 が検出するループ構造 +method parse_segments() { + local i = 0 + local seg = "" + + loop(i < 5) { + seg = get_segment(i) // ← loop body で代入(ReadOnlySlot 契約違反) + + if seg == "end" { + break + } + + i = i + 1 + } + + return i +} + +method get_segment(idx) { + return "seg" +} diff --git a/tools/smokes/v2/profiles/integration/apps/phase263_p0_pattern2_seg_vm.sh b/tools/smokes/v2/profiles/integration/apps/phase263_p0_pattern2_seg_vm.sh new file mode 100644 index 00000000..b2fd05a5 --- /dev/null +++ b/tools/smokes/v2/profiles/integration/apps/phase263_p0_pattern2_seg_vm.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "$SCRIPT_DIR/../../common.sh" + +APP_PATH="apps/tests/phase263_p0_pattern2_seg_min.hako" + +run_vm_test "$APP_PATH" "phase263_p0_pattern2_seg_min"