From 98a63ab0498cd7931d0eee88cc1c0e3379b65b12 Mon Sep 17 00:00:00 2001 From: guipublic Date: Mon, 19 Jun 2023 16:21:45 +0000 Subject: [PATCH] Update array type when processing staged memory --- .../noirc_evaluator/src/ssa/acir_gen/acir_mem.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/crates/noirc_evaluator/src/ssa/acir_gen/acir_mem.rs b/crates/noirc_evaluator/src/ssa/acir_gen/acir_mem.rs index ae0a7277ca0..3ab030d1fa9 100644 --- a/crates/noirc_evaluator/src/ssa/acir_gen/acir_mem.rs +++ b/crates/noirc_evaluator/src/ssa/acir_gen/acir_mem.rs @@ -59,13 +59,15 @@ struct ArrayHeap { impl ArrayHeap { fn commit_staged(&mut self) { - for (idx, (value, op)) in &self.staged { - let item = MemOp { - operation: op.clone(), - value: value.clone(), - index: Expression::from_field(FieldElement::from(*idx as i128)), - }; - self.trace.push(item); + // generates the memory operations to be added to the trace + let trace = vecmap(&self.staged, |(idx, (value, op))| MemOp { + operation: op.clone(), + value: value.clone(), + index: Expression::from_field(FieldElement::from(*idx as i128)), + }); + // Add to trace + for item in trace { + self.push(item); } self.staged.clear(); }