1
Fork 0

wf correctly shallow_resolve consts

This commit is contained in:
lcnr 2022-08-13 13:49:11 +02:00
parent 75b7e52e92
commit 1ec2b9bce8

View file

@ -31,9 +31,9 @@ pub fn obligations<'a, 'tcx>(
if resolved_ty == ty { if resolved_ty == ty {
// No progress, bail out to prevent "livelock". // No progress, bail out to prevent "livelock".
return None; return None;
} else {
resolved_ty
} }
resolved_ty
} }
_ => ty, _ => ty,
} }
@ -41,16 +41,14 @@ pub fn obligations<'a, 'tcx>(
} }
GenericArgKind::Const(ct) => { GenericArgKind::Const(ct) => {
match ct.kind() { match ct.kind() {
ty::ConstKind::Infer(infer) => { ty::ConstKind::Infer(_) => {
let resolved = infcx.shallow_resolve(infer); let resolved = infcx.shallow_resolve(ct);
if resolved == infer { if resolved == ct {
// No progress. // No progress.
return None; return None;
} else {
resolved
} }
infcx
.tcx
.mk_const(ty::ConstS { kind: ty::ConstKind::Infer(resolved), ty: ct.ty() })
} }
_ => ct, _ => ct,
} }