File: macro-input-future-proofing.rs

package info (click to toggle)
rustc-web 1.78.0%2Bdfsg1-2~deb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,245,420 kB
  • sloc: xml: 147,985; javascript: 18,022; sh: 11,083; python: 10,265; ansic: 6,172; cpp: 5,023; asm: 4,390; makefile: 4,269
file content (23 lines) | stat: -rw-r--r-- 1,047 bytes parent folder | download | duplicates (18)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#![allow(unused_macros)]

macro_rules! errors_everywhere {
    ($ty:ty <) => (); //~ ERROR `$ty:ty` is followed by `<`, which is not allowed for `ty`
    ($ty:ty < foo ,) => (); //~ ERROR `$ty:ty` is followed by `<`, which is not allowed for `ty`
    ($ty:ty , ) => ();
    ( ( $ty:ty ) ) => ();
    ( { $ty:ty } ) => ();
    ( [ $ty:ty ] ) => ();
    ($bl:block < ) => ();
    ($pa:pat >) => (); //~ ERROR `$pa:pat` is followed by `>`, which is not allowed for `pat`
    ($pa:pat , ) => ();
    ($pa:pat $pb:pat $ty:ty ,) => ();
    //~^ ERROR `$pa:pat` is followed by `$pb:pat`, which is not allowed
    //~^^ ERROR `$pb:pat` is followed by `$ty:ty`, which is not allowed
    ($($ty:ty)* -) => (); //~ ERROR `$ty:ty` is followed by `-`
    ($($a:ty, $b:ty)* -) => (); //~ ERROR `$b:ty` is followed by `-`
    ($($ty:ty)-+) => (); //~ ERROR `$ty:ty` is followed by `-`, which is not allowed for `ty`
    ( $($a:expr)* $($b:tt)* ) => { };
    //~^ ERROR `$a:expr` is followed by `$b:tt`, which is not allowed for `expr` fragments
}

fn main() { }