Closed
Description
struct Foo { bar: f64, baz: i64 }
fn main() {
let _ = Foo { bar: .5, baz: 42 };
let bar = 1.5f32;
let _ = Foo { bar.into(), baz: -1 };
}
The first struct reports missing fields, bar
and baz
due to the syntax error:
error: expected expression, found `.`
--> src/main.rs:3:23
|
3 | let _ = Foo { bar: .5, baz: 42 };
| --- ^ expected expression
| |
| while parsing this struct
error[E0063]: missing fields `bar`, `baz` in initializer of `Foo`
--> src/main.rs:3:12
|
3 | let _ = Foo { bar: .5, baz: 42 };
| ^^^ missing `bar`, `baz`
The second struct reports a missing field baz
, and suggests an obviously wrong fix for a type mismatch error:
error: expected one of `,` or `}`, found `.`
--> src/main.rs:5:21
|
5 | let _ = Foo { bar.into(), baz: -1 };
| ^ expected one of `,` or `}` here
error[E0308]: mismatched types
--> src/main.rs:5:18
|
5 | let _ = Foo { bar.into(), baz: -1 };
| ^^^ expected f64, found f32
help: you can cast an `f32` to `f64` in a lossless way
|
5 | let _ = Foo { bar.into().into(), baz: -1 };
| ^^^^^^^^^^
error[E0063]: missing field `baz` in initializer of `Foo`
--> src/main.rs:5:12
|
5 | let _ = Foo { bar.into(), baz: -1 };
| ^^^ missing `baz`