From a15821cb17a91556863d64ff6dc952c0d5f93aaa Mon Sep 17 00:00:00 2001 From: tomoaki Date: Sun, 21 Dec 2025 10:21:05 +0900 Subject: [PATCH] Revert "fix(pattern2): return Ok(None) for unpromoted LoopBodyLocal instead of Err" This reverts commit e0278405c0c7e85720d09222d4f2b5df538436c5. --- .../patterns/pattern2_steps/promote_step_box.rs | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/mir/builder/control_flow/joinir/patterns/pattern2_steps/promote_step_box.rs b/src/mir/builder/control_flow/joinir/patterns/pattern2_steps/promote_step_box.rs index 3bb05e0e..e3e7e0db 100644 --- a/src/mir/builder/control_flow/joinir/patterns/pattern2_steps/promote_step_box.rs +++ b/src/mir/builder/control_flow/joinir/patterns/pattern2_steps/promote_step_box.rs @@ -119,17 +119,10 @@ impl PromoteStepBox { inputs.read_only_body_local_slot = Some(slot); } PolicyDecision::Reject(reason) => { - // Phase 263 P0: Pattern2 cannot handle reassigned body-local variables. - // Return without error to allow Pattern1 or other patterns to handle this case - // without breaking detection→extract→lower SSOT. - #[cfg(debug_assertions)] - { - eprintln!( - "[pattern2/promote_step] Cannot promote LoopBodyLocal {:?}: {}", - cond_body_local_vars, reason - ); - } - // Skip promotion and continue (no-op, same as PolicyDecision::None) + return Err(error_messages::format_error_pattern2_promotion_failed( + &cond_body_local_vars, + &reason, + )); } PolicyDecision::None => {} }