From e3a5c15d18492f5b9f0c606f988b914918d29ef5 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 7 Apr 2021 13:06:48 +0200 Subject: Move Ty::builtin_deref --- crates/hir_ty/src/autoderef.rs | 10 +++++++++- crates/hir_ty/src/lib.rs | 8 -------- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'crates') diff --git a/crates/hir_ty/src/autoderef.rs b/crates/hir_ty/src/autoderef.rs index 80e192a57..f8e9db9ae 100644 --- a/crates/hir_ty/src/autoderef.rs +++ b/crates/hir_ty/src/autoderef.rs @@ -35,13 +35,21 @@ pub(crate) fn deref( krate: CrateId, ty: InEnvironment<&Canonical>, ) -> Option> { - if let Some(derefed) = ty.goal.value.builtin_deref() { + if let Some(derefed) = builtin_deref(&ty.goal.value) { Some(Canonical { value: derefed, binders: ty.goal.binders.clone() }) } else { deref_by_trait(db, krate, ty) } } +fn builtin_deref(ty: &Ty) -> Option { + match ty.kind(&Interner) { + TyKind::Ref(.., ty) => Some(ty.clone()), + TyKind::Raw(.., ty) => Some(ty.clone()), + _ => None, + } +} + fn deref_by_trait( db: &dyn HirDatabase, krate: CrateId, diff --git a/crates/hir_ty/src/lib.rs b/crates/hir_ty/src/lib.rs index 5c83a508d..ae3987752 100644 --- a/crates/hir_ty/src/lib.rs +++ b/crates/hir_ty/src/lib.rs @@ -199,14 +199,6 @@ impl Ty { } } - fn builtin_deref(&self) -> Option { - match self.kind(&Interner) { - TyKind::Ref(.., ty) => Some(ty.clone()), - TyKind::Raw(.., ty) => Some(ty.clone()), - _ => None, - } - } - /// Returns the type parameters of this type if it has some (i.e. is an ADT /// or function); so if `self` is `Option`, this returns the `u32`. pub fn substs(&self) -> Option<&Substitution> { -- cgit v1.2.3