@@ -522,13 +522,14 @@ impl GlobalState {
522
522
}
523
523
524
524
fn recreate_crate_graph ( & mut self , cause : String ) {
525
- {
525
+ // crate graph construction relies on these paths, record them so when one of them gets
526
+ // deleted or created we trigger a reconstruction of the crate graph
527
+ let mut crate_graph_file_dependencies = FxHashSet :: default ( ) ;
528
+
529
+ let ( crate_graph, proc_macro_paths, layouts, toolchains) = {
526
530
// Create crate graph from all the workspaces
527
531
let vfs = & mut self . vfs . write ( ) . 0 ;
528
532
let loader = & mut self . loader ;
529
- // crate graph construction relies on these paths, record them so when one of them gets
530
- // deleted or created we trigger a reconstruction of the crate graph
531
- let mut crate_graph_file_dependencies = FxHashSet :: default ( ) ;
532
533
533
534
let load = |path : & AbsPath | {
534
535
let _p = tracing:: span!( tracing:: Level :: DEBUG , "switch_workspaces::load" ) . entered ( ) ;
@@ -545,25 +546,24 @@ impl GlobalState {
545
546
}
546
547
} ;
547
548
548
- let ( crate_graph, proc_macro_paths, layouts, toolchains) =
549
- ws_to_crate_graph ( & self . workspaces , self . config . extra_env ( ) , load) ;
550
-
551
- let mut change = Change :: new ( ) ;
552
- if self . config . expand_proc_macros ( ) {
553
- change. set_proc_macros (
554
- crate_graph
555
- . iter ( )
556
- . map ( |id| ( id, Err ( "Proc-macros have not been built yet" . to_owned ( ) ) ) )
557
- . collect ( ) ,
558
- ) ;
559
- self . fetch_proc_macros_queue . request_op ( cause, proc_macro_paths) ;
560
- }
561
- change. set_crate_graph ( crate_graph) ;
562
- change. set_target_data_layouts ( layouts) ;
563
- change. set_toolchains ( toolchains) ;
564
- self . analysis_host . apply_change ( change) ;
565
- self . crate_graph_file_dependencies = crate_graph_file_dependencies;
549
+ ws_to_crate_graph ( & self . workspaces , self . config . extra_env ( ) , load)
550
+ } ;
551
+ let mut change = Change :: new ( ) ;
552
+ if self . config . expand_proc_macros ( ) {
553
+ change. set_proc_macros (
554
+ crate_graph
555
+ . iter ( )
556
+ . map ( |id| ( id, Err ( "Proc-macros have not been built yet" . to_owned ( ) ) ) )
557
+ . collect ( ) ,
558
+ ) ;
559
+ self . fetch_proc_macros_queue . request_op ( cause, proc_macro_paths) ;
566
560
}
561
+ change. set_crate_graph ( crate_graph) ;
562
+ change. set_target_data_layouts ( layouts) ;
563
+ change. set_toolchains ( toolchains) ;
564
+ self . analysis_host . apply_change ( change) ;
565
+ self . crate_graph_file_dependencies = crate_graph_file_dependencies;
566
+
567
567
self . process_changes ( ) ;
568
568
self . reload_flycheck ( ) ;
569
569
}
0 commit comments