Auto merge of #133734 - scottmcm:lower-indexing-to-ptrmetadata, r=davidtwco,RalfJung
Bounds-check with PtrMetadata instead of Len in MIR Rather than emitting `Len(*_n)` in array index bounds checks, emit `PtrMetadata(copy _n)` instead -- with some asterisks for arrays and `&mut` that need it to be done slightly differently. We're getting pretty close to removing `Len` entirely, actually. I think just one more PR after this (for slice drop shims). r? mir
This commit is contained in:
commit
b57d93d8b9
100 changed files with 1451 additions and 1663 deletions
|
@ -1163,6 +1163,9 @@ pub enum DesugaringKind {
|
|||
WhileLoop,
|
||||
/// `async Fn()` bound modifier
|
||||
BoundModifier,
|
||||
/// Marks a `&raw const *_1` needed as part of getting the length of a mutable
|
||||
/// slice for the bounds check, so that MIRI's retag handling can recognize it.
|
||||
IndexBoundsCheckReborrow,
|
||||
}
|
||||
|
||||
impl DesugaringKind {
|
||||
|
@ -1179,6 +1182,7 @@ impl DesugaringKind {
|
|||
DesugaringKind::ForLoop => "`for` loop",
|
||||
DesugaringKind::WhileLoop => "`while` loop",
|
||||
DesugaringKind::BoundModifier => "trait bound modifier",
|
||||
DesugaringKind::IndexBoundsCheckReborrow => "slice indexing",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue