Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/mbe/src/tests.rs')
-rw-r--r--crates/mbe/src/tests.rs120
1 files changed, 119 insertions, 1 deletions
diff --git a/crates/mbe/src/tests.rs b/crates/mbe/src/tests.rs
index a5672e4e05..769455faac 100644
--- a/crates/mbe/src/tests.rs
+++ b/crates/mbe/src/tests.rs
@@ -74,7 +74,8 @@ fn check_(
"{}",
syntax_bridge::prettify_macro_expansion::prettify_macro_expansion(
node.syntax_node(),
- &mut |it| it.clone()
+ &mut |_| None,
+ |_| ()
)
);
expect.assert_eq(&expect_res);
@@ -356,3 +357,120 @@ fn expr_2021() {
;"#]],
);
}
+
+#[test]
+fn minus_belongs_to_literal() {
+ let decl = r#"
+(-1) => {-1};
+(- 2) => {- 2};
+(- 3.0) => {- 3.0};
+(@$lit:literal) => {$lit}
+"#;
+ let check = |args, expect| check(Edition::CURRENT, Edition::CURRENT, decl, args, expect);
+ check(
+ "-1",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ PUNCH - [alone] 0:[email protected]#ROOT2024
+ LITERAL Integer 1 0:[email protected]#ROOT2024
+
+ -1"#]],
+ );
+ check(
+ "- 1",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ PUNCH - [alone] 0:[email protected]#ROOT2024
+ LITERAL Integer 1 0:[email protected]#ROOT2024
+
+ -1"#]],
+ );
+ check(
+ "-2",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ PUNCH - [alone] 0:[email protected]#ROOT2024
+ LITERAL Integer 2 0:[email protected]#ROOT2024
+
+ -2"#]],
+ );
+ check(
+ "- 2",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ PUNCH - [alone] 0:[email protected]#ROOT2024
+ LITERAL Integer 2 0:[email protected]#ROOT2024
+
+ -2"#]],
+ );
+ check(
+ "-3.0",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ PUNCH - [alone] 0:[email protected]#ROOT2024
+ LITERAL Float 3.0 0:[email protected]#ROOT2024
+
+ -3.0"#]],
+ );
+ check(
+ "- 3.0",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ PUNCH - [alone] 0:[email protected]#ROOT2024
+ LITERAL Float 3.0 0:[email protected]#ROOT2024
+
+ -3.0"#]],
+ );
+ check(
+ "@1",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ LITERAL Integer 1 1:[email protected]#ROOT2024
+
+ 1"#]],
+ );
+ check(
+ "@-1",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ PUNCH - [alone] 1:[email protected]#ROOT2024
+ LITERAL Integer 1 1:[email protected]#ROOT2024
+
+ -1"#]],
+ );
+ check(
+ "@1.0",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ LITERAL Float 1.0 1:[email protected]#ROOT2024
+
+ 1.0"#]],
+ );
+ check(
+ "@-1.0",
+ expect![[r#"
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ PUNCH - [alone] 1:[email protected]#ROOT2024
+ LITERAL Float 1.0 1:[email protected]#ROOT2024
+
+ -1.0"#]],
+ );
+ check(
+ "@--1.0",
+ expect![[r#"
+ ExpandError {
+ inner: (
+ 1:[email protected]#ROOT2024,
+ BindingError(
+ "expected literal",
+ ),
+ ),
+ }
+
+ SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
+ PUNCH - [joint] 1:[email protected]#ROOT2024
+ PUNCH - [alone] 1:[email protected]#ROOT2024
+
+ --"#]],
+ );
+}