Unnamed repository; edit this file 'description' to name the repository.
move some tests
Aleksey Kladov 2021-10-10
parent a3470a8 · commit c88cda0
-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 d17c9131da..86110017a9 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 2ff85740f5..15a7184029 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!(
- 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#"