Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/chalk_ext.rs')
-rw-r--r--crates/hir-ty/src/chalk_ext.rs25
1 files changed, 10 insertions, 15 deletions
diff --git a/crates/hir-ty/src/chalk_ext.rs b/crates/hir-ty/src/chalk_ext.rs
index b8c1e0e52f..0b304014db 100644
--- a/crates/hir-ty/src/chalk_ext.rs
+++ b/crates/hir-ty/src/chalk_ext.rs
@@ -191,7 +191,7 @@ impl TyExt for Ty {
match *self.kind(Interner) {
TyKind::Adt(AdtId(adt), ..) => Some(adt.into()),
TyKind::FnDef(callable, ..) => Some(GenericDefId::from_callable(
- db.upcast(),
+ db,
db.lookup_intern_callable_def(callable.into()),
)),
TyKind::AssociatedType(type_alias, ..) => Some(from_assoc_type_id(type_alias).into()),
@@ -250,7 +250,7 @@ impl TyExt for Ty {
TyKind::OpaqueType(opaque_ty_id, subst) => {
match db.lookup_intern_impl_trait_id((*opaque_ty_id).into()) {
ImplTraitId::AsyncBlockTypeImplTrait(def, _expr) => {
- let krate = def.module(db.upcast()).krate();
+ let krate = def.module(db).krate();
if let Some(future_trait) =
db.lang_item(krate, LangItem::Future).and_then(|item| item.as_trait())
{
@@ -348,17 +348,12 @@ impl TyExt for Ty {
fn associated_type_parent_trait(&self, db: &dyn HirDatabase) -> Option<TraitId> {
match self.kind(Interner) {
- TyKind::AssociatedType(id, ..) => {
- match from_assoc_type_id(*id).lookup(db.upcast()).container {
- ItemContainerId::TraitId(trait_id) => Some(trait_id),
- _ => None,
- }
- }
+ TyKind::AssociatedType(id, ..) => match from_assoc_type_id(*id).lookup(db).container {
+ ItemContainerId::TraitId(trait_id) => Some(trait_id),
+ _ => None,
+ },
TyKind::Alias(AliasTy::Projection(projection_ty)) => {
- match from_assoc_type_id(projection_ty.associated_ty_id)
- .lookup(db.upcast())
- .container
- {
+ match from_assoc_type_id(projection_ty.associated_ty_id).lookup(db).container {
ItemContainerId::TraitId(trait_id) => Some(trait_id),
_ => None,
}
@@ -368,7 +363,7 @@ impl TyExt for Ty {
}
fn is_copy(self, db: &dyn HirDatabase, owner: DefWithBodyId) -> bool {
- let crate_id = owner.module(db.upcast()).krate();
+ let crate_id = owner.module(db).krate();
let Some(copy_trait) = db.lang_item(crate_id, LangItem::Copy).and_then(|it| it.as_trait())
else {
return false;
@@ -422,7 +417,7 @@ pub trait ProjectionTyExt {
impl ProjectionTyExt for ProjectionTy {
fn trait_ref(&self, db: &dyn HirDatabase) -> TraitRef {
// FIXME: something like `Split` trait from chalk-solve might be nice.
- let generics = generics(db.upcast(), from_assoc_type_id(self.associated_ty_id).into());
+ let generics = generics(db, from_assoc_type_id(self.associated_ty_id).into());
let substitution = Substitution::from_iter(
Interner,
self.substitution.iter(Interner).skip(generics.len_self()),
@@ -431,7 +426,7 @@ impl ProjectionTyExt for ProjectionTy {
}
fn trait_(&self, db: &dyn HirDatabase) -> TraitId {
- match from_assoc_type_id(self.associated_ty_id).lookup(db.upcast()).container {
+ match from_assoc_type_id(self.associated_ty_id).lookup(db).container {
ItemContainerId::TraitId(it) => it,
_ => panic!("projection ty without parent trait"),
}