@@ -384,7 +384,7 @@ impl DefCollector<'_> {
384384 self . unresolved_imports . extend ( partial_resolved) ;
385385 self . resolve_imports ( ) ;
386386
387- let unresolved_imports = std:: mem:: replace ( & mut self . unresolved_imports , Vec :: new ( ) ) ;
387+ let unresolved_imports = std:: mem:: take ( & mut self . unresolved_imports ) ;
388388 // show unresolved imports in completion, etc
389389 for directive in & unresolved_imports {
390390 self . record_resolved_import ( directive)
@@ -417,7 +417,7 @@ impl DefCollector<'_> {
417417 fn reseed_with_unresolved_attribute ( & mut self ) -> ReachedFixedPoint {
418418 cov_mark:: hit!( unresolved_attribute_fallback) ;
419419
420- let mut unresolved_macros = std:: mem:: replace ( & mut self . unresolved_macros , Vec :: new ( ) ) ;
420+ let mut unresolved_macros = std:: mem:: take ( & mut self . unresolved_macros ) ;
421421 let pos = unresolved_macros. iter ( ) . position ( |directive| {
422422 if let MacroDirectiveKind :: Attr { ast_id, mod_item, attr } = & directive. kind {
423423 self . skip_attrs . insert ( ast_id. ast_id . with_value ( * mod_item) , attr. id ) ;
@@ -689,7 +689,7 @@ impl DefCollector<'_> {
689689 /// Tries to resolve every currently unresolved import.
690690 fn resolve_imports ( & mut self ) -> ReachedFixedPoint {
691691 let mut res = ReachedFixedPoint :: Yes ;
692- let imports = std:: mem:: replace ( & mut self . unresolved_imports , Vec :: new ( ) ) ;
692+ let imports = std:: mem:: take ( & mut self . unresolved_imports ) ;
693693 let imports = imports
694694 . into_iter ( )
695695 . filter_map ( |mut directive| {
@@ -1005,7 +1005,7 @@ impl DefCollector<'_> {
10051005 }
10061006
10071007 fn resolve_macros ( & mut self ) -> ReachedFixedPoint {
1008- let mut macros = std:: mem:: replace ( & mut self . unresolved_macros , Vec :: new ( ) ) ;
1008+ let mut macros = std:: mem:: take ( & mut self . unresolved_macros ) ;
10091009 let mut resolved = Vec :: new ( ) ;
10101010 let mut res = ReachedFixedPoint :: Yes ;
10111011 macros. retain ( |directive| {
@@ -1279,13 +1279,12 @@ impl DefCollector<'_> {
12791279
12801280 for directive in & self . unresolved_imports {
12811281 if let ImportSource :: Import { id : import, use_tree } = & directive. import . source {
1282- match ( directive . import . path . segments ( ) . first ( ) , & directive . import . path . kind ) {
1283- ( Some ( krate ) , PathKind :: Plain | PathKind :: Abs ) => {
1284- if diagnosed_extern_crates . contains ( krate ) {
1285- continue ;
1286- }
1282+ if let ( Some ( krate ) , PathKind :: Plain | PathKind :: Abs ) =
1283+ ( directive . import . path . segments ( ) . first ( ) , & directive . import . path . kind )
1284+ {
1285+ if diagnosed_extern_crates . contains ( krate ) {
1286+ continue ;
12871287 }
1288- _ => { }
12891288 }
12901289
12911290 self . def_map . diagnostics . push ( DefDiagnostic :: unresolved_import (
@@ -1579,13 +1578,13 @@ impl ModCollector<'_, '_> {
15791578 {
15801579 Ok ( ( file_id, is_mod_rs, mod_dir) ) => {
15811580 let item_tree = db. file_item_tree ( file_id. into ( ) ) ;
1582- if item_tree
1581+ let is_enabled = item_tree
15831582 . top_level_attrs ( db, self . def_collector . def_map . krate )
15841583 . cfg ( )
15851584 . map_or ( true , |cfg| {
15861585 self . def_collector . cfg_options . check ( & cfg) != Some ( false )
1587- } )
1588- {
1586+ } ) ;
1587+ if is_enabled {
15891588 let module_id = self . push_child_module (
15901589 module. name . clone ( ) ,
15911590 ast_id,
0 commit comments