Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/reorder_impl_items.rs')
| -rw-r--r-- | crates/ide-assists/src/handlers/reorder_impl_items.rs | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/crates/ide-assists/src/handlers/reorder_impl_items.rs b/crates/ide-assists/src/handlers/reorder_impl_items.rs index 87bee6c121..2bda3a1817 100644 --- a/crates/ide-assists/src/handlers/reorder_impl_items.rs +++ b/crates/ide-assists/src/handlers/reorder_impl_items.rs @@ -47,13 +47,6 @@ pub(crate) fn reorder_impl_items(acc: &mut Assists, ctx: &AssistContext) -> Opti let items = impl_ast.assoc_item_list()?; let assoc_items = items.assoc_items().collect::<Vec<_>>(); - // If all items are either function or macro calls, then reorder_impl assist can be used - if assoc_items.iter().all(|i| matches!(i, ast::AssocItem::Fn(_) | ast::AssocItem::MacroCall(_))) - { - cov_mark::hit!(not_applicable_if_all_functions); - return None; - } - let path = impl_ast .trait_() .and_then(|t| match t { @@ -152,23 +145,41 @@ $0impl Bar for Foo { } #[test] - fn not_applicable_if_all_functions() { - cov_mark::check!(not_applicable_if_all_functions); - check_assist_not_applicable( + fn reorder_impl_trait_functions() { + check_assist( reorder_impl_items, r#" trait Bar { fn a() {} - fn z() {} + fn c() {} fn b() {} + fn d() {} } + struct Foo; $0impl Bar for Foo { + fn d() {} + fn b() {} + fn c() {} fn a() {} - fn z() {} +} +"#, + r#" +trait Bar { + fn a() {} + fn c() {} fn b() {} + fn d() {} } - "#, + +struct Foo; +impl Bar for Foo { + fn a() {} + fn c() {} + fn b() {} + fn d() {} +} +"#, ) } |