@@ -6,6 +6,10 @@ use rustc_middle::mir::MirPass;
66use rustc_middle:: mir:: { self , Body , Local , Location } ;
77use rustc_middle:: ty:: { self , Ty , TyCtxt } ;
88
9+ use crate :: errors:: {
10+ PeekArgumentNotALocal , PeekArgumentUntracked , PeekBitNotSet , PeekMustBeNotTemporary ,
11+ PeekMustBePlaceOrRefPlace , StopAfterDataFlowEndedCompilation ,
12+ } ;
913use crate :: framework:: BitSetExt ;
1014use crate :: impls:: {
1115 DefinitelyInitializedPlaces , MaybeInitializedPlaces , MaybeLiveLocals , MaybeUninitializedPlaces ,
@@ -64,7 +68,7 @@ impl<'tcx> MirPass<'tcx> for SanityCheck {
6468 }
6569
6670 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 ) ;
6872 }
6973 }
7074}
@@ -133,9 +137,7 @@ pub fn sanity_check_via_rustc_peek<'tcx, A>(
133137 }
134138
135139 _ => {
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 } ) ;
139141 }
140142 }
141143 }
@@ -204,18 +206,12 @@ impl PeekCall {
204206 if let Some ( local) = place. as_local ( ) {
205207 local
206208 } 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 } ) ;
211210 return None ;
212211 }
213212 }
214213 _ => {
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 } ) ;
219215 return None ;
220216 }
221217 } ;
@@ -255,12 +251,12 @@ where
255251 let bit_state = flow_state. contains ( peek_mpi) ;
256252 debug ! ( "rustc_peek({:?} = &{:?}) bit_state: {}" , call. arg, place, bit_state) ;
257253 if !bit_state {
258- tcx. sess . span_err ( call. span , "rustc_peek: bit not set" ) ;
254+ tcx. sess . emit_err ( PeekBitNotSet { span : call. span } ) ;
259255 }
260256 }
261257
262258 LookupResult :: Parent ( ..) => {
263- tcx. sess . span_err ( call. span , "rustc_peek: argument untracked" ) ;
259+ tcx. sess . emit_err ( PeekArgumentUntracked { span : call. span } ) ;
264260 }
265261 }
266262 }
@@ -276,12 +272,12 @@ impl<'tcx> RustcPeekAt<'tcx> for MaybeLiveLocals {
276272 ) {
277273 info ! ( ?place, "peek_at" ) ;
278274 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 } ) ;
280276 return ;
281277 } ;
282278
283279 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 } ) ;
285281 }
286282 }
287283}
0 commit comments