@@ -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