Ensure that we process projections during MIR inlining

Fixes #67710

Previously, we were not calling `super_place`, which resulted in us
failing to update any local references that occur in
ProjectionElem::Index. This caused the post-inlining MIR to contain a
reference to a local ID from the inlined callee, leading to an ICE
due to a type mismatch.
This commit is contained in:
Aaron Hill 2020-01-01 20:10:55 -05:00
parent 0ec3706702
commit e8e53b56df
No known key found for this signature in database
GPG key ID: B4087E510E98B164
2 changed files with 21 additions and 8 deletions

View file

@ -0,0 +1,17 @@
// compile-flags: -Z mir-opt-level=2
// build-pass
// This used to ICE due to the inling pass not examining projections
// for references to locals
pub fn parse(version: ()) {
p(&b'.', b"0");
}
#[inline(always)]
fn p(byte: &u8, s: &[u8]) {
!(s[0] == *byte);
}
fn main() {
parse(());
}