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.rs30
1 files changed, 11 insertions, 19 deletions
diff --git a/crates/syntax/src/ast/node_ext.rs b/crates/syntax/src/ast/node_ext.rs
index 00aeb1dfeb..43bca6ed9e 100644
--- a/crates/syntax/src/ast/node_ext.rs
+++ b/crates/syntax/src/ast/node_ext.rs
@@ -11,7 +11,7 @@ use rowan::{GreenNodeData, GreenTokenData};
use smallvec::{SmallVec, smallvec};
use crate::{
- NodeOrToken, SmolStr, SyntaxElement, SyntaxElementChildren, SyntaxToken, T, TokenText,
+ NodeOrToken, SmolStr, SyntaxElement, SyntaxElementChildren, SyntaxToken, T,
ast::{
self, AstNode, AstToken, HasAttrs, HasGenericArgs, HasGenericParams, HasName,
HasTypeBounds, SyntaxNode, support,
@@ -22,30 +22,22 @@ use crate::{
use super::{GenericParam, RangeItem, RangeOp};
impl ast::Lifetime {
- pub fn text(&self) -> TokenText<'_> {
+ pub fn text(&self) -> &str {
text_of_first_token(self.syntax())
}
}
impl ast::Name {
- pub fn text(&self) -> TokenText<'_> {
+ pub fn text(&self) -> &str {
text_of_first_token(self.syntax())
}
-
- pub fn text_non_mutable(&self) -> &str {
- first_token(self.syntax().green()).text()
- }
}
impl ast::NameRef {
- pub fn text(&self) -> TokenText<'_> {
+ pub fn text(&self) -> &str {
text_of_first_token(self.syntax())
}
- pub fn text_non_mutable(&self) -> &str {
- first_token(self.syntax().green()).text()
- }
-
pub fn as_tuple_field(&self) -> Option<usize> {
self.text().parse().ok()
}
@@ -55,12 +47,12 @@ impl ast::NameRef {
}
}
-fn first_token(green_ref: &GreenNodeData) -> &GreenTokenData {
- green_ref.children().next().and_then(NodeOrToken::into_token).unwrap()
-}
+fn text_of_first_token(node: &SyntaxNode) -> &str {
+ fn first_token(green_ref: &GreenNodeData) -> &GreenTokenData {
+ green_ref.children().next().and_then(NodeOrToken::into_token).unwrap()
+ }
-fn text_of_first_token(node: &SyntaxNode) -> TokenText<'_> {
- TokenText::borrowed(first_token(node.green()).text())
+ first_token(node.green()).text()
}
fn into_comma(it: NodeOrToken<SyntaxNode, SyntaxToken>) -> Option<SyntaxToken> {
@@ -604,7 +596,7 @@ impl NameLike {
_ => None,
}
}
- pub fn text(&self) -> TokenText<'_> {
+ pub fn text(&self) -> &str {
match self {
NameLike::NameRef(name_ref) => name_ref.text(),
NameLike::Name(name) => name.text(),
@@ -676,7 +668,7 @@ impl ast::AstNode for NameOrNameRef {
}
impl NameOrNameRef {
- pub fn text(&self) -> TokenText<'_> {
+ pub fn text(&self) -> &str {
match self {
NameOrNameRef::Name(name) => name.text(),
NameOrNameRef::NameRef(name_ref) => name_ref.text(),