diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-04-18 19:13:09 +0100 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-04-18 19:13:09 +0100 |
commit | d55f1136d6444b1f50b9092c36a976d0e1c26202 (patch) | |
tree | 245ce2d29a73aa091a80d055498a4458a68e9851 /crates/ra_mbe/src/lib.rs | |
parent | 403cd78baee7e9c2410d04ca0304575e7bbab16d (diff) | |
parent | e8ddeb869d43cc1b9d287236607c4ccfcd6ae221 (diff) |
Merge #1164
1164: Fix missing last token in mbe $repeat parsing r=matklad a=edwin0cheng
The `mbe parser` incorrectly eat one more token in $repeat parsing, described in #1141.
Remove incorrect token eating, and add related test.
Co-authored-by: Edwin Cheng <[email protected]>
Diffstat (limited to 'crates/ra_mbe/src/lib.rs')
-rw-r--r-- | crates/ra_mbe/src/lib.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/crates/ra_mbe/src/lib.rs b/crates/ra_mbe/src/lib.rs index 2f47e32d3..8d5008d20 100644 --- a/crates/ra_mbe/src/lib.rs +++ b/crates/ra_mbe/src/lib.rs | |||
@@ -554,6 +554,30 @@ SOURCE_FILE@[0; 40) | |||
554 | } | 554 | } |
555 | 555 | ||
556 | #[test] | 556 | #[test] |
557 | fn test_last_expr() { | ||
558 | let rules = create_rules( | ||
559 | r#" | ||
560 | macro_rules! vec { | ||
561 | ($($item:expr),*) => { | ||
562 | { | ||
563 | let mut v = Vec::new(); | ||
564 | $( | ||
565 | v.push($item); | ||
566 | )* | ||
567 | v | ||
568 | } | ||
569 | }; | ||
570 | } | ||
571 | "#, | ||
572 | ); | ||
573 | assert_expansion( | ||
574 | &rules, | ||
575 | "vec!(1,2,3)", | ||
576 | "{let mut v = Vec :: new () ; v . push (1) ; v . push (2) ; v . push (3) ; v}", | ||
577 | ); | ||
578 | } | ||
579 | |||
580 | #[test] | ||
557 | fn test_ty() { | 581 | fn test_ty() { |
558 | let rules = create_rules( | 582 | let rules = create_rules( |
559 | r#" | 583 | r#" |