diff --git a/ast/src/functions/function.rs b/ast/src/functions/function.rs index c55daf03d3..efc3a6405e 100644 --- a/ast/src/functions/function.rs +++ b/ast/src/functions/function.rs @@ -77,13 +77,10 @@ impl Function { } /// - /// Returns a vector of [&FunctionInput] removing `self` and `mut self` inputs. + /// Returns an iterator of [&FunctionInput] removing `self` and `mut self` inputs. /// - pub fn filter_self_inputs(&self) -> Vec<&FunctionInput> { - self.input - .iter() - .filter(|input| !input.is_self()) - .collect::>() + pub fn filter_self_inputs(&self) -> impl Iterator { + self.input.iter().filter(|input| !input.is_self()) } fn format(&self, f: &mut fmt::Formatter) -> fmt::Result { diff --git a/compiler/src/function/function.rs b/compiler/src/function/function.rs index d1f1d96f1d..4d58fc4a05 100644 --- a/compiler/src/function/function.rs +++ b/compiler/src/function/function.rs @@ -46,7 +46,7 @@ impl> ConstrainedProgram { let mut_self = function.contains_mut_self(); // Store input values as new variables in resolved program - for (input_model, input_expression) in function.filter_self_inputs().iter().zip(input.into_iter()) { + for (input_model, input_expression) in function.filter_self_inputs().zip(input.into_iter()) { let (name, value) = match input_model { FunctionInput::InputKeyword(keyword) => { let value =