error[E0423]: expected value, found struct variant `E::V` --> $DIR/struct-literal-variant-in-if.rs:7:13 | LL | if x == E::V { field } {} | ^^^^---------- | | | help: surround the struct literal with parenthesis: `(E::V { field })` error[E0308]: mismatched types --> $DIR/struct-literal-variant-in-if.rs:7:20 | LL | fn test_E(x: E) { | - help: try adding a return type: `-> bool` LL | let field = true; LL | if x == E::V { field } {} | ^^^^^ expected (), found bool | = note: expected type `()` found type `bool` error[E0308]: mismatched types --> $DIR/struct-literal-variant-in-if.rs:10:20 | LL | let y: usize = (); | ^^ expected usize, found () | = note: expected type `usize` found type `()` error: aborting due to 3 previous errors Some errors occurred: E0308, E0423. For more information about an error, try `rustc --explain E0308`.