From 69714d36e6617800f3edea174f5d6f76c985ad4c Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Mon, 5 Apr 2021 17:13:50 +0200 Subject: Hide Binders internals more --- crates/hir/src/lib.rs | 4 ++-- crates/hir/src/semantics.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'crates/hir') diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index b14c9a675..ccfe348a4 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -702,7 +702,7 @@ impl_from!(Struct, Union, Enum for Adt); impl Adt { pub fn has_non_default_type_params(self, db: &dyn HirDatabase) -> bool { let subst = db.generic_defaults(self.into()); - subst.iter().any(|ty| ty.value.is_unknown()) + subst.iter().any(|ty| ty.skip_binders().is_unknown()) } /// Turns this ADT into a type. Any type parameters of the ADT will be @@ -1089,7 +1089,7 @@ pub struct TypeAlias { impl TypeAlias { pub fn has_non_default_type_params(self, db: &dyn HirDatabase) -> bool { let subst = db.generic_defaults(self.id.into()); - subst.iter().any(|ty| ty.value.is_unknown()) + subst.iter().any(|ty| ty.skip_binders().is_unknown()) } pub fn module(self, db: &dyn HirDatabase) -> Module { diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs index 3bf722d2a..7955bf0b5 100644 --- a/crates/hir/src/semantics.rs +++ b/crates/hir/src/semantics.rs @@ -494,9 +494,9 @@ impl<'db> SemanticsImpl<'db> { fn resolve_method_call_as_callable(&self, call: &ast::MethodCallExpr) -> Option { // FIXME: this erases Substs let func = self.resolve_method_call(call)?; - let ty = self.db.value_ty(func.into()); + let (ty, _) = self.db.value_ty(func.into()).into_value_and_skipped_binders(); let resolver = self.analyze(call.syntax()).resolver; - let ty = Type::new_with_resolver(self.db, &resolver, ty.value)?; + let ty = Type::new_with_resolver(self.db, &resolver, ty)?; let mut res = ty.as_callable(self.db)?; res.is_bound_method = true; Some(res) -- cgit v1.2.3