diff options
Diffstat (limited to 'crates/ra_mbe/src/tests.rs')
-rw-r--r-- | crates/ra_mbe/src/tests.rs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/crates/ra_mbe/src/tests.rs b/crates/ra_mbe/src/tests.rs index 5d1274d21..100ed41f2 100644 --- a/crates/ra_mbe/src/tests.rs +++ b/crates/ra_mbe/src/tests.rs | |||
@@ -215,6 +215,33 @@ SUBTREE $ | |||
215 | } | 215 | } |
216 | 216 | ||
217 | #[test] | 217 | #[test] |
218 | fn test_lifetime_split() { | ||
219 | parse_macro( | ||
220 | r#" | ||
221 | macro_rules! foo { | ||
222 | ($($t:tt)*) => { $($t)*} | ||
223 | } | ||
224 | "#, | ||
225 | ) | ||
226 | .assert_expand( | ||
227 | r#"foo!(static bar: &'static str = "hello";);"#, | ||
228 | r#" | ||
229 | SUBTREE $ | ||
230 | IDENT static 17 | ||
231 | IDENT bar 18 | ||
232 | PUNCH : [alone] 19 | ||
233 | PUNCH & [alone] 20 | ||
234 | PUNCH ' [joint] 21 | ||
235 | IDENT static 22 | ||
236 | IDENT str 23 | ||
237 | PUNCH = [alone] 24 | ||
238 | LITERAL "hello" 25 | ||
239 | PUNCH ; [joint] 26 | ||
240 | "#, | ||
241 | ); | ||
242 | } | ||
243 | |||
244 | #[test] | ||
218 | fn test_expr_order() { | 245 | fn test_expr_order() { |
219 | let expanded = parse_macro( | 246 | let expanded = parse_macro( |
220 | r#" | 247 | r#" |
@@ -989,6 +1016,36 @@ fn test_literal() { | |||
989 | } | 1016 | } |
990 | 1017 | ||
991 | #[test] | 1018 | #[test] |
1019 | fn test_boolean_is_ident() { | ||
1020 | parse_macro( | ||
1021 | r#" | ||
1022 | macro_rules! foo { | ||
1023 | ($lit0:literal, $lit1:literal) => { const VALUE: (bool,bool) = ($lit0,$lit1); }; | ||
1024 | } | ||
1025 | "#, | ||
1026 | ) | ||
1027 | .assert_expand( | ||
1028 | r#"foo!(true,false);"#, | ||
1029 | r#" | ||
1030 | SUBTREE $ | ||
1031 | IDENT const 14 | ||
1032 | IDENT VALUE 15 | ||
1033 | PUNCH : [alone] 16 | ||
1034 | SUBTREE () 17 | ||
1035 | IDENT bool 18 | ||
1036 | PUNCH , [alone] 19 | ||
1037 | IDENT bool 20 | ||
1038 | PUNCH = [alone] 21 | ||
1039 | SUBTREE () 22 | ||
1040 | IDENT true 29 | ||
1041 | PUNCH , [joint] 25 | ||
1042 | IDENT false 31 | ||
1043 | PUNCH ; [alone] 28 | ||
1044 | "#, | ||
1045 | ); | ||
1046 | } | ||
1047 | |||
1048 | #[test] | ||
992 | fn test_vis() { | 1049 | fn test_vis() { |
993 | parse_macro( | 1050 | parse_macro( |
994 | r#" | 1051 | r#" |