From 7afd84febc76a75a3ed1be75c57ff35d7b8b3de6 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 11 Aug 2018 12:28:59 +0300 Subject: visitor --- crates/libsyntax2/src/ast/mod.rs | 9 +++++++++ 1 file changed, 9 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 7d3cdb93d..56bc099fe 100644 --- a/crates/libsyntax2/src/ast/mod.rs +++ b/crates/libsyntax2/src/ast/mod.rs @@ -12,6 +12,15 @@ pub trait AstNode: Sized { fn syntax(&self) -> &SyntaxNode; } +pub trait NameOwner: AstNode { + fn name(&self) -> Option> { + self.syntax() + .children() + .filter_map(Name::cast) + .next() + } +} + impl File> { pub fn parse(text: &str) -> Self { File::cast(::parse(text)).unwrap() -- cgit v1.2.3