diff --git a/compiler/noirc_evaluator/src/ssa/opt/array_set.rs b/compiler/noirc_evaluator/src/ssa/opt/array_set.rs index f40f32074bc..e04dacf8da6 100644 --- a/compiler/noirc_evaluator/src/ssa/opt/array_set.rs +++ b/compiler/noirc_evaluator/src/ssa/opt/array_set.rs @@ -193,6 +193,15 @@ impl<'f> Context<'f> { self.arrays_from_load.insert(result, is_reference_param); } } + Instruction::MakeArray { elements, .. } => { + for element in elements { + if let Some(existing) = + self.array_to_last_use.insert(*element, *instruction_id) + { + self.instructions_that_can_be_made_mutable.remove(&existing); + } + } + } _ => (), } } @@ -213,7 +222,10 @@ fn make_mutable(dfg: &mut DataFlowGraph, instructions_to_update: &HashSet