]> git.lizzy.rs Git - rust.git/blob - src/test/compile-fail/macro-input-future-proofing.rs
Rollup merge of #42037 - nagisa:charpat, r=sfackler
[rust.git] / src / test / compile-fail / macro-input-future-proofing.rs
1 // Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 #![allow(unused_macros)]
12
13 macro_rules! errors_everywhere {
14     ($ty:ty <) => (); //~ ERROR `$ty:ty` is followed by `<`, which is not allowed for `ty`
15     ($ty:ty < foo ,) => (); //~ ERROR `$ty:ty` is followed by `<`, which is not allowed for `ty`
16     ($ty:ty , ) => ();
17     ( ( $ty:ty ) ) => ();
18     ( { $ty:ty } ) => ();
19     ( [ $ty:ty ] ) => ();
20     ($bl:block < ) => ();
21     ($pa:pat >) => (); //~ ERROR `$pa:pat` is followed by `>`, which is not allowed for `pat`
22     ($pa:pat , ) => ();
23     ($pa:pat $pb:pat $ty:ty ,) => ();
24     //~^ ERROR `$pa:pat` is followed by `$pb:pat`, which is not allowed
25     //~^^ ERROR `$pb:pat` is followed by `$ty:ty`, which is not allowed
26     ($($ty:ty)* -) => (); //~ ERROR `$ty:ty` is followed by `-`
27     ($($a:ty, $b:ty)* -) => (); //~ ERROR `$b:ty` is followed by `-`
28     ($($ty:ty)-+) => (); //~ ERROR `$ty:ty` is followed by `-`, which is not allowed for `ty`
29     ( $($a:expr)* $($b:tt)* ) => { };
30     //~^ ERROR `$a:expr` is followed by `$b:tt`, which is not allowed for `expr` fragments
31 }
32
33 fn main() { }