diff options
author | Edwin Cheng <[email protected]> | 2021-01-10 12:52:46 +0000 |
---|---|---|
committer | Edwin Cheng <[email protected]> | 2021-01-10 12:52:46 +0000 |
commit | 8d62576a9b47922ce58ac757e6e4944d45b223a6 (patch) | |
tree | c550f0400ac772201f6c8a4e67c46f84be6865b3 /crates/mbe | |
parent | be02ac981de88869a9d6069b675a78a2e9e31f99 (diff) |
Fixed expr meta var after path colons in mbe
Diffstat (limited to 'crates/mbe')
-rw-r--r-- | crates/mbe/src/tests.rs | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/crates/mbe/src/tests.rs b/crates/mbe/src/tests.rs index d854985c5..17ddd0a9c 100644 --- a/crates/mbe/src/tests.rs +++ b/crates/mbe/src/tests.rs | |||
@@ -1,7 +1,11 @@ | |||
1 | use std::fmt::Write; | 1 | use std::fmt::Write; |
2 | 2 | ||
3 | use ::parser::FragmentKind; | 3 | use ::parser::FragmentKind; |
4 | use syntax::{ast, AstNode, NodeOrToken, SyntaxKind::IDENT, SyntaxNode, WalkEvent, T}; | 4 | use syntax::{ |
5 | ast, AstNode, NodeOrToken, | ||
6 | SyntaxKind::{ERROR, IDENT}, | ||
7 | SyntaxNode, WalkEvent, T, | ||
8 | }; | ||
5 | use test_utils::assert_eq_text; | 9 | use test_utils::assert_eq_text; |
6 | 10 | ||
7 | use super::*; | 11 | use super::*; |
@@ -1194,6 +1198,23 @@ macro_rules! foo { | |||
1194 | ); | 1198 | ); |
1195 | } | 1199 | } |
1196 | 1200 | ||
1201 | #[test] | ||
1202 | fn test_expr_after_path_colons() { | ||
1203 | assert!(parse_macro( | ||
1204 | r#" | ||
1205 | macro_rules! m { | ||
1206 | ($k:expr) => { | ||
1207 | f(K::$k); | ||
1208 | } | ||
1209 | } | ||
1210 | "#, | ||
1211 | ) | ||
1212 | .expand_statements(r#"m!(C("0"))"#) | ||
1213 | .descendants() | ||
1214 | .find(|token| token.kind() == ERROR) | ||
1215 | .is_some()); | ||
1216 | } | ||
1217 | |||
1197 | // The following tests are based on real world situations | 1218 | // The following tests are based on real world situations |
1198 | #[test] | 1219 | #[test] |
1199 | fn test_vec() { | 1220 | fn test_vec() { |