error: struct literals are not allowed here
  --> $DIR/struct-literal-variant-in-if.rs:13:13
   |
LL |     if x == E::I { field1: true, field2: 42 } {}
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: surround the struct literal with parentheses
   |
LL |     if x == (E::I { field1: true, field2: 42 }) {}
   |             +                                 +

error: struct literals are not allowed here
  --> $DIR/struct-literal-variant-in-if.rs:15:13
   |
LL |     if x == E::V { field: false } {}
   |             ^^^^^^^^^^^^^^^^^^^^^
   |
help: surround the struct literal with parentheses
   |
LL |     if x == (E::V { field: false }) {}
   |             +                     +

error: struct literals are not allowed here
  --> $DIR/struct-literal-variant-in-if.rs:17:13
   |
LL |     if x == E::J { field: -42 } {}
   |             ^^^^^^^^^^^^^^^^^^^
   |
help: surround the struct literal with parentheses
   |
LL |     if x == (E::J { field: -42 }) {}
   |             +                   +

error: struct literals are not allowed here
  --> $DIR/struct-literal-variant-in-if.rs:19:13
   |
LL |     if x == E::K { field: "" } {}
   |             ^^^^^^^^^^^^^^^^^^
   |
help: surround the struct literal with parentheses
   |
LL |     if x == (E::K { field: "" }) {}
   |             +                  +

error[E0533]: expected value, found struct variant `E::V`
  --> $DIR/struct-literal-variant-in-if.rs:10:13
   |
LL |     if x == E::V { field } {}
   |             ^^^^ not a value

error[E0308]: mismatched types
  --> $DIR/struct-literal-variant-in-if.rs:10:20
   |
LL |     if x == E::V { field } {}
   |     ---------------^^^^^--
   |     |              |
   |     |              expected `()`, found `bool`
   |     expected this to be `()`

error[E0308]: mismatched types
  --> $DIR/struct-literal-variant-in-if.rs:21:20
   |
LL |     let y: usize = ();
   |            -----   ^^ expected `usize`, found `()`
   |            |
   |            expected due to this

error: aborting due to 7 previous errors

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