move some tests

This commit is contained in:
Aleksey Kladov 2021-10-09 17:27:38 +03:00
parent cb1b6a273f
commit 036c0ff8c7
3 changed files with 66 additions and 43 deletions

View File

@ -102,9 +102,11 @@ fn pretty_print_macro_expansion(expn: SyntaxNode) -> String {
let curr_kind = token.kind();
let space = match (prev_kind, curr_kind) {
_ if prev_kind.is_trivia() || curr_kind.is_trivia() => "",
(T!['{'], T!['}']) => "",
(T![=], _) | (_, T![=]) => " ",
(_, T!['{']) => " ",
(T![;] | T!['}'], _) => "\n",
(T![;] | T!['{'] | T!['}'], _) => "\n",
(_, T!['}']) => "\n",
(IDENT | LIFETIME_IDENT, IDENT | LIFETIME_IDENT) => " ",
(IDENT, _) if curr_kind.is_keyword() => " ",
(_, IDENT) if prev_kind.is_keyword() => " ",

View File

@ -159,3 +159,66 @@ struct Bar;
"##]],
);
}
#[test]
fn test_match_group_pattern_with_multiple_defs() {
check(
r#"
macro_rules! m {
($ ($ i:ident),*) => ( impl Bar { $ ( fn $ i {} )*} );
}
m! { foo, bar }
"#,
expect![[r#"
macro_rules! m {
($ ($ i:ident),*) => ( impl Bar { $ ( fn $ i {} )*} );
}
impl Bar {
fn foo {}
fn bar {}
}
"#]],
);
}
#[test]
fn test_match_group_pattern_with_multiple_statement() {
check(
r#"
macro_rules! m {
($ ($ i:ident),*) => ( fn baz { $ ( $ i (); )*} );
}
m! { foo, bar }
"#,
expect![[r#"
macro_rules! m {
($ ($ i:ident),*) => ( fn baz { $ ( $ i (); )*} );
}
fn baz {
foo();
bar();
}
"#]],
)
}
#[test]
fn test_match_group_pattern_with_multiple_statement_without_semi() {
check(
r#"
macro_rules! m {
($ ($ i:ident),*) => ( fn baz { $ ( $i() );*} );
}
m! { foo, bar }
"#,
expect![[r#"
macro_rules! m {
($ ($ i:ident),*) => ( fn baz { $ ( $i() );*} );
}
fn baz {
foo();
bar()
}
"#]],
)
}

View File

@ -209,48 +209,6 @@ fn test_expr_order() {
);
}
#[test]
fn test_match_group_pattern_with_multiple_defs() {
parse_macro(
r#"
macro_rules! foo {
($ ($ i:ident),*) => ( struct Bar { $ (
fn $ i {}
)*} );
}
"#,
)
.assert_expand_items("foo! { foo, bar }", "struct Bar {fn foo {} fn bar {}}");
}
#[test]
fn test_match_group_pattern_with_multiple_statement() {
parse_macro(
r#"
macro_rules! foo {
($ ($ i:ident),*) => ( fn baz { $ (
$ i ();
)*} );
}
"#,
)
.assert_expand_items("foo! { foo, bar }", "fn baz {foo () ; bar () ;}");
}
#[test]
fn test_match_group_pattern_with_multiple_statement_without_semi() {
parse_macro(
r#"
macro_rules! foo {
($ ($ i:ident),*) => ( fn baz { $ (
$i()
);*} );
}
"#,
)
.assert_expand_items("foo! { foo, bar }", "fn baz {foo () ;bar ()}");
}
#[test]
fn test_match_group_empty_fixed_token() {
parse_macro(