diff options
Diffstat (limited to 'crates/mbe/src/lib.rs')
-rw-r--r-- | crates/mbe/src/lib.rs | 20 |
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 | ||
18 | use std::fmt; | 18 | use std::fmt; |
19 | 19 | ||
20 | use test_utils::mark; | ||
21 | pub use tt::{Delimiter, DelimiterKind, Punct}; | 20 | pub use tt::{Delimiter, DelimiterKind, Punct}; |
22 | 21 | ||
23 | use crate::{ | 22 | use 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 | ||
67 | pub use crate::syntax_bridge::{ | 66 | pub 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)] | ||
98 | struct MetaTemplate(Vec<Op>); | ||
99 | |||
100 | impl<'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)] |
107 | struct Shift(u32); | 97 | struct 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())); |