rust/tests/ui/parser/struct-literals-in-invalid-places.stderr
León Orell Valerian Liehr b501e58c2e
Incorporate issue-111692.rs into the larger test file and add more test cases
Note that issue-111692.rs was incorrectly named: It's a regression test for
issue [#]112278, not for [#]111692. That's been addressed, too.
2025-03-25 15:16:16 +01:00

234 lines
7.2 KiB
Text

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 == <T as Trait>::Out { x: one() } {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
help: surround the struct literal with parentheses
|
LL | if FOO == (<T as Trait>::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 == <T as Trait>::Out { x: one() } {}
| ^^^^^^^^^^^^^^^^^
|
= note: see issue #86935 <https://github.com/rust-lang/rust/issues/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`.