mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 11:31:15 +00:00
Merge pull request #19049 from ChayimFriedman2/add-reference-ty
minor: Remove duplicate method from `hir::Type`
This commit is contained in:
commit
8384bc5c55
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user