Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/replace_derive_with_manual_impl.rs')
-rw-r--r--crates/ide-assists/src/handlers/replace_derive_with_manual_impl.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/crates/ide-assists/src/handlers/replace_derive_with_manual_impl.rs b/crates/ide-assists/src/handlers/replace_derive_with_manual_impl.rs
index 04c9d8e54d..5e595218f6 100644
--- a/crates/ide-assists/src/handlers/replace_derive_with_manual_impl.rs
+++ b/crates/ide-assists/src/handlers/replace_derive_with_manual_impl.rs
@@ -64,9 +64,10 @@ pub(crate) fn replace_derive_with_manual_impl(
.filter_map(|attr| attr.path())
.collect::<Vec<_>>();
- let adt = value.parent().and_then(ast::Adt::cast)?;
- let attr = ast::Attr::cast(value)?;
- let args = attr.token_tree()?;
+ let attr = ast::Meta::cast(value)?.parent_attr()?;
+ let adt = attr.syntax().parent().and_then(ast::Adt::cast)?;
+ let ast::Meta::TokenTreeMeta(meta) = attr.meta()? else { return None };
+ let args = meta.token_tree()?;
let current_module = ctx.sema.scope(adt.syntax())?.module();
let current_crate = current_module.krate(ctx.db());