diff --git a/examples/s_expressions.rs b/examples/s_expressions.rs index 20363ac..97813c5 100644 --- a/examples/s_expressions.rs +++ b/examples/s_expressions.rs @@ -334,7 +334,8 @@ impl Atom { Some(op) } fn text(&self) -> &str { - match self.0.green().children().next() { + let green = self.0.green(); + match ArcBorrow::downgrade(green).children().next() { Some(rowan::NodeOrToken::Token(token)) => ArcBorrow::downgrade(token).text(), _ => unreachable!(), } diff --git a/src/api.rs b/src/api.rs index 3a38c66..84df679 100644 --- a/src/api.rs +++ b/src/api.rs @@ -165,8 +165,8 @@ impl SyntaxNode { self.raw.text() } - pub fn green(&self) -> &GreenNode { - ArcBorrow::downgrade(self.raw.green()) + pub fn green(&self) -> ArcBorrow<'_, GreenNode> { + self.raw.green() } pub fn parent(&self) -> Option> {