11153: internal: add more prefix entry point tests r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2022-01-01 17:04:29 +00:00 committed by GitHub
commit 0e5d8883cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -59,10 +59,30 @@ fn path() {
check_prefix(PrefixEntryPoint::Path, "foo::<> baz", "foo::<>");
check_prefix(PrefixEntryPoint::Path, "foo<> baz", "foo<>");
check_prefix(PrefixEntryPoint::Path, "Fn() -> i32?", "Fn() -> i32");
// FIXME: this shouldn't be accepted as path actually.
// FIXME: This shouldn't be accepted as path actually.
check_prefix(PrefixEntryPoint::Path, "<_>::foo", "<_>::foo");
}
#[test]
fn item() {
// FIXME: This shouldn't consume the semicolon.
check_prefix(PrefixEntryPoint::Item, "fn foo() {};", "fn foo() {};");
check_prefix(PrefixEntryPoint::Item, "#[attr] pub struct S {} 92", "#[attr] pub struct S {}");
check_prefix(PrefixEntryPoint::Item, "item!{}?", "item!{}");
check_prefix(PrefixEntryPoint::Item, "????", "?");
}
#[test]
fn meta_item() {
check_prefix(PrefixEntryPoint::MetaItem, "attr, ", "attr");
check_prefix(
PrefixEntryPoint::MetaItem,
"attr(some token {stream});",
"attr(some token {stream})",
);
check_prefix(PrefixEntryPoint::MetaItem, "path::attr = 2 * 2!", "path::attr = 2 * 2");
}
fn check_prefix(entry: PrefixEntryPoint, input: &str, prefix: &str) {
let lexed = LexedStr::new(input);
let input = lexed.to_input();