Use fewer delayed bugs.
For some cases where it's clear that an error has already occurred, e.g.: - there's a comment stating exactly that, or - things like HIR lowering, where we are lowering an error kind The commit also tweaks some comments around delayed bug sites.
This commit is contained in:
parent
bb89df6903
commit
05849e8c2f
23 changed files with 88 additions and 90 deletions
|
@ -758,8 +758,8 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
// since we should have emitten an error for them earlier, and they will
|
||||
// not be well-formed!
|
||||
if polarity == ty::ImplPolarity::Negative {
|
||||
self.tcx().dcx().span_delayed_bug(
|
||||
binding.span,
|
||||
assert!(
|
||||
self.tcx().dcx().has_errors().is_some(),
|
||||
"negative trait bounds should not have bindings",
|
||||
);
|
||||
continue;
|
||||
|
|
|
@ -1865,13 +1865,13 @@ fn check_variances_for_type_defn<'tcx>(
|
|||
let hir_param = &hir_generics.params[index];
|
||||
|
||||
if ty_param.def_id != hir_param.def_id.into() {
|
||||
// valid programs always have lifetimes before types in the generic parameter list
|
||||
// Valid programs always have lifetimes before types in the generic parameter list.
|
||||
// ty_generics are normalized to be in this required order, and variances are built
|
||||
// from ty generics, not from hir generics. but we need hir generics to get
|
||||
// a span out
|
||||
// a span out.
|
||||
//
|
||||
// if they aren't in the same order, then the user has written invalid code, and already
|
||||
// got an error about it (or I'm wrong about this)
|
||||
// If they aren't in the same order, then the user has written invalid code, and already
|
||||
// got an error about it (or I'm wrong about this).
|
||||
tcx.dcx().span_delayed_bug(
|
||||
hir_param.span,
|
||||
"hir generics and ty generics in different order",
|
||||
|
|
|
@ -85,7 +85,7 @@ pub(super) fn check_item(
|
|||
|
||||
(_, _, Unsafety::Unsafe, Negative) => {
|
||||
// Reported in AST validation
|
||||
tcx.dcx().span_delayed_bug(tcx.def_span(def_id), "unsafe negative impl");
|
||||
assert!(tcx.dcx().has_errors().is_some(), "unsafe negative impl");
|
||||
Ok(())
|
||||
}
|
||||
(_, _, Unsafety::Normal, Negative)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue