Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/lib.rs')
| -rw-r--r-- | crates/hir/src/lib.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index 96424d087e..86124b68b5 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -3307,6 +3307,15 @@ impl Type { let tys = hir_ty::replace_errors_with_variables(&(self.ty.clone(), to.ty.clone())); hir_ty::could_coerce(db, self.env.clone(), &tys) } + + pub fn as_type_param(&self, db: &dyn HirDatabase) -> Option<TypeParam> { + match self.ty.kind(Interner) { + TyKind::Placeholder(p) => Some(TypeParam { + id: TypeParamId::from_unchecked(hir_ty::from_placeholder_idx(db, *p)), + }), + _ => None, + } + } } #[derive(Debug)] |