Merge pull request #19049 from ChayimFriedman2/add-reference-ty

minor: Remove duplicate method from `hir::Type`
This commit is contained in:
Lukas Wirth 2025-01-27 17:40:09 +00:00 committed by GitHub
commit 8384bc5c55
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 5 additions and 16 deletions

View File

@ -4730,17 +4730,6 @@ impl Type {
Type { env: TraitEnvironment::empty(krate), ty } 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 { fn new(db: &dyn HirDatabase, lexical_env: impl HasResolver, ty: Ty) -> Type {
let resolver = lexical_env.resolver(db.upcast()); let resolver = lexical_env.resolver(db.upcast());
let environment = resolver let environment = resolver

View File

@ -145,7 +145,7 @@ impl LookupTable {
self.data self.data
.iter() .iter()
.find(|(t, _)| { .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)| { .map(|(t, it)| {
it.exprs(t) it.exprs(t)

View File

@ -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 { 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 ty_ref = ty.add_reference(hir::Mutability::Shared);
let target_ref = hir::Type::reference(target, hir::Mutability::Shared); let target_ref = target.add_reference(hir::Mutability::Shared);
ty_ref.could_coerce_to(db, &target_ref) ty_ref.could_coerce_to(db, &target_ref)
} }

View File

@ -1,5 +1,5 @@
use either::Either; 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::{ use ide_db::{
famous_defs::FamousDefs, famous_defs::FamousDefs,
source_change::{SourceChange, SourceChangeBuilder}, 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 range = ctx.sema.diagnostics_display_range((*expr_ptr).map(|it| it.into()));
let (_, mutability) = d.expected.as_reference()?; 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) { if !actual_with_ref.could_coerce_to(ctx.sema.db, &d.expected) {
return None; return None;
} }