diff --git a/crates/ra_assists/src/ast_editor.rs b/crates/ra_assists/src/ast_editor.rs index a710edce8e2..cf32ea52dc8 100644 --- a/crates/ra_assists/src/ast_editor.rs +++ b/crates/ra_assists/src/ast_editor.rs @@ -44,9 +44,9 @@ impl<N: AstNode> AstEditor<N> { fn insert_children( &self, position: InsertPosition<SyntaxElement>, - to_insert: impl Iterator<Item = SyntaxElement>, + mut to_insert: impl Iterator<Item = SyntaxElement>, ) -> N { - let new_syntax = insert_children(self.ast().syntax(), position, to_insert); + let new_syntax = insert_children(self.ast().syntax(), position, &mut to_insert); N::cast(new_syntax).unwrap() } @@ -54,9 +54,9 @@ impl<N: AstNode> AstEditor<N> { fn replace_children( &self, to_delete: RangeInclusive<SyntaxElement>, - to_insert: impl Iterator<Item = SyntaxElement>, + mut to_insert: impl Iterator<Item = SyntaxElement>, ) -> N { - let new_syntax = replace_children(self.ast().syntax(), to_delete, to_insert); + let new_syntax = replace_children(self.ast().syntax(), to_delete, &mut to_insert); N::cast(new_syntax).unwrap() } diff --git a/crates/ra_syntax/src/algo.rs b/crates/ra_syntax/src/algo.rs index 45f624810dd..7ee5aa85b1b 100644 --- a/crates/ra_syntax/src/algo.rs +++ b/crates/ra_syntax/src/algo.rs @@ -70,7 +70,7 @@ pub enum InsertPosition<T> { pub fn insert_children( parent: &SyntaxNode, position: InsertPosition<SyntaxElement>, - to_insert: impl Iterator<Item = SyntaxElement>, + to_insert: &mut dyn Iterator<Item = SyntaxElement>, ) -> SyntaxNode { let mut delta = TextUnit::default(); let to_insert = to_insert.map(|element| { @@ -108,7 +108,7 @@ pub fn insert_children( pub fn replace_children( parent: &SyntaxNode, to_delete: RangeInclusive<SyntaxElement>, - to_insert: impl Iterator<Item = SyntaxElement>, + to_insert: &mut dyn Iterator<Item = SyntaxElement>, ) -> SyntaxNode { let start = position_of_child(parent, to_delete.start().clone()); let end = position_of_child(parent, to_delete.end().clone());