error: an or-pattern parameter must be wrapped in parentheses --> $DIR/or-patterns-syntactic-fail.rs:17:13 | LL | fn fun1(A | B: E) {} | ^^^^^ help: wrap the pattern in parentheses: `(A | B)` error: an or-pattern parameter must be wrapped in parentheses --> $DIR/or-patterns-syntactic-fail.rs:19:13 | LL | fn fun2(| A | B: E) {} | ^^^^^^^ help: wrap the pattern in parentheses: `(A | B)` error[E0369]: no implementation for `E | ()` --> $DIR/or-patterns-syntactic-fail.rs:13:22 | LL | let _ = |A | B: E| (); | ----^ -- () | | | E | = note: an implementation of `std::ops::BitOr` might be missing for `E` error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0369`.