phase29ao(p23): strict/dev adopt pattern3 from facts
This commit is contained in:
@ -357,6 +357,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::Pattern3IfPhi(_)
|
||||
)
|
||||
{
|
||||
let facts = outcome
|
||||
.facts
|
||||
.as_ref()
|
||||
.ok_or_else(|| "pattern3 strict/dev adopt failed: facts missing".to_string())?;
|
||||
if facts.facts.pattern3_ifphi.is_none() {
|
||||
return Err("pattern3 strict/dev adopt failed: facts mismatch".to_string());
|
||||
}
|
||||
let core_plan =
|
||||
PlanNormalizer::normalize_pattern3_if_phi_from_facts(builder, facts, ctx)?
|
||||
.ok_or_else(|| {
|
||||
"pattern3 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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user