phase29ao(p25): strict/dev adopt pattern5 from facts

This commit is contained in:
2025-12-30 10:58:08 +09:00
parent 7556ffd8ec
commit 45369ba763
10 changed files with 103 additions and 12 deletions

View File

@ -398,6 +398,28 @@ pub(crate) fn route_loop_pattern(
return PlanLowerer::lower(builder, core_plan, ctx);
}
if strict_or_dev
&& matches!(
domain_plan,
crate::mir::builder::control_flow::plan::DomainPlan::Pattern5InfiniteEarlyExit(_)
)
{
let facts = outcome
.facts
.as_ref()
.ok_or_else(|| "pattern5 strict/dev adopt failed: facts missing".to_string())?;
if facts.facts.pattern5_infinite_early_exit.is_none() {
return Err("pattern5 strict/dev adopt failed: facts mismatch".to_string());
}
let core_plan =
PlanNormalizer::normalize_pattern5_infinite_early_exit_from_facts(builder, facts, ctx)?
.ok_or_else(|| {
"pattern5 strict/dev adopt failed: compose rejected".to_string()
})?;
PlanVerifier::verify(&core_plan)?;
return PlanLowerer::lower(builder, core_plan, ctx);
}
return lower_via_plan(builder, domain_plan, ctx);
}