about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2022-01-02 16:48:10 +0300
committerAleksey Kladov <aleksey.kladov@gmail.com>2022-01-02 16:48:10 +0300
commit7de4b964a9ac25b95ec303f675b36d8c04859e34 (patch)
tree6fc9f5a0d2399875f1729f4a1e529a5e178a656f
parent25dd65dae2f3ffbe2c44e0197971b8cd908f5626 (diff)
downloadrust-7de4b964a9ac25b95ec303f675b36d8c04859e34.tar.gz
rust-7de4b964a9ac25b95ec303f675b36d8c04859e34.zip
add test for macro items
-rw-r--r--crates/parser/src/tests/top_entries.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/crates/parser/src/tests/top_entries.rs b/crates/parser/src/tests/top_entries.rs
index 0b77c0a5b96..2d867a4df3c 100644
--- a/crates/parser/src/tests/top_entries.rs
+++ b/crates/parser/src/tests/top_entries.rs
@@ -92,6 +92,43 @@ fn macro_stmt() {
     );
 }
 
+#[test]
+fn macro_items() {
+    check(
+        TopEntryPoint::MacroItems,
+        "#!/usr/bin/rust",
+        expect![[r##"
+            MACRO_ITEMS
+              ERROR
+                SHEBANG "#!/usr/bin/rust"
+            error 0: expected an item
+        "##]],
+    );
+    check(
+        TopEntryPoint::MacroItems,
+        "struct S; foo!{}",
+        expect![[r#"
+            MACRO_ITEMS
+              STRUCT
+                STRUCT_KW "struct"
+                WHITESPACE " "
+                NAME
+                  IDENT "S"
+                SEMICOLON ";"
+              WHITESPACE " "
+              MACRO_CALL
+                PATH
+                  PATH_SEGMENT
+                    NAME_REF
+                      IDENT "foo"
+                BANG "!"
+                TOKEN_TREE
+                  L_CURLY "{"
+                  R_CURLY "}"
+        "#]],
+    );
+}
+
 #[track_caller]
 fn check(entry: TopEntryPoint, input: &str, expect: expect_test::Expect) {
     let (parsed, _errors) = super::parse(entry, input);