error: top-level or-patterns are not allowed in function parameters --> $DIR/or-patterns-syntactic-fail.rs:15:13 | LL | fn fun1(A | B: E) {} | ^^^^^ help: wrap the pattern in parentheses: `(A | B)` error: top-level or-patterns are not allowed in function parameters --> $DIR/or-patterns-syntactic-fail.rs:18:13 | LL | fn fun2(| A | B: E) {} | ^^^^^^^ help: wrap the pattern in parentheses: `(A | B)` error: top-level or-patterns are not allowed in `let` bindings --> $DIR/or-patterns-syntactic-fail.rs:23:9 | LL | let A | B: E = A; | ^^^^^ help: wrap the pattern in parentheses: `(A | B)` error: top-level or-patterns are not allowed in `let` bindings --> $DIR/or-patterns-syntactic-fail.rs:26:9 | LL | let | A | B: E = A; | ^^^^^^^ help: wrap the pattern in parentheses: `(A | B)` error[E0369]: no implementation for `E | ()` --> $DIR/or-patterns-syntactic-fail.rs:11:22 | LL | let _ = |A | B: E| (); | ----^ -- () | | | E | note: an implementation of `BitOr<_>` might be missing for `E` --> $DIR/or-patterns-syntactic-fail.rs:6:1 | LL | enum E { A, B } | ^^^^^^ must implement `BitOr<_>` note: the trait `BitOr` must be implemented --> $SRC_DIR/core/src/ops/bit.rs:LL:COL error: aborting due to 5 previous errors For more information about this error, try `rustc --explain E0369`.