Fix fail to parse :: for meta in mbe

This commit is contained in:
Edwin Cheng 2021-03-06 04:57:34 +08:00
parent 3d662e320b
commit 20eda09712
2 changed files with 4 additions and 2 deletions

View file

@ -954,7 +954,8 @@ fn test_meta() {
.assert_expand_items(
r#"foo! { cfg(target_os = "windows") }"#,
r#"# [cfg (target_os = "windows")] fn bar () {}"#,
);
)
.assert_expand_items(r#"foo! { hello::world }"#, r#"# [hello :: world] fn bar () {}"#);
}
#[test]

View file

@ -95,7 +95,7 @@ pub(crate) mod fragments {
// https://doc.rust-lang.org/reference/paths.html#simple-paths
// The start of an meta must be a simple path
match p.current() {
IDENT | T![::] | T![super] | T![self] | T![crate] => p.bump_any(),
IDENT | T![super] | T![self] | T![crate] => p.bump_any(),
T![=] => {
p.bump_any();
match p.current() {
@ -105,6 +105,7 @@ pub(crate) mod fragments {
}
break;
}
_ if p.at(T![::]) => p.bump(T![::]),
_ => break,
}
}