Refactor JoinIR lowerers and boundary
This commit is contained in:
@ -95,7 +95,7 @@ impl<'a> ExitBindingBuilder<'a> {
|
||||
///
|
||||
/// Phase 222.5-C: Delegates to applicator module.
|
||||
///
|
||||
/// Sets exit_bindings (and join_outputs for legacy) based on loop_var + carriers.
|
||||
/// Sets exit_bindings based on loop_var + carriers.
|
||||
/// Must be called after build_loop_exit_bindings().
|
||||
///
|
||||
/// # Arguments
|
||||
@ -374,11 +374,6 @@ mod tests {
|
||||
host_inputs: vec![],
|
||||
join_inputs: vec![],
|
||||
exit_bindings: vec![], // Phase 171: Add missing field
|
||||
#[allow(deprecated)]
|
||||
host_outputs: vec![], // legacy, unused in new assertions
|
||||
join_outputs: vec![],
|
||||
#[allow(deprecated)]
|
||||
condition_inputs: vec![], // Phase 171: Add missing field
|
||||
condition_bindings: vec![], // Phase 171-fix: Add missing field
|
||||
expr_result: None, // Phase 33-14: Add missing field
|
||||
jump_args_layout: crate::mir::join_ir::lowering::inline_boundary::JumpArgsLayout::CarriersOnly,
|
||||
|
||||
@ -10,7 +10,7 @@ use std::collections::BTreeMap; // Phase 222.5-D: HashMap → BTreeMap for deter
|
||||
|
||||
/// Apply bindings to JoinInlineBoundary
|
||||
///
|
||||
/// Sets exit_bindings (and join_outputs for legacy) based on loop_var + carriers.
|
||||
/// Sets exit_bindings based on loop_var + carriers.
|
||||
/// Must be called after build_loop_exit_bindings().
|
||||
///
|
||||
/// Phase 222.5-C: Extracted from ExitBindingBuilder to separate application concerns.
|
||||
@ -35,8 +35,6 @@ pub(crate) fn apply_exit_bindings_to_boundary(
|
||||
let mut bindings = Vec::new();
|
||||
bindings.push(create_loop_var_exit_binding(carrier_info));
|
||||
|
||||
let mut join_outputs = vec![carrier_info.loop_var_id]; // legacy field for compatibility
|
||||
|
||||
for carrier in &carrier_info.carriers {
|
||||
let post_loop_id = variable_map
|
||||
.get(&carrier.name)
|
||||
@ -53,18 +51,9 @@ pub(crate) fn apply_exit_bindings_to_boundary(
|
||||
join_exit_value: join_exit_id,
|
||||
role: carrier.role, // Phase 227: Propagate role from CarrierInfo
|
||||
});
|
||||
|
||||
join_outputs.push(join_exit_id);
|
||||
}
|
||||
|
||||
boundary.exit_bindings = bindings;
|
||||
// Deprecated fields kept in sync for legacy consumers
|
||||
let join_outputs_clone = join_outputs.clone();
|
||||
boundary.join_outputs = join_outputs;
|
||||
#[allow(deprecated)]
|
||||
{
|
||||
boundary.host_outputs = join_outputs_clone;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -128,11 +117,6 @@ mod tests {
|
||||
host_inputs: vec![],
|
||||
join_inputs: vec![],
|
||||
exit_bindings: vec![], // Phase 171: Add missing field
|
||||
#[allow(deprecated)]
|
||||
host_outputs: vec![], // legacy, unused in new assertions
|
||||
join_outputs: vec![],
|
||||
#[allow(deprecated)]
|
||||
condition_inputs: vec![], // Phase 171: Add missing field
|
||||
condition_bindings: vec![], // Phase 171-fix: Add missing field
|
||||
expr_result: None, // Phase 33-14: Add missing field
|
||||
jump_args_layout: crate::mir::join_ir::lowering::inline_boundary::JumpArgsLayout::CarriersOnly,
|
||||
|
||||
Reference in New Issue
Block a user