Unnamed repository; edit this file 'description' to name the repository.
Merge #11153
11153: internal: add more prefix entry point tests r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
bors[bot] 2022-01-02
parent 3f2edc7 · parent e36f557 · commit 0e5d888
-rw-r--r--crates/parser/src/tests/entries.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/crates/parser/src/tests/entries.rs b/crates/parser/src/tests/entries.rs
index 1174e33f5f..d52c6fbb16 100644
--- a/crates/parser/src/tests/entries.rs
+++ b/crates/parser/src/tests/entries.rs
@@ -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();