Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/extract_struct_from_enum_variant.rs')
-rw-r--r--crates/ide-assists/src/handlers/extract_struct_from_enum_variant.rs59
1 files changed, 30 insertions, 29 deletions
diff --git a/crates/ide-assists/src/handlers/extract_struct_from_enum_variant.rs b/crates/ide-assists/src/handlers/extract_struct_from_enum_variant.rs
index 9095b1825f..2cec3296c8 100644
--- a/crates/ide-assists/src/handlers/extract_struct_from_enum_variant.rs
+++ b/crates/ide-assists/src/handlers/extract_struct_from_enum_variant.rs
@@ -215,12 +215,12 @@ fn tag_generics_in_variant(ty: &ast::Type, generics: &mut [(ast::GenericParam, b
ast::GenericParam::LifetimeParam(lt)
if matches!(token.kind(), T![lifetime_ident]) =>
{
- if let Some(lt) = lt.lifetime() {
- if lt.text().as_str() == token.text() {
- *tag = true;
- tagged_one = true;
- break;
- }
+ if let Some(lt) = lt.lifetime()
+ && lt.text().as_str() == token.text()
+ {
+ *tag = true;
+ tagged_one = true;
+ break;
}
}
param if matches!(token.kind(), T![ident]) => {
@@ -400,11 +400,12 @@ fn process_references(
let segment = builder.make_mut(segment);
let scope_node = builder.make_syntax_mut(scope_node);
if !visited_modules.contains(&module) {
+ let cfg = ctx.config.find_path_config(ctx.sema.is_nightly(module.krate()));
let mod_path = module.find_use_path(
ctx.sema.db,
*enum_module_def,
ctx.config.insert_use.prefix_kind,
- ctx.config.import_path_config(),
+ cfg,
);
if let Some(mut mod_path) = mod_path {
mod_path.pop_segment();
@@ -478,7 +479,7 @@ macro_rules! foo {
};
}
-struct TheVariant{ the_field: u8 }
+struct TheVariant { the_field: u8 }
enum TheEnum {
TheVariant(TheVariant),
@@ -502,7 +503,7 @@ enum Foo {
}
"#,
r#"
-struct Bar{ node: Box<Foo> }
+struct Bar { node: Box<Foo> }
enum Foo {
Bar(Bar),
@@ -519,7 +520,7 @@ enum Foo {
}
"#,
r#"
-struct Bar{ node: Box<Foo>, a: Arc<Box<Foo>> }
+struct Bar { node: Box<Foo>, a: Arc<Box<Foo>> }
enum Foo {
Bar(Bar),
@@ -560,7 +561,7 @@ enum A { One(One) }"#,
check_assist(
extract_struct_from_enum_variant,
"enum A { $0One { foo: u32, bar: u32 } }",
- r#"struct One{ foo: u32, bar: u32 }
+ r#"struct One { foo: u32, bar: u32 }
enum A { One(One) }"#,
);
@@ -571,7 +572,7 @@ enum A { One(One) }"#,
check_assist(
extract_struct_from_enum_variant,
"enum A { $0One { foo: u32 } }",
- r#"struct One{ foo: u32 }
+ r#"struct One { foo: u32 }
enum A { One(One) }"#,
);
@@ -582,7 +583,7 @@ enum A { One(One) }"#,
check_assist(
extract_struct_from_enum_variant,
r"enum En<T> { Var { a: T$0 } }",
- r#"struct Var<T>{ a: T }
+ r#"struct Var<T> { a: T }
enum En<T> { Var(Var<T>) }"#,
);
@@ -599,7 +600,7 @@ enum Enum { Variant{ field: u32$0 } }"#,
r#"
#[derive(Debug)]
#[derive(Clone)]
-struct Variant{ field: u32 }
+struct Variant { field: u32 }
#[derive(Debug)]
#[derive(Clone)]
@@ -618,7 +619,7 @@ enum Enum {
}
}"#,
r#"
-struct Variant{
+struct Variant {
field: u32
}
@@ -642,7 +643,7 @@ mod indenting {
}"#,
r#"
mod indenting {
- struct Variant{
+ struct Variant {
field: u32
}
@@ -668,7 +669,7 @@ enum A {
}
}"#,
r#"
-struct One{
+struct One {
// leading comment
/// doc comment
#[an_attr]
@@ -700,7 +701,7 @@ enum A {
}
}"#,
r#"
-struct One{
+struct One {
// comment
/// doc
#[attr]
@@ -747,7 +748,7 @@ enum A {
/* comment */
// other
/// comment
-struct One{
+struct One {
a: u32
}
@@ -789,7 +790,7 @@ enum A {
extract_struct_from_enum_variant,
"enum A { $0One{ a: u32, pub(crate) b: u32, pub(super) c: u32, d: u32 } }",
r#"
-struct One{ a: u32, pub(crate) b: u32, pub(super) c: u32, d: u32 }
+struct One { a: u32, pub(crate) b: u32, pub(super) c: u32, d: u32 }
enum A { One(One) }"#,
);
@@ -850,7 +851,7 @@ pub enum A { One(One) }"#,
extract_struct_from_enum_variant,
"pub(in something) enum A { $0One{ a: u32, b: u32 } }",
r#"
-pub(in something) struct One{ pub(in something) a: u32, pub(in something) b: u32 }
+pub(in something) struct One { pub(in something) a: u32, pub(in something) b: u32 }
pub(in something) enum A { One(One) }"#,
);
@@ -862,7 +863,7 @@ pub(in something) enum A { One(One) }"#,
extract_struct_from_enum_variant,
"pub(crate) enum A { $0One{ a: u32, b: u32, c: u32 } }",
r#"
-pub(crate) struct One{ pub(crate) a: u32, pub(crate) b: u32, pub(crate) c: u32 }
+pub(crate) struct One { pub(crate) a: u32, pub(crate) b: u32, pub(crate) c: u32 }
pub(crate) enum A { One(One) }"#,
);
@@ -933,7 +934,7 @@ fn f() {
}
"#,
r#"
-struct V{ i: i32, j: i32 }
+struct V { i: i32, j: i32 }
enum E {
V(V)
@@ -1027,7 +1028,7 @@ fn f() {
"#,
r#"
//- /main.rs
-struct V{ i: i32, j: i32 }
+struct V { i: i32, j: i32 }
enum E {
V(V)
@@ -1057,7 +1058,7 @@ fn foo() {
}
"#,
r#"
-struct One{ a: u32, b: u32 }
+struct One { a: u32, b: u32 }
enum A { One(One) }
@@ -1114,7 +1115,7 @@ enum X<'a, 'b, 'x> {
}
"#,
r#"
-struct A<'a, 'x>{ a: &'a &'x mut () }
+struct A<'a, 'x> { a: &'a &'x mut () }
enum X<'a, 'b, 'x> {
A(A<'a, 'x>),
@@ -1136,7 +1137,7 @@ enum X<'b, T, V, const C: usize> {
}
"#,
r#"
-struct A<'b, T, const C: usize>{ a: T, b: X<'b>, c: [u8; C] }
+struct A<'b, T, const C: usize> { a: T, b: X<'b>, c: [u8; C] }
enum X<'b, T, V, const C: usize> {
A(A<'b, T, C>),
@@ -1158,7 +1159,7 @@ enum X<'a, 'b> {
}
"#,
r#"
-struct C{ c: () }
+struct C { c: () }
enum X<'a, 'b> {
A { a: &'a () },
@@ -1180,7 +1181,7 @@ enum En<T: TraitT, V: TraitV> {
}
"#,
r#"
-struct A<T: TraitT>{ a: T }
+struct A<T: TraitT> { a: T }
enum En<T: TraitT, V: TraitV> {
A(A<T>),