Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/hir_def/src/macro_expansion_tests.rs2
-rw-r--r--crates/hir_def/src/macro_expansion_tests/mbe.rs45
-rw-r--r--crates/mbe/src/tests/expand.rs21
3 files changed, 40 insertions, 28 deletions
diff --git a/crates/hir_def/src/macro_expansion_tests.rs b/crates/hir_def/src/macro_expansion_tests.rs
index 66874a674d..d113a2f504 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 dc6ab36b76..3ac8f706b6 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 @@ macro_rules! impl_froms {
}
}
impl From<Leaf> for TokenTree {
- fn from(it:Leaf) -> TokenTree {
+ fn from(it: Leaf) -> TokenTree {
TokenTree::Leaf(it)
}
}
impl From<Subtree> 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
}
@@ -906,8 +906,8 @@ extern crate a;
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 8dd1f33119..67543df583 100644
--- a/crates/mbe/src/tests/expand.rs
+++ b/crates/mbe/src/tests/expand.rs
@@ -102,27 +102,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(
r#"