mirror of
https://github.com/rust-lang/rust.git
synced 2025-11-17 11:36:26 +00:00
This reverts commit 1eeb8e8b151d1da7daa73837a25dc5f7a1a7fa28, reversing
changes made to 324bf2b9fd8bf9661e7045c8a93f5ff0ec1a8ca5.
Unfortunately the assert desugaring change is not backwards compatible,
see RUST-145770.
Code such as
```rust
#[derive(Debug)]
struct F {
data: bool
}
impl std::ops::Not for F {
type Output = bool;
fn not(self) -> Self::Output { !self.data }
}
fn main() {
let f = F { data: true };
assert!(f);
}
```
would be broken by the assert desugaring change. We may need to land
the change over an edition boundary, or limit the editions that the
desugaring change impacts.
42 lines
1.5 KiB
Plaintext
42 lines
1.5 KiB
Plaintext
error[E0080]: evaluation panicked: assertion failed: std::mem::size_of::<T>() == 0
|
|
--> $DIR/post_monomorphization_error_backtrace.rs:6:23
|
|
|
|
|
LL | const V: () = assert!(std::mem::size_of::<T>() == 0);
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ evaluation of `assert_zst::F::<u32>::V` failed here
|
|
|
|
note: erroneous constant encountered
|
|
--> $DIR/post_monomorphization_error_backtrace.rs:14:5
|
|
|
|
|
LL | F::<T>::V;
|
|
| ^^^^^^^^^
|
|
|
|
note: the above error was encountered while instantiating `fn assert_zst::<u32>`
|
|
--> $DIR/post_monomorphization_error_backtrace.rs:21:5
|
|
|
|
|
LL | assert_zst::<U>()
|
|
| ^^^^^^^^^^^^^^^^^
|
|
|
|
error[E0080]: evaluation panicked: assertion failed: std::mem::size_of::<T>() == 0
|
|
--> $DIR/post_monomorphization_error_backtrace.rs:6:23
|
|
|
|
|
LL | const V: () = assert!(std::mem::size_of::<T>() == 0);
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ evaluation of `assert_zst::F::<i32>::V` failed here
|
|
|
|
note: erroneous constant encountered
|
|
--> $DIR/post_monomorphization_error_backtrace.rs:14:5
|
|
|
|
|
LL | F::<T>::V;
|
|
| ^^^^^^^^^
|
|
|
|
|
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
|
|
|
note: the above error was encountered while instantiating `fn assert_zst::<i32>`
|
|
--> $DIR/post_monomorphization_error_backtrace.rs:21:5
|
|
|
|
|
LL | assert_zst::<U>()
|
|
| ^^^^^^^^^^^^^^^^^
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0080`.
|