diff options
| author | bors <bors@rust-lang.org> | 2017-03-01 05:58:09 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-03-01 05:58:09 +0000 |
| commit | 7ce1fbe1f7fe5cdbec57377d76306e2bc7811bce (patch) | |
| tree | 0fb917efd8b1fe14e7fbf49c4c01c8f0f7504af4 /src/test/compile-fail | |
| parent | 2f52386f1072755d1b9973014e8e1d4b383e8eef (diff) | |
| parent | 839398a0b4a5b77fe3dd351107b1cbe45e1004de (diff) | |
| download | rust-7ce1fbe1f7fe5cdbec57377d76306e2bc7811bce.tar.gz rust-7ce1fbe1f7fe5cdbec57377d76306e2bc7811bce.zip | |
Auto merge of #39419 - jseyfried:simplify_tokentree, r=nrc
Simplify `TokenTree` and fix `macro_rules!` bugs This PR - fixes #39390, fixes #39403, and fixes #39404 (each is a [breaking-change], see issues for examples), - fixes #39889, - simplifies and optimizes macro invocation parsing, - cleans up `ext::tt::transcribe`, - removes `tokenstream::TokenTree::Sequence` and `Token::MatchNt`, - instead, adds a new type `ext::tt::quoted::TokenTree` for use by `macro_rules!` (`ext::tt`) - removes `parser.quote_depth` and `parser.parsing_token_tree`, and - removes `quote_matcher!`. - Instead, use `quote_tokens!` and `ext::tt::quoted::parse` the result with `expect_matchers=true`. - I found no outside uses of `quote_matcher!` when searching Rust code on Github. r? @nrc
Diffstat (limited to 'src/test/compile-fail')
| -rw-r--r-- | src/test/compile-fail/issue-35450.rs | 5 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-39404.rs (renamed from src/test/compile-fail/issue-39709.rs) | 11 | ||||
| -rw-r--r-- | src/test/compile-fail/macro-error.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/macro-tt-matchers.rs | 13 | ||||
| -rw-r--r-- | src/test/compile-fail/malformed_macro_lhs.rs | 2 |
5 files changed, 12 insertions, 21 deletions
diff --git a/src/test/compile-fail/issue-35450.rs b/src/test/compile-fail/issue-35450.rs index d890d02a910..5f54f269c6c 100644 --- a/src/test/compile-fail/issue-35450.rs +++ b/src/test/compile-fail/issue-35450.rs @@ -8,9 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -macro_rules! m { ($t:tt) => { $t } } +macro_rules! m { ($($t:tt)*) => { $($t)* } } fn main() { - m!($t); //~ ERROR unknown macro variable - //~| ERROR expected expression + m!($t); //~ ERROR expected expression } diff --git a/src/test/compile-fail/issue-39709.rs b/src/test/compile-fail/issue-39404.rs index 0f66fe84393..0168ae7d910 100644 --- a/src/test/compile-fail/issue-39709.rs +++ b/src/test/compile-fail/issue-39404.rs @@ -8,8 +8,11 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -fn main() { - println!("{}", { macro_rules! x { ($()*) => {} } 33 }); - //~^ ERROR no syntax variables matched as repeating at this depth -} +#![deny(missing_fragment_specifier)] //~ NOTE lint level defined here +macro_rules! m { ($i) => {} } +//~^ ERROR missing fragment specifier +//~| WARN previously accepted +//~| NOTE issue #40107 + +fn main() {} diff --git a/src/test/compile-fail/macro-error.rs b/src/test/compile-fail/macro-error.rs index 78f95e365c4..82a5aa48729 100644 --- a/src/test/compile-fail/macro-error.rs +++ b/src/test/compile-fail/macro-error.rs @@ -9,7 +9,7 @@ // except according to those terms. macro_rules! foo { - ($a:expr) => $a; //~ ERROR macro rhs must be delimited + ($a:expr) => a; //~ ERROR macro rhs must be delimited } fn main() { diff --git a/src/test/compile-fail/macro-tt-matchers.rs b/src/test/compile-fail/macro-tt-matchers.rs index 969f1500717..7255e7d00b6 100644 --- a/src/test/compile-fail/macro-tt-matchers.rs +++ b/src/test/compile-fail/macro-tt-matchers.rs @@ -17,16 +17,5 @@ macro_rules! foo { foo!(Box); -macro_rules! bar { - ($x:tt) => { - macro_rules! baz { - ($x:tt, $y:tt) => { ($x, $y) } - } - } -} - #[rustc_error] -fn main() { //~ ERROR compilation successful - bar!($y); - let _: (i8, i16) = baz!(0i8, 0i16); -} +fn main() {} //~ ERROR compilation successful diff --git a/src/test/compile-fail/malformed_macro_lhs.rs b/src/test/compile-fail/malformed_macro_lhs.rs index 5d81e21f056..0b437be5393 100644 --- a/src/test/compile-fail/malformed_macro_lhs.rs +++ b/src/test/compile-fail/malformed_macro_lhs.rs @@ -9,7 +9,7 @@ // except according to those terms. macro_rules! my_precioooous { - $($t:tt)* => (1); //~ ERROR invalid macro matcher + t => (1); //~ ERROR invalid macro matcher } fn main() { |
