error: an or-pattern parameter must be wrapped in parenthesis
  --> $DIR/or-patterns-syntactic-fail.rs:28:13
   |
LL |     fn fun1(A | B: E) {}
   |             ^^^^^ help: wrap the pattern in parenthesis: `(A | B)`

error: a leading `|` is not allowed in a parameter pattern
  --> $DIR/or-patterns-syntactic-fail.rs:30:13
   |
LL |     fn fun2(| A | B: E) {}
   |             ^ help: remove the `|`

error: an or-pattern parameter must be wrapped in parenthesis
  --> $DIR/or-patterns-syntactic-fail.rs:30:15
   |
LL |     fn fun2(| A | B: E) {}
   |               ^^^^^ help: wrap the pattern in parenthesis: `(A | B)`

error: a leading `|` is only allowed in a top-level pattern
  --> $DIR/or-patterns-syntactic-fail.rs:41:11
   |
LL |     let ( | A | B) = E::A;
   |           ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
  --> $DIR/or-patterns-syntactic-fail.rs:42:11
   |
LL |     let ( | A | B,) = (E::B,);
   |           ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
  --> $DIR/or-patterns-syntactic-fail.rs:43:11
   |
LL |     let [ | A | B ] = [E::A];
   |           ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
  --> $DIR/or-patterns-syntactic-fail.rs:44:13
   |
LL |     let TS( | A | B );
   |             ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
  --> $DIR/or-patterns-syntactic-fail.rs:45:17
   |
LL |     let NS { f: | A | B };
   |                 ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
  --> $DIR/or-patterns-syntactic-fail.rs:47:11
   |
LL |     let ( || A | B) = E::A;
   |           ^^ help: remove the `||`

error: a leading `|` is only allowed in a top-level pattern
  --> $DIR/or-patterns-syntactic-fail.rs:48:11
   |
LL |     let [ || A | B ] = [E::A];
   |           ^^ help: remove the `||`

error: a leading `|` is only allowed in a top-level pattern
  --> $DIR/or-patterns-syntactic-fail.rs:49:13
   |
LL |     let TS( || A | B );
   |             ^^ help: remove the `||`

error: a leading `|` is only allowed in a top-level pattern
  --> $DIR/or-patterns-syntactic-fail.rs:50:17
   |
LL |     let NS { f: || A | B };
   |                 ^^ help: remove the `||`

error: no rules expected the token `|`
  --> $DIR/or-patterns-syntactic-fail.rs:14:15
   |
LL | macro_rules! accept_pat {
   | ----------------------- when calling this macro
...
LL | accept_pat!(p | q);
   |               ^ no rules expected this token in macro call

error: no rules expected the token `|`
  --> $DIR/or-patterns-syntactic-fail.rs:15:13
   |
LL | macro_rules! accept_pat {
   | ----------------------- when calling this macro
...
LL | accept_pat!(| p | q);
   |             ^ no rules expected this token in macro call

warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
  --> $DIR/or-patterns-syntactic-fail.rs:4:12
   |
LL | #![feature(or_patterns)]
   |            ^^^^^^^^^^^
   |
   = note: `#[warn(incomplete_features)]` on by default

error[E0369]: binary operation `|` cannot be applied to type `E`
  --> $DIR/or-patterns-syntactic-fail.rs:24:22
   |
LL |     let _ = |A | B: E| ();
   |                  ----^ -- ()
   |                  |
   |                  E
   |
   = note: an implementation of `std::ops::BitOr` might be missing for `E`

error[E0308]: mismatched types
  --> $DIR/or-patterns-syntactic-fail.rs:52:36
   |
LL |     let recovery_witness: String = 0;
   |                                    ^
   |                                    |
   |                                    expected struct `std::string::String`, found integer
   |                                    help: try using a conversion method: `0.to_string()`
   |
   = note: expected type `std::string::String`
              found type `{integer}`

error: aborting due to 16 previous errors

Some errors have detailed explanations: E0308, E0369.
For more information about an error, try `rustc --explain E0308`.
