@@ -6,6 +6,10 @@ use rustc_middle::mir::MirPass;
6
6
use rustc_middle:: mir:: { self , Body , Local , Location } ;
7
7
use rustc_middle:: ty:: { self , Ty , TyCtxt } ;
8
8
9
+ use crate :: errors:: {
10
+ PeekArgumentNotALocal , PeekArgumentUntracked , PeekBitNotSet , PeekMustBeNotTemporary ,
11
+ PeekMustBePlaceOrRefPlace , StopAfterDataFlowEndedCompilation ,
12
+ } ;
9
13
use crate :: framework:: BitSetExt ;
10
14
use crate :: impls:: {
11
15
DefinitelyInitializedPlaces , MaybeInitializedPlaces , MaybeLiveLocals , MaybeUninitializedPlaces ,
@@ -64,7 +68,7 @@ impl<'tcx> MirPass<'tcx> for SanityCheck {
64
68
}
65
69
66
70
if has_rustc_mir_with ( tcx, def_id, sym:: stop_after_dataflow) . is_some ( ) {
67
- tcx. sess . fatal ( "stop_after_dataflow ended compilation" ) ;
71
+ tcx. sess . emit_fatal ( StopAfterDataFlowEndedCompilation ) ;
68
72
}
69
73
}
70
74
}
@@ -133,9 +137,7 @@ pub fn sanity_check_via_rustc_peek<'tcx, A>(
133
137
}
134
138
135
139
_ => {
136
- let msg = "rustc_peek: argument expression \
137
- must be either `place` or `&place`";
138
- tcx. sess . span_err ( call. span , msg) ;
140
+ tcx. sess . emit_err ( PeekMustBePlaceOrRefPlace { span : call. span } ) ;
139
141
}
140
142
}
141
143
}
@@ -204,18 +206,12 @@ impl PeekCall {
204
206
if let Some ( local) = place. as_local ( ) {
205
207
local
206
208
} else {
207
- tcx. sess . diagnostic ( ) . span_err (
208
- span,
209
- "dataflow::sanity_check cannot feed a non-temp to rustc_peek." ,
210
- ) ;
209
+ tcx. sess . emit_err ( PeekMustBeNotTemporary { span } ) ;
211
210
return None ;
212
211
}
213
212
}
214
213
_ => {
215
- tcx. sess . diagnostic ( ) . span_err (
216
- span,
217
- "dataflow::sanity_check cannot feed a non-temp to rustc_peek." ,
218
- ) ;
214
+ tcx. sess . emit_err ( PeekMustBeNotTemporary { span } ) ;
219
215
return None ;
220
216
}
221
217
} ;
@@ -255,12 +251,12 @@ where
255
251
let bit_state = flow_state. contains ( peek_mpi) ;
256
252
debug ! ( "rustc_peek({:?} = &{:?}) bit_state: {}" , call. arg, place, bit_state) ;
257
253
if !bit_state {
258
- tcx. sess . span_err ( call. span , "rustc_peek: bit not set" ) ;
254
+ tcx. sess . emit_err ( PeekBitNotSet { span : call. span } ) ;
259
255
}
260
256
}
261
257
262
258
LookupResult :: Parent ( ..) => {
263
- tcx. sess . span_err ( call. span , "rustc_peek: argument untracked" ) ;
259
+ tcx. sess . emit_err ( PeekArgumentUntracked { span : call. span } ) ;
264
260
}
265
261
}
266
262
}
@@ -276,12 +272,12 @@ impl<'tcx> RustcPeekAt<'tcx> for MaybeLiveLocals {
276
272
) {
277
273
info ! ( ?place, "peek_at" ) ;
278
274
let Some ( local) = place. as_local ( ) else {
279
- tcx. sess . span_err ( call. span , "rustc_peek: argument was not a local" ) ;
275
+ tcx. sess . emit_err ( PeekArgumentNotALocal { span : call. span } ) ;
280
276
return ;
281
277
} ;
282
278
283
279
if !flow_state. contains ( local) {
284
- tcx. sess . span_err ( call. span , "rustc_peek: bit not set" ) ;
280
+ tcx. sess . emit_err ( PeekBitNotSet { span : call. span } ) ;
285
281
}
286
282
}
287
283
}
0 commit comments