aboutsummaryrefslogtreecommitdiff
path: root/crates/mbe/src/parser.rs
diff options
context:
space:
mode:
authorEdwin Cheng <[email protected]>2021-01-08 06:00:16 +0000
committerEdwin Cheng <[email protected]>2021-01-08 06:00:16 +0000
commit74a24adc8ecc8bded9d24ccede171da188696122 (patch)
tree7c03a87334ba6be2a7adc5d311c6f0adddb09dae /crates/mbe/src/parser.rs
parent1a29934c37cf4ffa2b269c39a25245e58d3916d5 (diff)
Fix bug when $crate in LHS in mbe
Diffstat (limited to 'crates/mbe/src/parser.rs')
-rw-r--r--crates/mbe/src/parser.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/crates/mbe/src/parser.rs b/crates/mbe/src/parser.rs
index 77cc739b6..f3047972d 100644
--- a/crates/mbe/src/parser.rs
+++ b/crates/mbe/src/parser.rs
@@ -109,6 +109,10 @@ fn next_op<'a>(first: &tt::TokenTree, src: &mut TtIter<'a>, mode: Mode) -> Resul
109 let id = punct.id; 109 let id = punct.id;
110 Op::Var { name, kind, id } 110 Op::Var { name, kind, id }
111 } 111 }
112 tt::Leaf::Ident(ident) if ident.text == "crate" => {
113 // We simply produce identifier `$crate` here. And it will be resolved when lowering ast to Path.
114 Op::Leaf(tt::Leaf::from(tt::Ident { text: "$crate".into(), id: ident.id }))
115 }
112 tt::Leaf::Ident(ident) => { 116 tt::Leaf::Ident(ident) => {
113 let name = ident.text.clone(); 117 let name = ident.text.clone();
114 let kind = eat_fragment_kind(src, mode)?; 118 let kind = eat_fragment_kind(src, mode)?;