Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/imports/merge_imports.rs')
| -rw-r--r-- | crates/ide-db/src/imports/merge_imports.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/crates/ide-db/src/imports/merge_imports.rs b/crates/ide-db/src/imports/merge_imports.rs index 635ed7368c..bc2c2d0c0c 100644 --- a/crates/ide-db/src/imports/merge_imports.rs +++ b/crates/ide-db/src/imports/merge_imports.rs @@ -692,13 +692,12 @@ pub fn eq_attrs( attrs1: impl Iterator<Item = ast::Attr>, ) -> bool { // FIXME order of attributes should not matter - let attrs0 = attrs0 - .flat_map(|attr| attr.syntax().descendants_with_tokens()) - .flat_map(|it| it.into_token()); - let attrs1 = attrs1 - .flat_map(|attr| attr.syntax().descendants_with_tokens()) - .flat_map(|it| it.into_token()); - stdx::iter_eq_by(attrs0, attrs1, |tok, tok2| tok.text() == tok2.text()) + let mut attrs0: Vec<_> = attrs0.map(|attr| attr.syntax().text().to_string()).collect(); + let mut attrs1: Vec<_> = attrs1.map(|attr| attr.syntax().text().to_string()).collect(); + attrs0.sort(); + attrs1.sort(); + + attrs0 == attrs1 } fn path_is_self(path: &ast::Path) -> bool { |