Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/ast/node_ext.rs')
-rw-r--r--crates/syntax/src/ast/node_ext.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/syntax/src/ast/node_ext.rs b/crates/syntax/src/ast/node_ext.rs
index b872221bf7..800dd5f4ac 100644
--- a/crates/syntax/src/ast/node_ext.rs
+++ b/crates/syntax/src/ast/node_ext.rs
@@ -1096,6 +1096,16 @@ impl ast::MatchGuard {
}
}
+impl ast::MatchArm {
+ pub fn parent_match(&self) -> ast::MatchExpr {
+ self.syntax()
+ .parent()
+ .and_then(|it| it.parent())
+ .and_then(ast::MatchExpr::cast)
+ .expect("MatchArms are always nested in MatchExprs")
+ }
+}
+
impl From<ast::Item> for ast::AnyHasAttrs {
fn from(node: ast::Item) -> Self {
Self::new(node)