1- use hir_expand:: name:: AsName ;
21use ra_ide_db:: {
32 defs:: Definition , imports_locator:: ImportsLocator , search:: Reference , RootDatabase ,
43} ;
@@ -15,14 +14,14 @@ use crate::{
1514 AssistContext , AssistId , Assists ,
1615} ;
1716use ast:: { ArgListOwner , VisibilityOwner } ;
18- use hir:: { EnumVariant , Module , ModuleDef } ;
17+ use hir:: { AsName , EnumVariant , Module , ModuleDef } ;
1918use ra_db:: FileId ;
2019use ra_fmt:: leading_indent;
2120use rustc_hash:: FxHashSet ;
2221
2322// Assist extract_struct_from_enum
2423//
25- // Extracts a from struct from enum variant
24+ // Extracts a struct from enum variant
2625//
2726// ```
2827// enum A { <|>One(u32, u32) }
@@ -41,7 +40,7 @@ pub(crate) fn extract_struct_from_enum(acc: &mut Assists, ctx: &AssistContext) -
4140 } ;
4241 let variant_name = variant. name ( ) ?. to_string ( ) ;
4342 let enum_ast = variant. parent_enum ( ) ;
44- let enum_name = enum_ast. name ( ) . unwrap ( ) . to_string ( ) ;
43+ let enum_name = enum_ast. name ( ) ? . to_string ( ) ;
4544 let visibility = enum_ast. visibility ( ) ;
4645 let variant_hir = ctx. sema . to_def ( & variant) ?;
4746
@@ -88,13 +87,12 @@ pub(crate) fn extract_struct_from_enum(acc: &mut Assists, ctx: &AssistContext) -
8887}
8988
9089fn existing_struct_def ( db : & RootDatabase , variant_name : & str , variant : & EnumVariant ) -> bool {
91- let module_defs = variant. parent_enum ( db) . module ( db) . scope ( db, None ) ;
92- for ( name, _) in module_defs {
93- if name. to_string ( ) == variant_name. to_string ( ) {
94- return true ;
95- }
96- }
97- false
90+ variant
91+ . parent_enum ( db)
92+ . module ( db)
93+ . scope ( db, None )
94+ . into_iter ( )
95+ . any ( |( name, _) | name. to_string ( ) == variant_name. to_string ( ) )
9896}
9997
10098fn mod_def_for_target_module ( ctx : & AssistContext , enum_name : & str ) -> ModuleDef {
0 commit comments