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 | help: you might have meant to create a new value of the struct | LL | if x == (E::V { field }) {} | + + 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`.