Convert delayed_bug
s to bug
s.
I have a suspicion that quite a few delayed bug paths are impossible to reach, so I did an experiment. I converted every `delayed_bug` to a `bug`, ran the full test suite, then converted back every `bug` that was hit. A surprising number were never hit. The next commit will convert some more back, based on human judgment.
This commit is contained in:
parent
bb594538fc
commit
010f3944e0
44 changed files with 87 additions and 157 deletions
|
@ -393,11 +393,7 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for CompileTimeInterpreter<'mir,
|
|||
if ecx.tcx.is_ctfe_mir_available(def) {
|
||||
Ok(ecx.tcx.mir_for_ctfe(def))
|
||||
} else if ecx.tcx.def_kind(def) == DefKind::AssocConst {
|
||||
let guar = ecx
|
||||
.tcx
|
||||
.dcx()
|
||||
.delayed_bug("This is likely a const item that is missing from its impl");
|
||||
throw_inval!(AlreadyReported(guar.into()));
|
||||
ecx.tcx.dcx().bug("This is likely a const item that is missing from its impl");
|
||||
} else {
|
||||
// `find_mir_or_eval_fn` checks that this is a const fn before even calling us,
|
||||
// so this should be unreachable.
|
||||
|
@ -626,7 +622,7 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for CompileTimeInterpreter<'mir,
|
|||
);
|
||||
// If this was a hard error, don't bother continuing evaluation.
|
||||
if is_error {
|
||||
let guard = ecx
|
||||
let guard: rustc_errors::ErrorGuaranteed = ecx
|
||||
.tcx
|
||||
.dcx()
|
||||
.span_delayed_bug(span, "The deny lint should have already errored");
|
||||
|
|
|
@ -329,9 +329,7 @@ impl<'mir, 'tcx> Checker<'mir, 'tcx> {
|
|||
|
||||
fn check_static(&mut self, def_id: DefId, span: Span) {
|
||||
if self.tcx.is_thread_local_static(def_id) {
|
||||
self.tcx
|
||||
.dcx()
|
||||
.span_delayed_bug(span, "tls access is checked in `Rvalue::ThreadLocalRef`");
|
||||
self.tcx.dcx().span_bug(span, "tls access is checked in `Rvalue::ThreadLocalRef`");
|
||||
}
|
||||
self.check_op_spanned(ops::StaticAccess, span)
|
||||
}
|
||||
|
|
|
@ -517,7 +517,7 @@ impl<'a, 'tcx> Visitor<'tcx> for CfgChecker<'a, 'tcx> {
|
|||
|
||||
fn visit_source_scope(&mut self, scope: SourceScope) {
|
||||
if self.body.source_scopes.get(scope).is_none() {
|
||||
self.tcx.dcx().span_delayed_bug(
|
||||
self.tcx.dcx().span_bug(
|
||||
self.body.span,
|
||||
format!(
|
||||
"broken MIR in {:?} ({}):\ninvalid source scope {:?}",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue