aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_mbe/src/subtree_source.rs
diff options
context:
space:
mode:
authorEdwin Cheng <[email protected]>2020-04-18 20:24:17 +0100
committerEdwin Cheng <[email protected]>2020-04-18 20:24:17 +0100
commita1b5cf81ebcac15299cc612b49023bb418507027 (patch)
treef1e34af80f87a4628731cbb31c58c3784333e877 /crates/ra_mbe/src/subtree_source.rs
parentb949500126f6bd3723d22541adb2f7c8aae206a4 (diff)
Convert bool to ident instead of literal in mbe
Diffstat (limited to 'crates/ra_mbe/src/subtree_source.rs')
-rw-r--r--crates/ra_mbe/src/subtree_source.rs15
1 files changed, 6 insertions, 9 deletions
diff --git a/crates/ra_mbe/src/subtree_source.rs b/crates/ra_mbe/src/subtree_source.rs
index 46791efaa..d7866452d 100644
--- a/crates/ra_mbe/src/subtree_source.rs
+++ b/crates/ra_mbe/src/subtree_source.rs
@@ -158,20 +158,17 @@ fn convert_literal(l: &tt::Literal) -> TtToken {
158 let kind = lex_single_syntax_kind(&l.text) 158 let kind = lex_single_syntax_kind(&l.text)
159 .map(|(kind, _error)| kind) 159 .map(|(kind, _error)| kind)
160 .filter(|kind| kind.is_literal()) 160 .filter(|kind| kind.is_literal())
161 .unwrap_or_else(|| match l.text.as_ref() { 161 .unwrap_or_else(|| panic!("Fail to convert given literal {:#?}", &l));
162 "true" => T![true],
163 "false" => T![false],
164 _ => panic!("Fail to convert given literal {:#?}", &l),
165 });
166 162
167 TtToken { kind, is_joint_to_next: false, text: l.text.clone() } 163 TtToken { kind, is_joint_to_next: false, text: l.text.clone() }
168} 164}
169 165
170fn convert_ident(ident: &tt::Ident) -> TtToken { 166fn convert_ident(ident: &tt::Ident) -> TtToken {
171 let kind = if ident.text.starts_with('\'') { 167 let kind = match ident.text.as_ref() {
172 LIFETIME 168 "true" => T![true],
173 } else { 169 "false" => T![false],
174 SyntaxKind::from_keyword(ident.text.as_str()).unwrap_or(IDENT) 170 i if i.starts_with('\'') => LIFETIME,
171 _ => SyntaxKind::from_keyword(ident.text.as_str()).unwrap_or(IDENT),
175 }; 172 };
176 173
177 TtToken { kind, is_joint_to_next: false, text: ident.text.clone() } 174 TtToken { kind, is_joint_to_next: false, text: ident.text.clone() }