@@ -43,7 +43,7 @@ use dump_visitor::DumpVisitor;
4343use span_utils:: SpanUtils ;
4444
4545use rls_data:: { Def , DefKind , ExternalCrateData , GlobalCrateId , MacroRef , Ref , RefKind , Relation ,
46- RelationKind , SpanData , Impl , ImplKind } ;
46+ RelationKind , SpanData , Impl , ImplKind , Analysis } ;
4747use rls_data:: config:: Config ;
4848
4949use log:: { debug, error, info} ;
@@ -1000,12 +1000,10 @@ impl<'l> Visitor<'l> for PathCollector<'l> {
10001000
10011001/// Defines what to do with the results of saving the analysis.
10021002pub trait SaveHandler {
1003- fn save < ' l , ' tcx > (
1003+ fn save (
10041004 & mut self ,
1005- save_ctxt : SaveContext < ' l , ' tcx > ,
1006- krate : & ast:: Crate ,
1007- cratename : & str ,
1008- input : & ' l Input ,
1005+ save_ctxt : & SaveContext < ' _ , ' _ > ,
1006+ analysis : & Analysis ,
10091007 ) ;
10101008}
10111009
@@ -1065,23 +1063,15 @@ impl<'a> DumpHandler<'a> {
10651063 }
10661064}
10671065
1068- impl < ' a > SaveHandler for DumpHandler < ' a > {
1069- fn save < ' l , ' tcx > (
1066+ impl SaveHandler for DumpHandler < ' _ > {
1067+ fn save (
10701068 & mut self ,
1071- save_ctxt : SaveContext < ' l , ' tcx > ,
1072- krate : & ast:: Crate ,
1073- cratename : & str ,
1074- input : & ' l Input ,
1069+ save_ctxt : & SaveContext < ' _ , ' _ > ,
1070+ analysis : & Analysis ,
10751071 ) {
10761072 let sess = & save_ctxt. tcx . sess ;
10771073 let ( output, file_name) = self . output_file ( & save_ctxt) ;
1078- let mut visitor = DumpVisitor :: new ( save_ctxt) ;
1079-
1080- visitor. dump_crate_info ( cratename, krate) ;
1081- visitor. dump_compilation_options ( input, cratename) ;
1082- visit:: walk_crate ( & mut visitor, krate) ;
1083-
1084- if let Err ( e) = serde_json:: to_writer ( output, & visitor. into_analysis ( ) ) {
1074+ if let Err ( e) = serde_json:: to_writer ( output, & analysis) {
10851075 error ! ( "Can't serialize save-analysis: {:?}" , e) ;
10861076 }
10871077
@@ -1097,21 +1087,13 @@ pub struct CallbackHandler<'b> {
10971087 pub callback : & ' b mut dyn FnMut ( & rls_data:: Analysis ) ,
10981088}
10991089
1100- impl < ' b > SaveHandler for CallbackHandler < ' b > {
1101- fn save < ' l , ' tcx > (
1090+ impl SaveHandler for CallbackHandler < ' _ > {
1091+ fn save (
11021092 & mut self ,
1103- save_ctxt : SaveContext < ' l , ' tcx > ,
1104- krate : & ast:: Crate ,
1105- cratename : & str ,
1106- input : & ' l Input ,
1093+ _: & SaveContext < ' _ , ' _ > ,
1094+ analysis : & Analysis ,
11071095 ) {
1108- let mut visitor = DumpVisitor :: new ( save_ctxt) ;
1109-
1110- visitor. dump_crate_info ( cratename, krate) ;
1111- visitor. dump_compilation_options ( input, cratename) ;
1112- visit:: walk_crate ( & mut visitor, krate) ;
1113-
1114- ( self . callback ) ( & visitor. into_analysis ( ) )
1096+ ( self . callback ) ( analysis)
11151097 }
11161098}
11171099
@@ -1142,7 +1124,13 @@ pub fn process_crate<'l, 'tcx, H: SaveHandler>(
11421124 impl_counter : Cell :: new ( 0 ) ,
11431125 } ;
11441126
1145- handler. save ( save_ctxt, krate, cratename, input)
1127+ let mut visitor = DumpVisitor :: new ( save_ctxt) ;
1128+
1129+ visitor. dump_crate_info ( cratename, krate) ;
1130+ visitor. dump_compilation_options ( input, cratename) ;
1131+ visit:: walk_crate ( & mut visitor, krate) ;
1132+
1133+ handler. save ( & visitor. save_ctxt , & visitor. analysis ( ) )
11461134 } )
11471135}
11481136
0 commit comments