diff --git a/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs b/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs index 03fb4db73c5..e65e71b045d 100644 --- a/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs +++ b/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs @@ -2431,8 +2431,7 @@ impl Context { } } -// We can omit the element size array for arrays which have elements of size 1 and do not contain slices. -// TODO: remove restriction on size 1 elements. +// We can omit the element size array for arrays which don't contain arrays or slices. fn can_omit_element_sizes_array(array_typ: &Type) -> bool { if array_typ.contains_slice_element() { return false; @@ -2441,5 +2440,5 @@ fn can_omit_element_sizes_array(array_typ: &Type) -> bool { panic!("ICE: expected array type"); }; - types.len() == 1 && types[0].flattened_size() == 1 + !types.iter().any(|typ| typ.contains_an_array()) }