| //@ check-pass | |
| macro_rules! test_expr { | |
| ($expr:expr) => {}; | |
| } | |
| macro_rules! test_ty { | |
| ($a:ty | $b:ty) => {}; | |
| } | |
| fn main() { | |
| test_expr!(a as fn() -> B | C); | |
| // Do not break the `|` operator. | |
| test_expr!(|_: fn() -> B| C | D); | |
| // Do not break `-> Ret` in closure args. | |
| test_ty!(A | B); | |
| // We can't support anon enums in arbitrary positions. | |
| test_ty!(fn() -> A | B); | |
| // Don't break fn ptrs. | |
| test_ty!(impl Fn() -> A | B); | |
| // Don't break parenthesized generics. | |
| } |