diff options
| author | Jonas Schievink <jonasschievink@gmail.com> | 2020-01-28 00:52:21 +0100 |
|---|---|---|
| committer | Jonas Schievink <jonasschievink@gmail.com> | 2020-01-28 17:28:19 +0100 |
| commit | 474d0e33717062696be4c9799ce9822bf7b56fc2 (patch) | |
| tree | 661f6a6b3bffecaab27b1f835d985c790d61c3e4 | |
| parent | b181835a6bacfa449f55d46764a10e25d1c471dc (diff) | |
| download | rust-474d0e33717062696be4c9799ce9822bf7b56fc2.tar.gz rust-474d0e33717062696be4c9799ce9822bf7b56fc2.zip | |
Add an early-exit to `QueryNormalizer::fold_ty`
| -rw-r--r-- | src/librustc/traits/query/normalize.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/librustc/traits/query/normalize.rs b/src/librustc/traits/query/normalize.rs index 8f23f98a2a4..20d7b556377 100644 --- a/src/librustc/traits/query/normalize.rs +++ b/src/librustc/traits/query/normalize.rs @@ -81,6 +81,10 @@ impl<'cx, 'tcx> TypeFolder<'tcx> for QueryNormalizer<'cx, 'tcx> { } fn fold_ty(&mut self, ty: Ty<'tcx>) -> Ty<'tcx> { + if !ty.has_projections() { + return ty; + } + let ty = ty.super_fold_with(self); match ty.kind { ty::Opaque(def_id, substs) if !substs.has_escaping_bound_vars() => { |
