error[E0308]: mismatched types --> $DIR/assignment-in-if.rs:15:8 | LL | if x = x { | ^^^^^ | | | expected bool, found () | help: try comparing for equality: `x == x` | = note: expected type `bool` found type `()` error[E0308]: mismatched types --> $DIR/assignment-in-if.rs:20:8 | LL | if (x = x) { | ^^^^^^^ | | | expected bool, found () | help: try comparing for equality: `x == x` | = note: expected type `bool` found type `()` error[E0308]: mismatched types --> $DIR/assignment-in-if.rs:25:8 | LL | if y = (Foo { foo: x }) { | ^^^^^^^^^^^^^^^^^^^^ | | | expected bool, found () | help: try comparing for equality: `y == (Foo { foo: x })` | = note: expected type `bool` found type `()` error[E0308]: mismatched types --> $DIR/assignment-in-if.rs:30:8 | LL | if 3 = x { | ^^^^^ | | | expected bool, found () | help: try comparing for equality: `3 == x` | = note: expected type `bool` found type `()` error[E0308]: mismatched types --> $DIR/assignment-in-if.rs:34:8 | LL | if (if true { x = 4 } else { x = 5 }) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bool, found () | = note: expected type `bool` found type `()` error: aborting due to 5 previous errors For more information about this error, try `rustc --explain E0308`.