diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index b414ef0d71..dbcef6fb1e 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -4730,17 +4730,6 @@ impl Type { Type { env: TraitEnvironment::empty(krate), ty } } - pub fn reference(inner: &Type, m: Mutability) -> Type { - inner.derived( - TyKind::Ref( - if m.is_mut() { hir_ty::Mutability::Mut } else { hir_ty::Mutability::Not }, - hir_ty::error_lifetime(), - inner.ty.clone(), - ) - .intern(Interner), - ) - } - fn new(db: &dyn HirDatabase, lexical_env: impl HasResolver, ty: Ty) -> Type { let resolver = lexical_env.resolver(db.upcast()); let environment = resolver diff --git a/crates/hir/src/term_search.rs b/crates/hir/src/term_search.rs index 6f84513708..af72179305 100644 --- a/crates/hir/src/term_search.rs +++ b/crates/hir/src/term_search.rs @@ -145,7 +145,7 @@ impl LookupTable { self.data .iter() .find(|(t, _)| { - Type::reference(t, Mutability::Shared).could_unify_with_deeply(db, ty) + t.add_reference(Mutability::Shared).could_unify_with_deeply(db, ty) }) .map(|(t, it)| { it.exprs(t) diff --git a/crates/ide-assists/src/utils.rs b/crates/ide-assists/src/utils.rs index 78ff441791..c1332d99bf 100644 --- a/crates/ide-assists/src/utils.rs +++ b/crates/ide-assists/src/utils.rs @@ -793,8 +793,8 @@ pub(crate) fn convert_reference_type( } fn could_deref_to_target(ty: &hir::Type, target: &hir::Type, db: &dyn HirDatabase) -> bool { - let ty_ref = hir::Type::reference(ty, hir::Mutability::Shared); - let target_ref = hir::Type::reference(target, hir::Mutability::Shared); + let ty_ref = ty.add_reference(hir::Mutability::Shared); + let target_ref = target.add_reference(hir::Mutability::Shared); ty_ref.could_coerce_to(db, &target_ref) } diff --git a/crates/ide-diagnostics/src/handlers/type_mismatch.rs b/crates/ide-diagnostics/src/handlers/type_mismatch.rs index 7bc1be3822..4080b5f12e 100644 --- a/crates/ide-diagnostics/src/handlers/type_mismatch.rs +++ b/crates/ide-diagnostics/src/handlers/type_mismatch.rs @@ -1,5 +1,5 @@ use either::Either; -use hir::{db::ExpandDatabase, CallableKind, ClosureStyle, HirDisplay, HirFileIdExt, InFile, Type}; +use hir::{db::ExpandDatabase, CallableKind, ClosureStyle, HirDisplay, HirFileIdExt, InFile}; use ide_db::{ famous_defs::FamousDefs, source_change::{SourceChange, SourceChangeBuilder}, @@ -88,7 +88,7 @@ fn add_reference( let range = ctx.sema.diagnostics_display_range((*expr_ptr).map(|it| it.into())); let (_, mutability) = d.expected.as_reference()?; - let actual_with_ref = Type::reference(&d.actual, mutability); + let actual_with_ref = d.actual.add_reference(mutability); if !actual_with_ref.could_coerce_to(ctx.sema.db, &d.expected) { return None; }