summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2025-06-22 17:35:35 +0200
committerGitHub <noreply@github.com>2025-06-22 17:35:35 +0200
commit194e58c75cd38475fdda7979975b0c69a0e20e3f (patch)
treed0a039e8f0196ba45b89dd53d45d2bb16116a97c /tests
parent2681bb095206433ba6f6d32757281a55809059a2 (diff)
parent26a6b557172a7186c140c7aa42bf3873802a39fd (diff)
downloadrust-194e58c75cd38475fdda7979975b0c69a0e20e3f.tar.gz
rust-194e58c75cd38475fdda7979975b0c69a0e20e3f.zip
Rollup merge of #142798 - camsteffen:recover-semi, r=compiler-errors
Don't fail to parse a struct if a semicolon is used to separate fields

The first commit is a small refactor.
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/parser/recover/recover-field-semi.rs6
-rw-r--r--tests/ui/parser/recover/recover-field-semi.stderr12
2 files changed, 9 insertions, 9 deletions
diff --git a/tests/ui/parser/recover/recover-field-semi.rs b/tests/ui/parser/recover/recover-field-semi.rs
index b703578860e..b6f235f8ad1 100644
--- a/tests/ui/parser/recover/recover-field-semi.rs
+++ b/tests/ui/parser/recover/recover-field-semi.rs
@@ -3,7 +3,7 @@ struct Foo {
     //~^ ERROR struct fields are separated by `,`
 }
 
-union Bar { //~ ERROR
+union Bar {
     foo: i32;
     //~^ ERROR union fields are separated by `,`
 }
@@ -13,4 +13,6 @@ enum Baz {
     //~^ ERROR struct fields are separated by `,`
 }
 
-fn main() {}
+fn main() {
+    let _ = Foo { foo: "" }; //~ ERROR mismatched types
+}
diff --git a/tests/ui/parser/recover/recover-field-semi.stderr b/tests/ui/parser/recover/recover-field-semi.stderr
index 3cf4847488c..9b1a34e134b 100644
--- a/tests/ui/parser/recover/recover-field-semi.stderr
+++ b/tests/ui/parser/recover/recover-field-semi.stderr
@@ -22,14 +22,12 @@ LL |     Qux { foo: i32; }
    |     |
    |     while parsing this struct
 
-error: unions cannot have zero fields
-  --> $DIR/recover-field-semi.rs:6:1
+error[E0308]: mismatched types
+  --> $DIR/recover-field-semi.rs:17:24
    |
-LL | / union Bar {
-LL | |     foo: i32;
-LL | |
-LL | | }
-   | |_^
+LL |     let _ = Foo { foo: "" };
+   |                        ^^ expected `i32`, found `&str`
 
 error: aborting due to 4 previous errors
 
+For more information about this error, try `rustc --explain E0308`.