From 8e3bec11ebd1fce78701670cf9189b5a9d0d68f8 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 22 Aug 2018 16:46:42 +0300 Subject: TypeParamList Owner --- crates/libsyntax2/src/ast/mod.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'crates/libsyntax2/src/ast/mod.rs') diff --git a/crates/libsyntax2/src/ast/mod.rs b/crates/libsyntax2/src/ast/mod.rs index 5b9a07db4..1784b871e 100644 --- a/crates/libsyntax2/src/ast/mod.rs +++ b/crates/libsyntax2/src/ast/mod.rs @@ -24,6 +24,22 @@ pub trait NameOwner<'a>: AstNode<'a> { } } +pub trait TypeParamsOwner<'a>: AstNode<'a> { + fn type_param_list(self) -> Option> { + self.syntax() + .children() + .filter_map(TypeParamList::cast) + .next() + } + + fn where_clause(self) -> Option> { + self.syntax() + .children() + .filter_map(WhereClause::cast) + .next() + } +} + pub trait AttrsOwner<'a>: AstNode<'a> { fn attrs(&self) -> Box> + 'a> { let it = self.syntax().children() -- cgit v1.2.3