Matthias Krüger 3b36879203
Rollup merge of #135794 - estebank:non-exhaustive-dfv-ctor, r=jieyouxu
Detect missing fields with default values and suggest `..`

When a struct ctor use has missing fields, if all those missing fields have defaults, suggest `..`:

```
error[E0063]: missing fields `field1` and `field2` in initializer of `S`
  --> $DIR/non-exhaustive-ctor.rs:16:13
   |
LL |     let _ = S { field: () };
   |             ^ missing `field1` and `field2`
   |
help: all remaining fields have default values, you can use those values with `..`
   |
LL |     let _ = S { field: (), .. };
   |                          ++++
```
2025-01-22 20:37:26 +01:00
..
2025-01-07 16:04:14 +01:00
2025-01-18 22:09:35 +00:00
2025-01-07 16:04:14 +01:00
2025-01-07 16:04:14 +01:00
2025-01-07 16:04:14 +01:00
2025-01-07 16:04:14 +01:00
2025-01-07 16:04:14 +01:00
2025-01-07 16:04:14 +01:00
2025-01-10 02:22:57 +01:00
2025-01-07 16:04:14 +01:00
2025-01-07 16:04:14 +01:00
2025-01-06 06:11:06 +00:00
2025-01-10 02:22:57 +01:00

UI Tests

This folder contains rustc's UI tests.

Test Directives (Headers)

Typically, a UI test will have some test directives / headers which are special comments that tell compiletest how to build and interpret a test.

As part of an ongoing effort to rewrite compiletest (see https://github.com/rust-lang/compiler-team/issues/536), a major change proposal to change legacy compiletest-style headers // <directive> to ui_test-style headers //@ <directive> was accepted (see https://github.com/rust-lang/compiler-team/issues/512.

An example directive is ignore-test. In legacy compiletest style, the header would be written as

// ignore-test

but in ui_test style, the header would be written as

//@ ignore-test

compiletest is changed to accept only //@ directives for UI tests (currently), and will reject and report an error if it encounters any comments // <content> that may be parsed as a legacy compiletest-style test header. To fix this, you should migrate to the ui_test-style header //@ <content>.