From dd496223f50232fe98312ee8edc89eb4b5ee3d85 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 15 Dec 2020 19:23:51 +0100 Subject: Node-ify lifetimes --- crates/mbe/src/mbe_expander/matcher.rs | 2 +- crates/mbe/src/subtree_source.rs | 8 ++++++-- crates/mbe/src/syntax_bridge.rs | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'crates/mbe') diff --git a/crates/mbe/src/mbe_expander/matcher.rs b/crates/mbe/src/mbe_expander/matcher.rs index 93ee77908..7aeef7be5 100644 --- a/crates/mbe/src/mbe_expander/matcher.rs +++ b/crates/mbe/src/mbe_expander/matcher.rs @@ -295,7 +295,7 @@ impl<'a> TtIter<'a> { impl<'a> TreeSink for OffsetTokenSink<'a> { fn token(&mut self, kind: SyntaxKind, mut n_tokens: u8) { - if kind == SyntaxKind::LIFETIME { + if kind == SyntaxKind::LIFETIME_IDENT { n_tokens = 2; } for _ in 0..n_tokens { diff --git a/crates/mbe/src/subtree_source.rs b/crates/mbe/src/subtree_source.rs index ccc56c479..d10d4b70e 100644 --- a/crates/mbe/src/subtree_source.rs +++ b/crates/mbe/src/subtree_source.rs @@ -84,7 +84,11 @@ impl<'a> SubtreeTokenSource<'a> { } if let Some((curr, text)) = is_lifetime(cursor) { - cached.push(Some(TtToken { kind: LIFETIME, is_joint_to_next: false, text })); + cached.push(Some(TtToken { + kind: LIFETIME_IDENT, + is_joint_to_next: false, + text, + })); self.cached_cursor.set(curr); continue; } @@ -172,7 +176,7 @@ fn convert_ident(ident: &tt::Ident) -> TtToken { let kind = match ident.text.as_ref() { "true" => T![true], "false" => T![false], - i if i.starts_with('\'') => LIFETIME, + i if i.starts_with('\'') => LIFETIME_IDENT, _ => SyntaxKind::from_keyword(ident.text.as_str()).unwrap_or(IDENT), }; diff --git a/crates/mbe/src/syntax_bridge.rs b/crates/mbe/src/syntax_bridge.rs index d987b2500..265c0d63d 100644 --- a/crates/mbe/src/syntax_bridge.rs +++ b/crates/mbe/src/syntax_bridge.rs @@ -380,7 +380,7 @@ trait TokenConvertor { IDENT => make_leaf!(Ident), k if k.is_keyword() => make_leaf!(Ident), k if k.is_literal() => make_leaf!(Literal), - LIFETIME => { + LIFETIME_IDENT => { let char_unit = TextSize::of('\''); let r = TextRange::at(range.start(), char_unit); let apostrophe = tt::Leaf::from(tt::Punct { @@ -620,7 +620,7 @@ impl<'a> TreeSink for TtTreeSink<'a> { self.cursor = self.cursor.bump_subtree(); return; } - if kind == LIFETIME { + if kind == LIFETIME_IDENT { n_tokens = 2; } -- cgit v1.2.3