mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
Rollup merge of #126774 - nnethercote:fix-126751, r=oli-obk
Fix another assertion failure for some Expect diagnostics. Very similar to #126719. So much so that I added a new case to the test from that PR rather than creating a new one. r? `@oli-obk`
This commit is contained in:
commit
d86736c9be
@ -1456,10 +1456,10 @@ impl DiagCtxtInner {
|
||||
}
|
||||
|
||||
if diagnostic.has_future_breakage() {
|
||||
// Future breakages aren't emitted if they're `Level::Allow`,
|
||||
// but they still need to be constructed and stashed below,
|
||||
// so they'll trigger the must_produce_diag check.
|
||||
assert!(matches!(diagnostic.level, Error | Warning | Allow));
|
||||
// Future breakages aren't emitted if they're `Level::Allow` or
|
||||
// `Level::Expect`, but they still need to be constructed and
|
||||
// stashed below, so they'll trigger the must_produce_diag check.
|
||||
assert!(matches!(diagnostic.level, Error | Warning | Allow | Expect(_)));
|
||||
self.future_breakage_diagnostics.push(diagnostic.clone());
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,23 @@
|
||||
// This test covers similar crashes from both #126521 and #126751.
|
||||
|
||||
macro_rules! foo {
|
||||
($val:ident) => {
|
||||
true;
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! bar {
|
||||
($val:ident) => {
|
||||
(5_i32.overflowing_sub(3));
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {
|
||||
#[expect(semicolon_in_expressions_from_macros)]
|
||||
//~^ ERROR the `#[expect]` attribute is an experimental feature
|
||||
let _ = foo!(x);
|
||||
|
||||
#[expect(semicolon_in_expressions_from_macros)]
|
||||
//~^ ERROR the `#[expect]` attribute is an experimental feature
|
||||
let _ = bar!(x);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
error[E0658]: the `#[expect]` attribute is an experimental feature
|
||||
--> $DIR/expect-future_breakage-crash-issue-126521.rs:8:5
|
||||
--> $DIR/expect-future_breakage-crash-issue-126521.rs:16:5
|
||||
|
|
||||
LL | #[expect(semicolon_in_expressions_from_macros)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -8,6 +8,16 @@ LL | #[expect(semicolon_in_expressions_from_macros)]
|
||||
= help: add `#![feature(lint_reasons)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
error[E0658]: the `#[expect]` attribute is an experimental feature
|
||||
--> $DIR/expect-future_breakage-crash-issue-126521.rs:20:5
|
||||
|
|
||||
LL | #[expect(semicolon_in_expressions_from_macros)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #54503 <https://github.com/rust-lang/rust/issues/54503> for more information
|
||||
= help: add `#![feature(lint_reasons)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
||||
|
Loading…
Reference in New Issue
Block a user