error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:2:8 | LL | if Foo { x: 3 }.hi() { | ^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | if (Foo { x: 3 }).hi() { | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:5:19 | LL | if let true = Foo { x: 3 }.hi() { | ^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | if let true = (Foo { x: 3 }).hi() { | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:9:14 | LL | for x in Foo { x: 3 }.hi() { | ^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | for x in (Foo { x: 3 }).hi() { | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:14:11 | LL | while Foo { x: 3 }.hi() { | ^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | while (Foo { x: 3 }).hi() { | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:17:22 | LL | while let true = Foo { x: 3 }.hi() { | ^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | while let true = (Foo { x: 3 }).hi() { | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:21:11 | LL | match Foo { x: 3 } { | ^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | match (Foo { x: 3 }) { | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:30:17 | 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-literals-in-invalid-places.rs:32:17 | 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-literals-in-invalid-places.rs:34:17 | 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-literals-in-invalid-places.rs:36:17 | LL | if x == E::K { field: "" } {} | ^^^^^^^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | if x == (E::K { field: "" }) {} | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:43:14 | LL | while || Foo { x: 3 }.hi() { | ^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | while || (Foo { x: 3 }).hi() { | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:53:8 | LL | if Foo { x: one(), }.hi() { | ^^^^^^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | if (Foo { x: one(), }).hi() { | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:61:15 | LL | if FOO == self::Foo { x: one() } {} | ^^^^^^^^^^^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | if FOO == (self::Foo { x: one() }) {} | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:63:15 | LL | if FOO == Foo::<> { x: one() } {} | ^^^^^^^^^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | if FOO == (Foo::<> { x: one() }) {} | + + error: struct literals are not allowed here --> $DIR/struct-literals-in-invalid-places.rs:66:19 | LL | if FOO == ::Out { x: one() } {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | help: surround the struct literal with parentheses | LL | if FOO == (::Out { x: one() }) {} | + + error[E0658]: usage of qualified paths in this context is experimental --> $DIR/struct-literals-in-invalid-places.rs:66:19 | LL | if FOO == ::Out { x: one() } {} | ^^^^^^^^^^^^^^^^^ | = note: see issue #86935 for more information = help: add `#![feature(more_qualified_paths)]` to the crate attributes to enable = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date error[E0277]: `bool` is not an iterator --> $DIR/struct-literals-in-invalid-places.rs:9:14 | LL | for x in Foo { x: 3 }.hi() { | ^^^^^^^^^^^^^^^^^ `bool` is not an iterator | = help: the trait `Iterator` is not implemented for `bool` = note: required for `bool` to implement `IntoIterator` error[E0533]: expected value, found struct variant `E::V` --> $DIR/struct-literals-in-invalid-places.rs:27:17 | 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-literals-in-invalid-places.rs:27:24 | LL | if x == E::V { field } {} | ---------------^^^^^-- | | | | | expected `()`, found `bool` | expected this to be `()` | help: you might have meant to return this value | LL | if x == E::V { return field; } {} | ++++++ + error[E0308]: mismatched types --> $DIR/struct-literals-in-invalid-places.rs:38:24 | LL | let y: usize = (); | ----- ^^ expected `usize`, found `()` | | | expected due to this error[E0308]: mismatched types --> $DIR/struct-literals-in-invalid-places.rs:43:11 | LL | while || Foo { x: 3 }.hi() { | ^^^^^^^^^^^^^^^^^^^^ expected `bool`, found closure | = note: expected type `bool` found closure `{closure@$DIR/struct-literals-in-invalid-places.rs:43:11: 43:13}` help: use parentheses to call this closure | LL | while (|| Foo { x: 3 }.hi())() { | + +++ error: aborting due to 21 previous errors Some errors have detailed explanations: E0277, E0308, E0533, E0658. For more information about an error, try `rustc --explain E0277`.