error: top-level or-patterns are not allowed in `let` bindings
  --> $DIR/nested-undelimited-precedence.rs:21:9
   |
LL |     let b @ A | B: E = A;
   |         ^^^^^^^^^ help: wrap the pattern in parentheses: `(b @ A | B)`

error: top-level or-patterns are not allowed in `let` bindings
  --> $DIR/nested-undelimited-precedence.rs:36:9
   |
LL |     let &A(_) | B(_): F = A(3);
   |         ^^^^^^^^^^^^ help: wrap the pattern in parentheses: `(&A(_) | B(_))`

error: top-level or-patterns are not allowed in `let` bindings
  --> $DIR/nested-undelimited-precedence.rs:38:9
   |
LL |     let &&A(_) | B(_): F = A(3);
   |         ^^^^^^^^^^^^^ help: wrap the pattern in parentheses: `(&&A(_) | B(_))`

error: top-level or-patterns are not allowed in `let` bindings
  --> $DIR/nested-undelimited-precedence.rs:40:9
   |
LL |     let &mut A(_) | B(_): F = A(3);
   |         ^^^^^^^^^^^^^^^^ help: wrap the pattern in parentheses: `(&mut A(_) | B(_))`

error: top-level or-patterns are not allowed in `let` bindings
  --> $DIR/nested-undelimited-precedence.rs:42:9
   |
LL |     let &&mut A(_) | B(_): F = A(3);
   |         ^^^^^^^^^^^^^^^^^ help: wrap the pattern in parentheses: `(&&mut A(_) | B(_))`

error[E0408]: variable `b` is not bound in all patterns
  --> $DIR/nested-undelimited-precedence.rs:21:17
   |
LL |     let b @ A | B: E = A;
   |         -       ^ pattern doesn't bind `b`
   |         |
   |         variable not in all patterns

error[E0308]: mismatched types
  --> $DIR/nested-undelimited-precedence.rs:36:9
   |
LL |     let &A(_) | B(_): F = A(3);
   |         ^^^^^         - expected due to this
   |         |
   |         expected enum `F`, found reference
   |
   = note:   expected enum `F`
           found reference `&_`

error[E0308]: mismatched types
  --> $DIR/nested-undelimited-precedence.rs:38:9
   |
LL |     let &&A(_) | B(_): F = A(3);
   |         ^^^^^^         - expected due to this
   |         |
   |         expected enum `F`, found reference
   |
   = note:   expected enum `F`
           found reference `&_`

error[E0308]: mismatched types
  --> $DIR/nested-undelimited-precedence.rs:40:9
   |
LL |     let &mut A(_) | B(_): F = A(3);
   |         ^^^^^^^^^         - expected due to this
   |         |
   |         expected enum `F`, found `&mut _`
   |
   = note:           expected enum `F`
           found mutable reference `&mut _`

error[E0308]: mismatched types
  --> $DIR/nested-undelimited-precedence.rs:42:9
   |
LL |     let &&mut A(_) | B(_): F = A(3);
   |         ^^^^^^^^^^         - expected due to this
   |         |
   |         expected enum `F`, found reference
   |
   = note:   expected enum `F`
           found reference `&_`

error: aborting due to 10 previous errors

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