Skip to content

Commit 9576e30

Browse files
committed
also normalize_erasing_regions
1 parent 93e3552 commit 9576e30

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/librustc_mir/transform/validate.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,13 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
8989
// Equal types, all is good.
9090
return true;
9191
}
92+
// Normalize projections and things like that.
93+
let src = self.tcx.normalize_erasing_regions(self.param_env, src);
94+
let dest = self.tcx.normalize_erasing_regions(self.param_env, dest);
95+
// It's worth checking equality again.
96+
if src == dest {
97+
return true;
98+
}
9299

93100
// Type-changing assignments can happen for (at least) two reasons:
94101
// 1. `&mut T` -> `&T` gets optimized from a reborrow to a mere assignment.

0 commit comments

Comments
 (0)