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.rs16
1 files changed, 6 insertions, 10 deletions
diff --git a/crates/mbe/src/lib.rs b/crates/mbe/src/lib.rs
index 7878faaa4..19543d777 100644
--- a/crates/mbe/src/lib.rs
+++ b/crates/mbe/src/lib.rs
@@ -24,7 +24,7 @@ use crate::{
24#[derive(Debug, PartialEq, Eq)] 24#[derive(Debug, PartialEq, Eq)]
25pub enum ParseError { 25pub enum ParseError {
26 Expected(String), 26 Expected(String),
27 RepetitionEmtpyTokenTree, 27 RepetitionEmptyTokenTree,
28} 28}
29 29
30#[derive(Debug, PartialEq, Eq, Clone)] 30#[derive(Debug, PartialEq, Eq, Clone)]
@@ -217,18 +217,14 @@ impl MacroRules {
217 217
218impl Rule { 218impl Rule {
219 fn parse(src: &mut TtIter) -> Result<Rule, ParseError> { 219 fn parse(src: &mut TtIter) -> Result<Rule, ParseError> {
220 let mut lhs = src 220 let lhs = src
221 .expect_subtree() 221 .expect_subtree()
222 .map_err(|()| ParseError::Expected("expected subtree".to_string()))? 222 .map_err(|()| ParseError::Expected("expected subtree".to_string()))?;
223 .clone();
224 lhs.delimiter = None;
225 src.expect_char('=').map_err(|()| ParseError::Expected("expected `=`".to_string()))?; 223 src.expect_char('=').map_err(|()| ParseError::Expected("expected `=`".to_string()))?;
226 src.expect_char('>').map_err(|()| ParseError::Expected("expected `>`".to_string()))?; 224 src.expect_char('>').map_err(|()| ParseError::Expected("expected `>`".to_string()))?;
227 let mut rhs = src 225 let rhs = src
228 .expect_subtree() 226 .expect_subtree()
229 .map_err(|()| ParseError::Expected("expected subtree".to_string()))? 227 .map_err(|()| ParseError::Expected("expected subtree".to_string()))?;
230 .clone();
231 rhs.delimiter = None;
232 228
233 let lhs = MetaTemplate { tokens: parse_pattern(&lhs), delimiter: None }; 229 let lhs = MetaTemplate { tokens: parse_pattern(&lhs), delimiter: None };
234 let rhs = MetaTemplate { tokens: parse_template(&rhs), delimiter: None }; 230 let rhs = MetaTemplate { tokens: parse_template(&rhs), delimiter: None };
@@ -274,7 +270,7 @@ fn validate(pattern: &MetaTemplate) -> Result<(), ParseError> {
274 } 270 }
275 false 271 false
276 }) { 272 }) {
277 return Err(ParseError::RepetitionEmtpyTokenTree); 273 return Err(ParseError::RepetitionEmptyTokenTree);
278 } 274 }
279 } 275 }
280 validate(subtree)? 276 validate(subtree)?