aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_mbe/src/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_mbe/src/parser.rs')
-rw-r--r--crates/ra_mbe/src/parser.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/crates/ra_mbe/src/parser.rs b/crates/ra_mbe/src/parser.rs
index 10a6f300a..034150432 100644
--- a/crates/ra_mbe/src/parser.rs
+++ b/crates/ra_mbe/src/parser.rs
@@ -90,7 +90,11 @@ fn next_op<'a>(
90) -> Result<Op<'a>, ExpandError> { 90) -> Result<Op<'a>, ExpandError> {
91 let res = match first { 91 let res = match first {
92 tt::TokenTree::Leaf(tt::Leaf::Punct(tt::Punct { char: '$', .. })) => { 92 tt::TokenTree::Leaf(tt::Leaf::Punct(tt::Punct { char: '$', .. })) => {
93 let second = src.next().ok_or_else(|| err!("bad var 1"))?; 93 // Note that the '$' itself is a valid token inside macro_rules.
94 let second = match src.next() {
95 None => return Ok(Op::TokenTree(first)),
96 Some(it) => it,
97 };
94 match second { 98 match second {
95 tt::TokenTree::Subtree(subtree) => { 99 tt::TokenTree::Subtree(subtree) => {
96 let (separator, kind) = parse_repeat(src)?; 100 let (separator, kind) = parse_repeat(src)?;