Test showing previous behavior
This commit is contained in:
parent
e08b80c0fb
commit
850bcbdc2e
18
tests/mir-opt/build_correct_coerce.main.built.after.mir
Normal file
18
tests/mir-opt/build_correct_coerce.main.built.after.mir
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// MIR for `main` after built
|
||||||
|
|
||||||
|
fn main() -> () {
|
||||||
|
let mut _0: ();
|
||||||
|
let _1: for<'a> fn(&'a (), &'a ());
|
||||||
|
scope 1 {
|
||||||
|
debug x => _1;
|
||||||
|
}
|
||||||
|
|
||||||
|
bb0: {
|
||||||
|
StorageLive(_1);
|
||||||
|
_1 = foo as for<'a, 'b> fn(&'a (), &'b ()) (PointerCoercion(ReifyFnPointer));
|
||||||
|
FakeRead(ForLet(None), _1);
|
||||||
|
_0 = const ();
|
||||||
|
StorageDead(_1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
12
tests/mir-opt/build_correct_coerce.rs
Normal file
12
tests/mir-opt/build_correct_coerce.rs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// skip-filecheck
|
||||||
|
|
||||||
|
// Validate that we record the target for the `as` coercion as `for<'a> fn(&'a (), &'a ())`,
|
||||||
|
// and not `for<'a, 'b>(&'a (), &'b ())`. We previously did the latter due to a bug in
|
||||||
|
// the code that records adjustments in HIR typeck.
|
||||||
|
|
||||||
|
fn foo<'a, 'b>(_: &'a (), _: &'b ()) {}
|
||||||
|
|
||||||
|
// EMIT_MIR build_correct_coerce.main.built.after.mir
|
||||||
|
fn main() {
|
||||||
|
let x = foo as for<'a> fn(&'a (), &'a ());
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user