Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/tt/src/iter.rs')
-rw-r--r--crates/tt/src/iter.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/crates/tt/src/iter.rs b/crates/tt/src/iter.rs
index 175259a3e4..e96bed0319 100644
--- a/crates/tt/src/iter.rs
+++ b/crates/tt/src/iter.rs
@@ -2,6 +2,7 @@
//! macro definition into a list of patterns and templates.
use arrayvec::ArrayVec;
+use intern::sym;
use crate::{Ident, Leaf, Punct, Spacing, Subtree, TokenTree};
@@ -58,7 +59,7 @@ impl<'a, S: Copy> TtIter<'a, S> {
pub fn expect_ident(&mut self) -> Result<&'a Ident<S>, ()> {
match self.expect_leaf()? {
- Leaf::Ident(it) if it.text != "_" => Ok(it),
+ Leaf::Ident(it) if it.sym != sym::underscore => Ok(it),
_ => Err(()),
}
}
@@ -74,7 +75,7 @@ impl<'a, S: Copy> TtIter<'a, S> {
let it = self.expect_leaf()?;
match it {
Leaf::Literal(_) => Ok(it),
- Leaf::Ident(ident) if ident.text == "true" || ident.text == "false" => Ok(it),
+ Leaf::Ident(ident) if ident.sym == sym::true_ || ident.sym == sym::false_ => Ok(it),
_ => Err(()),
}
}
@@ -142,6 +143,10 @@ impl<'a, S: Copy> TtIter<'a, S> {
self.inner.as_slice().get(n)
}
+ pub fn next_span(&self) -> Option<S> {
+ Some(self.inner.as_slice().first()?.first_span())
+ }
+
pub fn as_slice(&self) -> &'a [TokenTree<S>] {
self.inner.as_slice()
}