diff --git a/crates/hir_def/src/macro_expansion_tests.rs b/crates/hir_def/src/macro_expansion_tests.rs index 66874a674d8..d113a2f504b 100644 --- a/crates/hir_def/src/macro_expansion_tests.rs +++ b/crates/hir_def/src/macro_expansion_tests.rs @@ -128,7 +128,7 @@ fn pretty_print_macro_expansion(expn: SyntaxNode) -> String { (T![>], _) if curr_kind.is_keyword() => " ", (T![->], _) | (_, T![->]) => " ", (T![&&], _) | (_, T![&&]) => " ", - (T![,], _) => " ", + (T![,] | T![:], _) => " ", (T![fn], T!['(']) => "", (T![']'], _) if curr_kind.is_keyword() => " ", (T![']'], T![#]) => "\n", diff --git a/crates/hir_def/src/macro_expansion_tests/mbe.rs b/crates/hir_def/src/macro_expansion_tests/mbe.rs index dc6ab36b761..3ac8f706b6e 100644 --- a/crates/hir_def/src/macro_expansion_tests/mbe.rs +++ b/crates/hir_def/src/macro_expansion_tests/mbe.rs @@ -35,12 +35,12 @@ fn from(it: $v) -> $e { $e::$v(it) } } } impl From for TokenTree { - fn from(it:Leaf) -> TokenTree { + fn from(it: Leaf) -> TokenTree { TokenTree::Leaf(it) } } impl From for TokenTree { - fn from(it:Subtree) -> TokenTree { + fn from(it: Subtree) -> TokenTree { TokenTree::Subtree(it) } } @@ -433,10 +433,10 @@ macro_rules! structs { } struct Foo { - field:u32 + field: u32 } struct Bar { - field:u32 + field: u32 } // MACRO_ITEMS@0..40 // STRUCT@0..20 @@ -906,8 +906,8 @@ macro_rules! m { ($($i:item)*) => ($($i )*) } mod b; mod c {} use d; -const E:i32 = 0; -static F:i32 = 0; +const E: i32 = 0; +static F: i32 = 0; impl G {} struct H; enum I { @@ -1239,3 +1239,36 @@ struct Ref<'a> { "#]], ); } + +#[test] +fn test_literal() { + check( + r#" +macro_rules! m { + ($type:ty, $lit:literal) => { const VALUE: $type = $ lit; }; +} +m!(u8, 0); +"#, + expect![[r#" +macro_rules! m { + ($type:ty, $lit:literal) => { const VALUE: $type = $ lit; }; +} +const VALUE: u8 = 0; +"#]], + ); + + check( + r#" +macro_rules! m { + ($type:ty, $lit:literal) => { const VALUE: $ type = $ lit; }; +} +m!(i32, -1); +"#, + expect![[r#" +macro_rules! m { + ($type:ty, $lit:literal) => { const VALUE: $ type = $ lit; }; +} +const VALUE: i32 = -1; +"#]], + ); +} diff --git a/crates/mbe/src/tests/expand.rs b/crates/mbe/src/tests/expand.rs index 8dd1f331194..67543df5838 100644 --- a/crates/mbe/src/tests/expand.rs +++ b/crates/mbe/src/tests/expand.rs @@ -101,27 +101,6 @@ fn test_attr_to_token_tree() { ); } -#[test] -fn test_literal() { - parse_macro( - r#" - macro_rules! foo { - ($ type:ty , $ lit:literal) => { const VALUE: $ type = $ lit;}; - } -"#, - ) - .assert_expand_items(r#"foo!(u8,0);"#, r#"const VALUE : u8 = 0 ;"#); - - parse_macro( - r#" - macro_rules! foo { - ($ type:ty , $ lit:literal) => { const VALUE: $ type = $ lit;}; - } -"#, - ) - .assert_expand_items(r#"foo!(i32,-1);"#, r#"const VALUE : i32 = - 1 ;"#); -} - #[test] fn test_boolean_is_ident() { parse_macro(