propagate tainted_by_errors
in MirBorrowckCtxt::emit_errors
This commit is contained in:
parent
842d6fc32e
commit
f7679d0507
@ -2522,7 +2522,7 @@ pub(crate) fn buffer_mut_error(&mut self, span: Span, diag: Diag<'infcx>, count:
|
||||
}
|
||||
|
||||
pub(crate) fn emit_errors(&mut self) -> Option<ErrorGuaranteed> {
|
||||
let mut res = None;
|
||||
let mut res = self.infcx.tainted_by_errors();
|
||||
|
||||
// Buffer any move errors that we collected and de-duplicated.
|
||||
for (_, (_, diag)) in std::mem::take(&mut self.diags.buffered_move_errors) {
|
||||
|
@ -16,7 +16,7 @@ impl Range for TwoDigits {
|
||||
|
||||
const fn digits(x: u8) -> usize {
|
||||
match x {
|
||||
TwoDigits::FIRST..=TwoDigits::LAST => 0,
|
||||
TwoDigits::FIRST..=TwoDigits::LAST => 0, //~ ERROR: could not evaluate constant pattern
|
||||
0..=9 | 100..=255 => panic!(),
|
||||
}
|
||||
}
|
||||
|
@ -4,5 +4,11 @@ error: missing type for `const` item
|
||||
LL | const FIRST: = 10;
|
||||
| ^ help: provide a type for the associated constant: `u8`
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
error: could not evaluate constant pattern
|
||||
--> $DIR/missing_assoc_const_type.rs:19:9
|
||||
|
|
||||
LL | TwoDigits::FIRST..=TwoDigits::LAST => 0,
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
//@ known-bug: #124164
|
||||
// reported as #124164
|
||||
static S_COUNT: = std::sync::atomic::AtomicUsize::new(0);
|
||||
//~^ ERROR: missing type for `static` item
|
||||
|
||||
fn main() {}
|
8
tests/ui/static/missing-type.stderr
Normal file
8
tests/ui/static/missing-type.stderr
Normal file
@ -0,0 +1,8 @@
|
||||
error: missing type for `static` item
|
||||
--> $DIR/missing-type.rs:2:16
|
||||
|
|
||||
LL | static S_COUNT: = std::sync::atomic::AtomicUsize::new(0);
|
||||
| ^ help: provide a type for the static variable: `AtomicUsize`
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
@ -1,6 +1,7 @@
|
||||
//@ known-bug: rust-lang/rust#126896
|
||||
//@ compile-flags: -Zvalidate-mir -Zinline-mir=yes
|
||||
|
||||
// reported as rust-lang/rust#126896
|
||||
|
||||
#![feature(type_alias_impl_trait)]
|
||||
type Two<'a, 'b> = impl std::fmt::Debug;
|
||||
|
||||
@ -9,9 +10,8 @@ fn set(x: &mut isize) -> isize {
|
||||
}
|
||||
|
||||
fn d(x: Two) {
|
||||
let c1 = || set(x);
|
||||
let c1 = || set(x); //~ ERROR: expected generic lifetime parameter, found `'_`
|
||||
c1;
|
||||
}
|
||||
|
||||
fn main() {
|
||||
}
|
||||
fn main() {}
|
12
tests/ui/type-alias-impl-trait/taint.stderr
Normal file
12
tests/ui/type-alias-impl-trait/taint.stderr
Normal file
@ -0,0 +1,12 @@
|
||||
error[E0792]: expected generic lifetime parameter, found `'_`
|
||||
--> $DIR/taint.rs:13:17
|
||||
|
|
||||
LL | type Two<'a, 'b> = impl std::fmt::Debug;
|
||||
| -- this generic parameter must be used with a generic lifetime parameter
|
||||
...
|
||||
LL | let c1 = || set(x);
|
||||
| ^^^^^^
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0792`.
|
Loading…
Reference in New Issue
Block a user