diff options
Diffstat (limited to 'crates/mbe/src/tests')
-rw-r--r-- | crates/mbe/src/tests/expand.rs | 9 | ||||
-rw-r--r-- | crates/mbe/src/tests/rule.rs | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/crates/mbe/src/tests/expand.rs b/crates/mbe/src/tests/expand.rs index 9dd8ff75b..8951f3813 100644 --- a/crates/mbe/src/tests/expand.rs +++ b/crates/mbe/src/tests/expand.rs | |||
@@ -1080,6 +1080,12 @@ macro_rules! q { | |||
1080 | } | 1080 | } |
1081 | 1081 | ||
1082 | #[test] | 1082 | #[test] |
1083 | fn test_underscore_lifetime() { | ||
1084 | parse_macro(r#"macro_rules! q { ($a:lifetime) => {0}; }"#) | ||
1085 | .assert_expand_items(r#"q!['_]"#, r#"0"#); | ||
1086 | } | ||
1087 | |||
1088 | #[test] | ||
1083 | fn test_vertical_bar_with_pat() { | 1089 | fn test_vertical_bar_with_pat() { |
1084 | parse_macro( | 1090 | parse_macro( |
1085 | r#" | 1091 | r#" |
@@ -1219,8 +1225,7 @@ macro_rules! m { | |||
1219 | ) | 1225 | ) |
1220 | .expand_statements(r#"m!(C("0"))"#) | 1226 | .expand_statements(r#"m!(C("0"))"#) |
1221 | .descendants() | 1227 | .descendants() |
1222 | .find(|token| token.kind() == ERROR) | 1228 | .any(|token| token.kind() == ERROR)); |
1223 | .is_some()); | ||
1224 | } | 1229 | } |
1225 | 1230 | ||
1226 | #[test] | 1231 | #[test] |
diff --git a/crates/mbe/src/tests/rule.rs b/crates/mbe/src/tests/rule.rs index 07277966d..bf48112b3 100644 --- a/crates/mbe/src/tests/rule.rs +++ b/crates/mbe/src/tests/rule.rs | |||
@@ -12,6 +12,9 @@ fn test_valid_arms() { | |||
12 | } | 12 | } |
13 | 13 | ||
14 | check("($i:ident) => ()"); | 14 | check("($i:ident) => ()"); |
15 | check("($(x),*) => ()"); | ||
16 | check("($(x)_*) => ()"); | ||
17 | check("($(x)i*) => ()"); | ||
15 | check("($($i:ident)*) => ($_)"); | 18 | check("($($i:ident)*) => ($_)"); |
16 | check("($($true:ident)*) => ($true)"); | 19 | check("($($true:ident)*) => ($true)"); |
17 | check("($($false:ident)*) => ($false)"); | 20 | check("($($false:ident)*) => ($false)"); |
@@ -32,6 +35,7 @@ fn test_invalid_arms() { | |||
32 | 35 | ||
33 | check("($i) => ($i)", ParseError::UnexpectedToken("bad fragment specifier 1".into())); | 36 | check("($i) => ($i)", ParseError::UnexpectedToken("bad fragment specifier 1".into())); |
34 | check("($i:) => ($i)", ParseError::UnexpectedToken("bad fragment specifier 1".into())); | 37 | check("($i:) => ($i)", ParseError::UnexpectedToken("bad fragment specifier 1".into())); |
38 | check("($i:_) => ()", ParseError::UnexpectedToken("bad fragment specifier 1".into())); | ||
35 | } | 39 | } |
36 | 40 | ||
37 | fn parse_macro_arm(arm_definition: &str) -> Result<crate::MacroRules, ParseError> { | 41 | fn parse_macro_arm(arm_definition: &str) -> Result<crate::MacroRules, ParseError> { |