Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/hir_def/src/macro_expansion_tests/mbe.rs69
-rw-r--r--crates/mbe/src/tests/expand.rs46
2 files changed, 69 insertions, 46 deletions
diff --git a/crates/hir_def/src/macro_expansion_tests/mbe.rs b/crates/hir_def/src/macro_expansion_tests/mbe.rs
index 3c5a02ce2e..ae93ce2ae8 100644
--- a/crates/hir_def/src/macro_expansion_tests/mbe.rs
+++ b/crates/hir_def/src/macro_expansion_tests/mbe.rs
@@ -635,3 +635,72 @@ macro panic_2015 {
"#]],
);
}
+
+#[test]
+fn test_path() {
+ check(
+ r#"
+macro_rules! m {
+ ($p:path) => { fn foo() { let a = $p; } }
+}
+
+m! { foo }
+
+m! { bar::<u8>::baz::<u8> }
+"#,
+ expect![[r#"
+macro_rules! m {
+ ($p:path) => { fn foo() { let a = $p; } }
+}
+
+fn foo() {
+ let a = foo;
+}
+
+fn foo() {
+ let a = bar::<u8>::baz::<u8> ;
+}
+"#]],
+ );
+}
+
+#[test]
+fn test_two_paths() {
+ check(
+ r#"
+macro_rules! m {
+ ($i:path, $j:path) => { fn foo() { let a = $ i; let b = $j; } }
+}
+m! { foo, bar }
+"#,
+ expect![[r#"
+macro_rules! m {
+ ($i:path, $j:path) => { fn foo() { let a = $ i; let b = $j; } }
+}
+fn foo() {
+ let a = foo;
+ let b = bar;
+}
+"#]],
+ );
+}
+
+#[test]
+fn test_path_with_path() {
+ check(
+ r#"
+macro_rules! m {
+ ($p:path) => { fn foo() { let a = $p::bar; } }
+}
+m! { foo }
+"#,
+ expect![[r#"
+macro_rules! m {
+ ($p:path) => { fn foo() { let a = $p::bar; } }
+}
+fn foo() {
+ let a = foo::bar;
+}
+"#]],
+ );
+}
diff --git a/crates/mbe/src/tests/expand.rs b/crates/mbe/src/tests/expand.rs
index 758bf8c6f7..b3e30391f7 100644
--- a/crates/mbe/src/tests/expand.rs
+++ b/crates/mbe/src/tests/expand.rs
@@ -102,52 +102,6 @@ fn test_attr_to_token_tree() {
}
#[test]
-fn test_path() {
- parse_macro(
- r#"
- macro_rules! foo {
- ($ i:path) => {
- fn foo() { let a = $ i; }
- }
- }
-"#,
- )
- .assert_expand_items("foo! { foo }", "fn foo () {let a = foo ;}")
- .assert_expand_items(
- "foo! { bar::<u8>::baz::<u8> }",
- "fn foo () {let a = bar ::< u8 >:: baz ::< u8 > ;}",
- );
-}
-
-#[test]
-fn test_two_paths() {
- parse_macro(
- r#"
- macro_rules! foo {
- ($ i:path, $ j:path) => {
- fn foo() { let a = $ i; let b = $j; }
- }
- }
-"#,
- )
- .assert_expand_items("foo! { foo, bar }", "fn foo () {let a = foo ; let b = bar ;}");
-}
-
-#[test]
-fn test_path_with_path() {
- parse_macro(
- r#"
- macro_rules! foo {
- ($ i:path) => {
- fn foo() { let a = $ i :: bar; }
- }
- }
-"#,
- )
- .assert_expand_items("foo! { foo }", "fn foo () {let a = foo :: bar ;}");
-}
-
-#[test]
fn test_expr() {
parse_macro(
r#"