rust/src/test/ui/parser/struct-default-values-and-missing-field-separator.fixed
Esteban Küber 7697ce4560 Recover from invalid struct item syntax
Parse unsupported "default field const values":

```rust
struct S {
    field: Type = const_val,
}
```

Recover from small `:` typo and provide suggestion:

```rust
struct S {
    field; Type,
    field2= Type,
}
```
2021-05-11 18:48:57 -07:00

35 lines
1.1 KiB
Rust

// run-rustfix
#![allow(dead_code)]
enum E {
A,
}
struct S {
field1: i32, //~ ERROR default values on `struct` fields aren't supported
field2: E, //~ ERROR default values on `struct` fields aren't supported
field3: i32, //~ ERROR default values on `struct` fields aren't supported
field4: i32, //~ ERROR default values on `struct` fields aren't supported
field5: E, //~ ERROR default values on `struct` fields aren't supported
field6: E, //~ ERROR default values on `struct` fields aren't supported
}
struct S1 {
field1: i32, //~ ERROR expected `,`, or `}`, found `field2`
field2: E, //~ ERROR expected `,`, or `}`, found `field3`
field3: i32, //~ ERROR default values on `struct` fields aren't supported
field4: i32, //~ ERROR default values on `struct` fields aren't supported
field5: E, //~ ERROR default values on `struct` fields aren't supported
field6: E, //~ ERROR default values on `struct` fields aren't supported
}
struct S2 {
field1 : i32, //~ ERROR expected `:`, found `=`
field2: E, //~ ERROR expected `:`, found `;`
}
const fn foo(_: i32) -> E {
E::A
}
fn main() {}