diff options
| author | Matthew Jasper <mjjasper1@gmail.com> | 2021-02-12 22:44:43 +0000 |
|---|---|---|
| committer | Matthew Jasper <mjjasper1@gmail.com> | 2021-02-13 19:30:07 +0000 |
| commit | dfee89f75545b4fadc559eee324afc8bb0bdc1be (patch) | |
| tree | 486a81d0f0a7613b0c65f3fac233b4d0ed00bcf3 /compiler/rustc_traits | |
| parent | 79f6f11816cbef2bba6f5da6d4a4f0aa10535b88 (diff) | |
Make ProjectionTy::trait_ref truncate substs again
Also make sure that type arguments of associated types are printed in some error messages.
Diffstat (limited to 'compiler/rustc_traits')
| -rw-r--r-- | compiler/rustc_traits/src/chalk/lowering.rs | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/compiler/rustc_traits/src/chalk/lowering.rs b/compiler/rustc_traits/src/chalk/lowering.rs index 7d3589c4b6b..fdf5f697e61 100644 --- a/compiler/rustc_traits/src/chalk/lowering.rs +++ b/compiler/rustc_traits/src/chalk/lowering.rs @@ -779,14 +779,11 @@ impl<'tcx> LowerInto<'tcx, chalk_solve::rust_ir::AliasEqBound<RustInterner<'tcx> self, interner: &RustInterner<'tcx>, ) -> chalk_solve::rust_ir::AliasEqBound<RustInterner<'tcx>> { - let trait_ref = self.projection_ty.trait_ref(interner.tcx); + let (trait_ref, own_substs) = self.projection_ty.trait_ref_and_own_substs(interner.tcx); chalk_solve::rust_ir::AliasEqBound { trait_bound: trait_ref.lower_into(interner), associated_ty_id: chalk_ir::AssocTypeId(self.projection_ty.item_def_id), - parameters: self.projection_ty.substs[trait_ref.substs.len()..] - .iter() - .map(|arg| arg.lower_into(interner)) - .collect(), + parameters: own_substs.iter().map(|arg| arg.lower_into(interner)).collect(), value: self.ty.lower_into(interner), } } |
