Rollup merge of #73225 - tmandry:issue-73050, r=oli-obk
Allow inference regions when relating consts As first noticed by @eddyb, `super_relate_consts` doesn't need to check for inference vars since `eval` does it already (and handles lifetimes correctly by erasing them). Fixes #73050 r? @oli-obk
This commit is contained in:
commit
6f9d453510
@ -508,16 +508,7 @@ pub fn super_relate_consts<R: TypeRelation<'tcx>>(
|
||||
debug!("{}.super_relate_consts(a = {:?}, b = {:?})", relation.tag(), a, b);
|
||||
let tcx = relation.tcx();
|
||||
|
||||
let eagerly_eval = |x: &'tcx ty::Const<'tcx>| {
|
||||
// FIXME(eddyb) this doesn't account for lifetime inference variables
|
||||
// being erased by `eval`, *nor* for the polymorphic aspect of `eval`.
|
||||
// That is, we could always use `eval` and it will just return the
|
||||
// old value back if it doesn't succeed.
|
||||
if !x.val.needs_infer() {
|
||||
return x.eval(tcx, relation.param_env()).val;
|
||||
}
|
||||
x.val
|
||||
};
|
||||
let eagerly_eval = |x: &'tcx ty::Const<'tcx>| x.eval(tcx, relation.param_env()).val;
|
||||
|
||||
// FIXME(eddyb) doesn't look like everything below checks that `a.ty == b.ty`.
|
||||
// We could probably always assert it early, as `const` generic parameters
|
||||
|
12
src/test/ui/async-await/issue-73050.rs
Normal file
12
src/test/ui/async-await/issue-73050.rs
Normal file
@ -0,0 +1,12 @@
|
||||
// check-pass
|
||||
// edition:2018
|
||||
|
||||
#[allow(unused)]
|
||||
async fn foo<'a>() {
|
||||
let _data = &mut [0u8; { 1 + 4 }];
|
||||
bar().await
|
||||
}
|
||||
|
||||
async fn bar() {}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user