about summary refs log tree commit diff
path: root/src/test/ui/parser/struct-default-values-and-missing-field-separator.fixed
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2021-05-01 12:58:15 -0700
committerEsteban Küber <esteban@kuber.com.ar>2021-05-11 18:48:57 -0700
commit7697ce4560b7799f5fb7e48524b5a347ba893b4e (patch)
treeb0b0ff87e0ac2fb1e7b72bafa3a03a10ddfcee6f /src/test/ui/parser/struct-default-values-and-missing-field-separator.fixed
parent890803d3722b5cf8810ae1f49b4d9f062a87c927 (diff)
downloadrust-7697ce4560b7799f5fb7e48524b5a347ba893b4e.tar.gz
rust-7697ce4560b7799f5fb7e48524b5a347ba893b4e.zip
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,
}
```
Diffstat (limited to 'src/test/ui/parser/struct-default-values-and-missing-field-separator.fixed')
-rw-r--r--src/test/ui/parser/struct-default-values-and-missing-field-separator.fixed35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/test/ui/parser/struct-default-values-and-missing-field-separator.fixed b/src/test/ui/parser/struct-default-values-and-missing-field-separator.fixed
new file mode 100644
index 00000000000..28191b82621
--- /dev/null
+++ b/src/test/ui/parser/struct-default-values-and-missing-field-separator.fixed
@@ -0,0 +1,35 @@
+// 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() {}