aboutsummaryrefslogtreecommitdiff
path: root/crates/mbe/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/mbe/src/lib.rs')
-rw-r--r--crates/mbe/src/lib.rs20
1 files changed, 5 insertions, 15 deletions
diff --git a/crates/mbe/src/lib.rs b/crates/mbe/src/lib.rs
index 6b4a4eb53..33b85e23d 100644
--- a/crates/mbe/src/lib.rs
+++ b/crates/mbe/src/lib.rs
@@ -17,11 +17,10 @@ mod benchmark;
17 17
18use std::fmt; 18use std::fmt;
19 19
20use test_utils::mark;
21pub use tt::{Delimiter, DelimiterKind, Punct}; 20pub use tt::{Delimiter, DelimiterKind, Punct};
22 21
23use crate::{ 22use crate::{
24 parser::{parse_pattern, parse_template, Op}, 23 parser::{parse_pattern, parse_template, MetaTemplate, Op},
25 tt_iter::TtIter, 24 tt_iter::TtIter,
26}; 25};
27 26
@@ -65,8 +64,8 @@ impl fmt::Display for ExpandError {
65} 64}
66 65
67pub use crate::syntax_bridge::{ 66pub use crate::syntax_bridge::{
68 ast_to_token_tree, parse_to_token_tree, syntax_node_to_token_tree, token_tree_to_syntax_node, 67 ast_to_token_tree, parse_exprs_with_sep, parse_to_token_tree, syntax_node_to_token_tree,
69 TokenMap, 68 token_tree_to_syntax_node, TokenMap,
70}; 69};
71 70
72/// This struct contains AST for a single `macro_rules` definition. What might 71/// This struct contains AST for a single `macro_rules` definition. What might
@@ -94,15 +93,6 @@ struct Rule {
94 rhs: MetaTemplate, 93 rhs: MetaTemplate,
95} 94}
96 95
97#[derive(Clone, Debug, PartialEq, Eq)]
98struct MetaTemplate(Vec<Op>);
99
100impl<'a> MetaTemplate {
101 fn iter(&self) -> impl Iterator<Item = &Op> {
102 self.0.iter()
103 }
104}
105
106#[derive(Clone, Copy, Debug, PartialEq, Eq)] 96#[derive(Clone, Copy, Debug, PartialEq, Eq)]
107struct Shift(u32); 97struct Shift(u32);
108 98
@@ -226,7 +216,7 @@ impl MacroDef {
226 let mut rules = Vec::new(); 216 let mut rules = Vec::new();
227 217
228 if Some(tt::DelimiterKind::Brace) == tt.delimiter_kind() { 218 if Some(tt::DelimiterKind::Brace) == tt.delimiter_kind() {
229 mark::hit!(parse_macro_def_rules); 219 cov_mark::hit!(parse_macro_def_rules);
230 while src.len() > 0 { 220 while src.len() > 0 {
231 let rule = Rule::parse(&mut src, true)?; 221 let rule = Rule::parse(&mut src, true)?;
232 rules.push(rule); 222 rules.push(rule);
@@ -238,7 +228,7 @@ impl MacroDef {
238 } 228 }
239 } 229 }
240 } else { 230 } else {
241 mark::hit!(parse_macro_def_simple); 231 cov_mark::hit!(parse_macro_def_simple);
242 let rule = Rule::parse(&mut src, false)?; 232 let rule = Rule::parse(&mut src, false)?;
243 if src.len() != 0 { 233 if src.len() != 0 {
244 return Err(ParseError::Expected("remain tokens in macro def".to_string())); 234 return Err(ParseError::Expected("remain tokens in macro def".to_string()));