Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/generate_single_field_struct_from.rs')
-rw-r--r--crates/ide-assists/src/handlers/generate_single_field_struct_from.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/crates/ide-assists/src/handlers/generate_single_field_struct_from.rs b/crates/ide-assists/src/handlers/generate_single_field_struct_from.rs
index 4e95ceb2e8..6076d5cb5c 100644
--- a/crates/ide-assists/src/handlers/generate_single_field_struct_from.rs
+++ b/crates/ide-assists/src/handlers/generate_single_field_struct_from.rs
@@ -6,13 +6,12 @@ use ide_db::{
};
use syntax::{
TokenText,
- ast::{self, AstNode, HasGenericParams, HasName, edit, edit_in_place::Indent},
+ ast::{self, AstNode, HasAttrs, HasGenericParams, HasName, edit, edit_in_place::Indent},
};
use crate::{
AssistId,
assist_context::{AssistContext, Assists},
- utils::add_cfg_attrs_to,
};
// Assist: generate_single_field_struct_from
@@ -90,6 +89,7 @@ pub(crate) fn generate_single_field_struct_from(
let fn_ = make::fn_(
None,
+ None,
make::name("from"),
None,
None,
@@ -110,8 +110,12 @@ pub(crate) fn generate_single_field_struct_from(
.clone_for_update();
fn_.indent(1.into());
+ let cfg_attrs = strukt
+ .attrs()
+ .filter(|attr| attr.as_simple_call().is_some_and(|(name, _arg)| name == "cfg"));
let impl_ = make::impl_trait(
+ cfg_attrs,
false,
None,
trait_gen_args,
@@ -128,8 +132,6 @@ pub(crate) fn generate_single_field_struct_from(
impl_.get_or_create_assoc_item_list().add_item(fn_.into());
- add_cfg_attrs_to(&strukt, &impl_);
-
impl_.reindent_to(indent);
builder.insert(strukt.syntax().text_range().end(), format!("\n\n{indent}{impl_}"));