Files
rust/tests/ui
Matthias Krüger 12cc9b4b6f Rollup merge of #135044 - compiler-errors:better-infer-suggestions-in-const, r=oli-obk
Improve infer (`_`) suggestions in `const`s and `static`s

Fixes https://github.com/rust-lang/rust/issues/135010.

This PR does a few things to (imo) greatly improve the error message when users write something like `static FOO: [i32; _] = [1, 2, 3]`.

Firstly, it adapts the recovery code for when we encounter `_` in a const/static to work a bit more like `fn foo() -> _`, and removes the somewhat redundant query `diagnostic_only_typeck`.

Secondly, it changes the lowering for `[T; _]` to always lower under the `feature(generic_arg_infer)` logic to `ConstArgKind::Infer`. We still issue the feature error, so it's not doing anything *observable* on the good path, but it does mean that we no longer erroneously interpret `[T; _]`'s array length as a `_` **wildcard expression** (à la destructuring assignment, like `(_, y) = expr`).

Lastly it makes the suggestions verbose and fixes (well, suppresses) a bug with stashing and suggestions.

r? oli-obk
2025-01-03 22:12:45 +01:00
..
2024-12-12 23:36:27 +00:00
2024-12-30 14:56:21 +07:00
2024-12-31 15:11:18 +08:00
2024-12-12 23:36:27 +00:00
2024-12-31 15:11:18 +08:00
2024-12-31 23:46:39 +08:00
2024-12-12 23:36:27 +00:00
2024-12-12 23:36:27 +00:00
2024-12-31 23:46:39 +08:00
2024-12-31 23:46:39 +08:00
2024-12-13 14:18:41 -08:00
2024-12-12 23:36:27 +00:00
2024-12-12 23:36:27 +00:00
2024-12-13 00:04:56 +00:00
2024-12-16 14:59:10 -05:00
2024-12-25 10:36:32 +01:00
2024-12-07 22:18:51 +00:00
2024-12-06 16:42:09 -05:00
2024-12-12 23:36:27 +00:00
2024-12-02 03:43:50 -07: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>.