7887: Fix fail to parse :: for meta in mbe r=edwin0cheng a=edwin0cheng

fixes #7886

bors r+

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
This commit is contained in:
bors[bot] 2021-03-05 20:59:31 +00:00 committed by GitHub
commit 750d3cb846
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 2 deletions

View File

@ -954,7 +954,8 @@ fn bar() {}
.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 @@ fn is_delimiter(p: &mut Parser) -> bool {
// 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 @@ fn is_delimiter(p: &mut Parser) -> bool {
}
break;
}
_ if p.at(T![::]) => p.bump(T![::]),
_ => break,
}
}