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
|
@ -410,8 +410,7 @@ impl<'tcx> TypeckResults<'tcx> {
|
|||
|
||||
pub fn extract_binding_mode(&self, s: &Session, id: HirId, sp: Span) -> Option<BindingMode> {
|
||||
self.pat_binding_modes().get(id).copied().or_else(|| {
|
||||
s.dcx().span_delayed_bug(sp, "missing binding mode");
|
||||
None
|
||||
s.dcx().span_bug(sp, "missing binding mode");
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -356,9 +356,7 @@ impl<'tcx> TyCtxt<'tcx> {
|
|||
}
|
||||
|
||||
let Some(item_id) = self.associated_item_def_ids(impl_did).first() else {
|
||||
self.dcx()
|
||||
.span_delayed_bug(self.def_span(impl_did), "Drop impl without drop function");
|
||||
return;
|
||||
self.dcx().span_bug(self.def_span(impl_did), "Drop impl without drop function");
|
||||
};
|
||||
|
||||
if let Some((old_item_id, _)) = dtor_candidate {
|
||||
|
|
|
@ -42,7 +42,7 @@ fn opt_span_bug_fmt<S: Into<MultiSpan>>(
|
|||
/// delayed bug, so what is the point of this? It exists to help us test the interaction of delayed
|
||||
/// bugs with the query system and incremental.
|
||||
pub fn trigger_delayed_bug(tcx: TyCtxt<'_>, key: rustc_hir::def_id::DefId) {
|
||||
tcx.dcx().span_delayed_bug(
|
||||
tcx.dcx().span_bug(
|
||||
tcx.def_span(key),
|
||||
"delayed bug triggered by #[rustc_error(delayed_bug_from_inside_query)]",
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue