36febe1f4d
This patch updates the error reporting when Safe Transmute is not possible between 2 types by including the reason. Also, fix some small bugs that occur when computing the `Answer` for transmutability.
34 lines
1.6 KiB
Plaintext
34 lines
1.6 KiB
Plaintext
error[E0277]: `A` cannot be safely transmuted into `B` in the defining scope of `assert::Context`
|
|
--> $DIR/should_reject_disjoint.rs:33:40
|
|
|
|
|
LL | assert::is_maybe_transmutable::<A, B>();
|
|
| ^ At least one value of `A` isn't a bit-valid value of `B`
|
|
|
|
|
note: required by a bound in `is_maybe_transmutable`
|
|
--> $DIR/should_reject_disjoint.rs:13:14
|
|
|
|
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
|
| --------------------- required by a bound in this function
|
|
LL | where
|
|
LL | Dst: BikeshedIntrinsicFrom<Src, Context, { Assume::SAFETY.and(Assume::VALIDITY) }>
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_maybe_transmutable`
|
|
|
|
error[E0277]: `B` cannot be safely transmuted into `A` in the defining scope of `assert::Context`
|
|
--> $DIR/should_reject_disjoint.rs:34:40
|
|
|
|
|
LL | assert::is_maybe_transmutable::<B, A>();
|
|
| ^ At least one value of `B` isn't a bit-valid value of `A`
|
|
|
|
|
note: required by a bound in `is_maybe_transmutable`
|
|
--> $DIR/should_reject_disjoint.rs:13:14
|
|
|
|
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
|
| --------------------- required by a bound in this function
|
|
LL | where
|
|
LL | Dst: BikeshedIntrinsicFrom<Src, Context, { Assume::SAFETY.and(Assume::VALIDITY) }>
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_maybe_transmutable`
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0277`.
|