diff options
| -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() => { |
