@@ -43,7 +43,7 @@ use dump_visitor::DumpVisitor;
43
43
use span_utils:: SpanUtils ;
44
44
45
45
use rls_data:: { Def , DefKind , ExternalCrateData , GlobalCrateId , MacroRef , Ref , RefKind , Relation ,
46
- RelationKind , SpanData , Impl , ImplKind } ;
46
+ RelationKind , SpanData , Impl , ImplKind , Analysis } ;
47
47
use rls_data:: config:: Config ;
48
48
49
49
use log:: { debug, error, info} ;
@@ -1000,12 +1000,10 @@ impl<'l> Visitor<'l> for PathCollector<'l> {
1000
1000
1001
1001
/// Defines what to do with the results of saving the analysis.
1002
1002
pub trait SaveHandler {
1003
- fn save < ' l , ' tcx > (
1003
+ fn save (
1004
1004
& 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 ,
1009
1007
) ;
1010
1008
}
1011
1009
@@ -1065,23 +1063,15 @@ impl<'a> DumpHandler<'a> {
1065
1063
}
1066
1064
}
1067
1065
1068
- impl < ' a > SaveHandler for DumpHandler < ' a > {
1069
- fn save < ' l , ' tcx > (
1066
+ impl SaveHandler for DumpHandler < ' _ > {
1067
+ fn save (
1070
1068
& 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 ,
1075
1071
) {
1076
1072
let sess = & save_ctxt. tcx . sess ;
1077
1073
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) {
1085
1075
error ! ( "Can't serialize save-analysis: {:?}" , e) ;
1086
1076
}
1087
1077
@@ -1097,21 +1087,13 @@ pub struct CallbackHandler<'b> {
1097
1087
pub callback : & ' b mut dyn FnMut ( & rls_data:: Analysis ) ,
1098
1088
}
1099
1089
1100
- impl < ' b > SaveHandler for CallbackHandler < ' b > {
1101
- fn save < ' l , ' tcx > (
1090
+ impl SaveHandler for CallbackHandler < ' _ > {
1091
+ fn save (
1102
1092
& mut self ,
1103
- save_ctxt : SaveContext < ' l , ' tcx > ,
1104
- krate : & ast:: Crate ,
1105
- cratename : & str ,
1106
- input : & ' l Input ,
1093
+ _: & SaveContext < ' _ , ' _ > ,
1094
+ analysis : & Analysis ,
1107
1095
) {
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)
1115
1097
}
1116
1098
}
1117
1099
@@ -1142,7 +1124,13 @@ pub fn process_crate<'l, 'tcx, H: SaveHandler>(
1142
1124
impl_counter : Cell :: new ( 0 ) ,
1143
1125
} ;
1144
1126
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 ( ) )
1146
1134
} )
1147
1135
}
1148
1136
0 commit comments