Unnamed repository; edit this file 'description' to name the repository.
Auto merge of #16763 - regexident:param-accessors, r=Veykril
Add `fn index()` and `fn parent_fn()` accessors for `hir::Param`/`hir::SelfParam`
(the PR is motivated by an outside use of the `ra_ap_hir` crate that would benefit from being able to access a `hir::Param`'s/`hir::SelfParam`'s index and parent function)
| -rw-r--r-- | crates/hir/src/lib.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index 4872c47c31..5eed7ecd5b 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -2108,6 +2108,14 @@ pub struct Param { } impl Param { + pub fn parent_fn(&self) -> Function { + self.func + } + + pub fn index(&self) -> usize { + self.idx + } + pub fn ty(&self) -> &Type { &self.ty } @@ -2172,6 +2180,10 @@ impl SelfParam { .map(|value| InFile { file_id, value }) } + pub fn parent_fn(&self) -> Function { + Function::from(self.func) + } + pub fn ty(&self, db: &dyn HirDatabase) -> Type { let substs = TyBuilder::placeholder_subst(db, self.func); let callable_sig = |