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> {
|
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.
|
// Buffer any move errors that we collected and de-duplicated.
|
||||||
for (_, (_, diag)) in std::mem::take(&mut self.diags.buffered_move_errors) {
|
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 {
|
const fn digits(x: u8) -> usize {
|
||||||
match x {
|
match x {
|
||||||
TwoDigits::FIRST..=TwoDigits::LAST => 0,
|
TwoDigits::FIRST..=TwoDigits::LAST => 0, //~ ERROR: could not evaluate constant pattern
|
||||||
0..=9 | 100..=255 => panic!(),
|
0..=9 | 100..=255 => panic!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,5 +4,11 @@ error: missing type for `const` item
|
|||||||
LL | const FIRST: = 10;
|
LL | const FIRST: = 10;
|
||||||
| ^ help: provide a type for the associated constant: `u8`
|
| ^ 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);
|
static S_COUNT: = std::sync::atomic::AtomicUsize::new(0);
|
||||||
|
//~^ ERROR: missing type for `static` item
|
||||||
|
|
||||||
fn main() {}
|
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
|
//@ compile-flags: -Zvalidate-mir -Zinline-mir=yes
|
||||||
|
|
||||||
|
// reported as rust-lang/rust#126896
|
||||||
|
|
||||||
#![feature(type_alias_impl_trait)]
|
#![feature(type_alias_impl_trait)]
|
||||||
type Two<'a, 'b> = impl std::fmt::Debug;
|
type Two<'a, 'b> = impl std::fmt::Debug;
|
||||||
|
|
||||||
@ -9,9 +10,8 @@ fn set(x: &mut isize) -> isize {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn d(x: Two) {
|
fn d(x: Two) {
|
||||||
let c1 = || set(x);
|
let c1 = || set(x); //~ ERROR: expected generic lifetime parameter, found `'_`
|
||||||
c1;
|
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