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)
bors 2024-03-05
parent 223238d · parent bf14131 · commit 9169144
-rw-r--r--crates/hir/src/lib.rs12
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 =