Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/mir/eval.rs')
| -rw-r--r-- | crates/hir-ty/src/mir/eval.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crates/hir-ty/src/mir/eval.rs b/crates/hir-ty/src/mir/eval.rs index f8bf3cc3ae..f0e2218cde 100644 --- a/crates/hir-ty/src/mir/eval.rs +++ b/crates/hir-ty/src/mir/eval.rs @@ -741,11 +741,11 @@ impl<'a, 'db: 'a> Evaluator<'a, 'db> { fn projected_ty(&self, ty: PlaceTy<'db>, proj: PlaceElem) -> PlaceTy<'db> { let pair = (ty, proj); if let Some(r) = self.projected_ty_cache.borrow().get(&pair) { - return r.clone(); + return *r; } let (ty, proj) = pair; - let r = ty.clone().projection_ty(&self.infcx, &proj, self.param_env.param_env); - self.projected_ty_cache.borrow_mut().insert((ty, proj), r.clone()); + let r = ty.projection_ty(&self.infcx, &proj, self.param_env.param_env); + self.projected_ty_cache.borrow_mut().insert((ty, proj), r); r } @@ -852,7 +852,6 @@ impl<'a, 'db: 'a> Evaluator<'a, 'db> { ProjectionElem::Downcast(_) => { // no runtime effect } - ProjectionElem::OpaqueCast(_) => not_supported!("opaque cast"), } } Ok((addr, ty.ty, metadata)) |