mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 16:54:01 +00:00
2beabbbf6f
It makes it sound like the `ExprKind` and `Rvalue` are supposed to represent all pointer related casts, when in reality their just used to share a some enum variants. Make it clear there these are only coercion to make it clear why only some pointer related "casts" are in the enum.
34 lines
768 B
Diff
34 lines
768 B
Diff
- // MIR for `c` before SimplifyLocals-before-const-prop
|
|
+ // MIR for `c` after SimplifyLocals-before-const-prop
|
|
|
|
fn c() -> () {
|
|
let mut _0: ();
|
|
let _1: [u8; 10];
|
|
- let mut _2: &[u8];
|
|
- let mut _3: &[u8; 10];
|
|
- let _4: &[u8; 10];
|
|
scope 1 {
|
|
debug bytes => _1;
|
|
scope 2 {
|
|
}
|
|
}
|
|
|
|
bb0: {
|
|
StorageLive(_1);
|
|
_1 = [const 0_u8; 10];
|
|
- StorageLive(_2);
|
|
- StorageLive(_3);
|
|
- StorageLive(_4);
|
|
- _4 = &_1;
|
|
- _3 = &(*_4);
|
|
- _2 = move _3 as &[u8] (PointerCoercion(Unsize));
|
|
- StorageDead(_3);
|
|
- StorageDead(_4);
|
|
- StorageDead(_2);
|
|
_0 = const ();
|
|
StorageDead(_1);
|
|
return;
|
|
}
|
|
}
|
|
|