Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/add_missing_impl_members.rs')
-rw-r--r--crates/ide-assists/src/handlers/add_missing_impl_members.rs29
1 files changed, 25 insertions, 4 deletions
diff --git a/crates/ide-assists/src/handlers/add_missing_impl_members.rs b/crates/ide-assists/src/handlers/add_missing_impl_members.rs
index d1f1f9f123..efbe3817e1 100644
--- a/crates/ide-assists/src/handlers/add_missing_impl_members.rs
+++ b/crates/ide-assists/src/handlers/add_missing_impl_members.rs
@@ -45,7 +45,10 @@ use crate::{
// }
// }
// ```
-pub(crate) fn add_missing_impl_members(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<()> {
+pub(crate) fn add_missing_impl_members(
+ acc: &mut Assists,
+ ctx: &AssistContext<'_, '_>,
+) -> Option<()> {
add_missing_impl_members_inner(
acc,
ctx,
@@ -89,7 +92,7 @@ pub(crate) fn add_missing_impl_members(acc: &mut Assists, ctx: &AssistContext<'_
// ```
pub(crate) fn add_missing_default_members(
acc: &mut Assists,
- ctx: &AssistContext<'_>,
+ ctx: &AssistContext<'_, '_>,
) -> Option<()> {
add_missing_impl_members_inner(
acc,
@@ -103,7 +106,7 @@ pub(crate) fn add_missing_default_members(
fn add_missing_impl_members_inner(
acc: &mut Assists,
- ctx: &AssistContext<'_>,
+ ctx: &AssistContext<'_, '_>,
mode: DefaultMethods,
ignore_items: IgnoreAssocItems,
assist_id: &'static str,
@@ -224,7 +227,7 @@ fn add_missing_impl_members_inner(
fn try_gen_trait_body(
make: &SyntaxFactory,
- ctx: &AssistContext<'_>,
+ ctx: &AssistContext<'_, '_>,
func: &ast::Fn,
trait_ref: hir::TraitRef<'_>,
impl_def: &ast::Impl,
@@ -2620,4 +2623,22 @@ impl Allocator for System {
"#,
);
}
+
+ #[test]
+ fn does_not_include_defaulted_assoc_types() {
+ check_assist_not_applicable(
+ add_missing_impl_members,
+ r#"
+trait Trait {
+ type NotRequired = ();
+}
+
+struct Struct;
+
+impl Trait for Struct {
+ $0
+}
+ "#,
+ );
+ }
}