about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2021-10-10 11:44:46 +0300
committerAleksey Kladov <aleksey.kladov@gmail.com>2021-10-10 11:44:46 +0300
commitc88cda04db13c5d471bd5c17462e58048e06e6ec (patch)
tree14541fa07105fa4eccc96831e6c6445dc950f189
parenta3470a8114eb3db2e67a4876b04c70fb8f7ba712 (diff)
downloadrust-c88cda04db13c5d471bd5c17462e58048e06e6ec.tar.gz
rust-c88cda04db13c5d471bd5c17462e58048e06e6ec.zip
move some tests
-rw-r--r--crates/hir_def/src/macro_expansion_tests/mbe.rs76
-rw-r--r--crates/mbe/src/tests/expand.rs83
2 files changed, 76 insertions, 83 deletions
diff --git a/crates/hir_def/src/macro_expansion_tests/mbe.rs b/crates/hir_def/src/macro_expansion_tests/mbe.rs
index d17c9131da7..86110017a97 100644
--- a/crates/hir_def/src/macro_expansion_tests/mbe.rs
+++ b/crates/hir_def/src/macro_expansion_tests/mbe.rs
@@ -1043,3 +1043,79 @@ macro_rules! m {
 "##]],
     );
 }
+
+#[test]
+fn test_tt_block() {
+    check(
+        r#"
+macro_rules! m { ($tt:tt) => { fn foo() $tt } }
+m! { { 1; } }
+"#,
+        expect![[r#"
+macro_rules! m { ($tt:tt) => { fn foo() $tt } }
+fn foo() {
+    1;
+}
+"#]],
+    );
+}
+
+#[test]
+fn test_tt_group() {
+    check(
+        r#"
+macro_rules! m { ($($tt:tt)*) => { $($tt)* } }
+m! { fn foo() {} }"
+"#,
+        expect![[r#"
+macro_rules! m { ($($tt:tt)*) => { $($tt)* } }
+fn foo() {}"
+"#]],
+    );
+}
+
+#[test]
+fn test_tt_composite() {
+    check(
+        r#"
+macro_rules! m { ($tt:tt) => { ok!(); } }
+m! { => }
+m! { = > }
+"#,
+        expect![[r#"
+macro_rules! m { ($tt:tt) => { ok!(); } }
+ok!();
+/* error: leftover tokens */ok!();
+"#]],
+    );
+}
+
+#[test]
+fn test_tt_composite2() {
+    check(
+        r#"
+macro_rules! m { ($($tt:tt)*) => { abs!(=> $($tt)*); } }
+m! {#}
+"#,
+        expect![[r##"
+macro_rules! m { ($($tt:tt)*) => { abs!(=> $($tt)*); } }
+abs!( = > #);
+"##]],
+    );
+}
+
+#[test]
+fn test_tt_with_composite_without_space() {
+    // Test macro input without any spaces
+    // See https://github.com/rust-analyzer/rust-analyzer/issues/6692
+    check(
+        r#"
+macro_rules! m { ($ op:tt, $j:path) => ( ok!(); ) }
+m!(==,Foo::Bool)
+"#,
+        expect![[r#"
+macro_rules! m { ($ op:tt, $j:path) => ( ok!(); ) }
+ok!();
+"#]],
+    );
+}
diff --git a/crates/mbe/src/tests/expand.rs b/crates/mbe/src/tests/expand.rs
index 2ff85740f5c..15a71840291 100644
--- a/crates/mbe/src/tests/expand.rs
+++ b/crates/mbe/src/tests/expand.rs
@@ -102,89 +102,6 @@ fn test_attr_to_token_tree() {
 }
 
 #[test]
-fn test_tt_block() {
-    parse_macro(
-        r#"
-            macro_rules! foo {
-                ($ i:tt) => { fn foo() $ i }
-            }
-    "#,
-    )
-    .assert_expand_items(r#"foo! { { 1; } }"#, r#"fn foo () {1 ;}"#);
-}
-
-#[test]
-fn test_tt_group() {
-    parse_macro(
-        r#"
-            macro_rules! foo {
-                 ($($ i:tt)*) => { $($ i)* }
-            }
-    "#,
-    )
-    .assert_expand_items(r#"foo! { fn foo() {} }"#, r#"fn foo () {}"#);
-}
-
-#[test]
-fn test_tt_composite() {
-    parse_macro(
-        r#"
-            macro_rules! foo {
-                 ($i:tt) => { 0 }
-            }
-    "#,
-    )
-    .assert_expand_items(r#"foo! { => }"#, r#"0"#);
-}
-
-#[test]
-fn test_tt_composite2() {
-    let node = parse_macro(
-        r#"
-            macro_rules! foo {
-                ($($tt:tt)*) => { abs!(=> $($tt)*) }
-            }
-    "#,
-    )
-    .expand_items(r#"foo!{#}"#);
-
-    let res = format!("{:#?}", &node);
-    assert_eq_text!(
-        r###"MACRO_ITEMS@0..10
-  MACRO_CALL@0..10
-    PATH@0..3
-      PATH_SEGMENT@0..3
-        NAME_REF@0..3
-          IDENT@0..3 "abs"
-    BANG@3..4 "!"
-    TOKEN_TREE@4..10
-      L_PAREN@4..5 "("
-      EQ@5..6 "="
-      R_ANGLE@6..7 ">"
-      WHITESPACE@7..8 " "
-      POUND@8..9 "#"
-      R_PAREN@9..10 ")""###,
-        res.trim()
-    );
-}
-
-#[test]
-fn test_tt_with_composite_without_space() {
-    parse_macro(
-        r#"
-        macro_rules! foo {
-            ($ op:tt, $j:path) => (
-                0
-            )
-        }
-"#,
-    )
-    // Test macro input without any spaces
-    // See https://github.com/rust-analyzer/rust-analyzer/issues/6692
-    .assert_expand_items("foo!(==,Foo::Bool)", "0");
-}
-
-#[test]
 fn test_underscore() {
     parse_macro(
         r#"