From 35c463315032dcebb38f738cca57581608f19826 Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Thu, 2 May 2019 21:24:51 +0800 Subject: Make `vis` matcher optional and fix typo --- crates/ra_mbe/src/tt_cursor.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'crates/ra_mbe/src/tt_cursor.rs') diff --git a/crates/ra_mbe/src/tt_cursor.rs b/crates/ra_mbe/src/tt_cursor.rs index 8f15d215b..d85ab43e4 100644 --- a/crates/ra_mbe/src/tt_cursor.rs +++ b/crates/ra_mbe/src/tt_cursor.rs @@ -149,9 +149,16 @@ impl<'a> TtCursor<'a> { self.eat_ident().cloned().map(|ident| tt::Leaf::from(ident).into()) } - pub(crate) fn eat_vis(&mut self) -> Option { + pub(crate) fn try_eat_vis(&mut self) -> Option { + // `vis` matcher is optional + let old_pos = self.pos; let parser = Parser::new(&mut self.pos, self.subtree); - parser.parse_vis() + + let res = parser.parse_vis(); + if res.is_none() { + self.pos = old_pos; + } + res } pub(crate) fn expect_char(&mut self, char: char) -> Result<(), ParseError> { -- cgit v1.2.3