rust/tests/ui
bors 8bf5a8d12f Auto merge of #132833 - est31:stabilize_let_chains, r=fee1-dead
Stabilize let chains in the 2024 edition

# Stabilization report

This proposes the stabilization of `let_chains` ([tracking issue], [RFC 2497]) in the [2024 edition] of Rust.

[tracking issue]: https://github.com/rust-lang/rust/issues/53667
[RFC 2497]: https://github.com/rust-lang/rfcs/pull/2497
[2024 edition]: https://doc.rust-lang.org/nightly/edition-guide/rust-2024/index.html

## What is being stabilized

The ability to `&&`-chain `let` statements inside `if` and `while` is being stabilized, allowing intermixture with boolean expressions. The patterns inside the `let` sub-expressions can be irrefutable or refutable.

```Rust
struct FnCall<'a> {
    fn_name: &'a str,
    args: Vec<i32>,
}

fn is_legal_ident(s: &str) -> bool {
    s.chars()
        .all(|c| ('a'..='z').contains(&c) || ('A'..='Z').contains(&c))
}

impl<'a> FnCall<'a> {
    fn parse(s: &'a str) -> Option<Self> {
        if let Some((fn_name, after_name)) = s.split_once("(")
            && !fn_name.is_empty()
            && is_legal_ident(fn_name)
            && let Some((args_str, "")) = after_name.rsplit_once(")")
        {
            let args = args_str
                .split(',')
                .map(|arg| arg.parse())
                .collect::<Result<Vec<_>, _>>();
            args.ok().map(|args| FnCall { fn_name, args })
        } else {
            None
        }
    }
    fn exec(&self) -> Option<i32> {
        let iter = self.args.iter().copied();
        match self.fn_name {
            "sum" => Some(iter.sum()),
            "max" => iter.max(),
            "min" => iter.min(),
            _ => None,
        }
    }
}

fn main() {
    println!("{:?}", FnCall::parse("sum(1,2,3)").unwrap().exec());
    println!("{:?}", FnCall::parse("max(4,5)").unwrap().exec());
}
```

The feature will only be stabilized for the 2024 edition and future editions. Users of past editions will get an error with a hint to update the edition.

closes #53667

## Why 2024 edition?

Rust generally tries to ship new features to all editions. So even the oldest editions receive the newest features. However, sometimes a feature requires a breaking change so much that offering the feature without the breaking change makes no sense. This occurs rarely, but has happened in the 2018 edition already with `async` and `await` syntax. It required an edition boundary in order for `async`/`await` to become keywords, and the entire feature foots on those keywords.

In the instance of let chains, the issue is the drop order of `if let` chains. If we want `if let` chains to be compatible with `if let`, drop order makes it hard for us to [generate correct MIR]. It would be strange to have different behaviour for `if let ... {}` and `if true && let ... {}`. So it's better to [stay consistent with `if let`].

In edition 2024, [drop order changes] have been introduced to make `if let` temporaries be lived more shortly. These changes also affected `if let` chains. These changes make sense even if you don't take the `if let` chains MIR generation problem into account. But if we want to use them as the solution to the MIR generation problem, we need to restrict let chains to edition 2024 and beyond: for let chains, it's not just a change towards more sensible behaviour, but one required for correct function.

[generate correct MIR]: https://github.com/rust-lang/rust/issues/104843
[stay consistent with `if let`]: https://github.com/rust-lang/rust/pull/103293#issuecomment-1293408574
[drop order changes]: https://github.com/rust-lang/rust/issues/124085

## Introduction considerations

As edition 2024 is very new, this stabilization PR only makes it possible to use let chains on 2024 without that feature gate, it doesn't mark that feature gate as stable/removed. I would propose to continue offering the `let_chains` feature (behind a feature gate) for a limited time (maybe 3 months after stabilization?) on older editions to allow nightly users to adopt edition 2024 at their own pace. After that, the feature gate shall be marked as *stabilized*, not removed, and replaced by an error on editions 2021 and below.

## Implementation history

* History from before March 14, 2022 can be found in the [original stabilization PR] that was reverted.
* https://github.com/rust-lang/rust/pull/94927
* https://github.com/rust-lang/rust/pull/94951
* https://github.com/rust-lang/rust/pull/94974
* https://github.com/rust-lang/rust/pull/95008
* https://github.com/rust-lang/rust/pull/97295
* https://github.com/rust-lang/rust/pull/98633
* https://github.com/rust-lang/rust/pull/99731
* https://github.com/rust-lang/rust/pull/102394
* https://github.com/rust-lang/rust/pull/100526
* https://github.com/rust-lang/rust/pull/100538
* https://github.com/rust-lang/rust/pull/102998
* https://github.com/rust-lang/rust/pull/103405
* https://github.com/rust-lang/rust/pull/103293
* https://github.com/rust-lang/rust/pull/107251
* https://github.com/rust-lang/rust/pull/110568
* https://github.com/rust-lang/rust/pull/115677
* https://github.com/rust-lang/rust/pull/117743
* https://github.com/rust-lang/rust/pull/117770
* https://github.com/rust-lang/rust/pull/118191
* https://github.com/rust-lang/rust/pull/119554
* https://github.com/rust-lang/rust/pull/129394
* https://github.com/rust-lang/rust/pull/132828
* https://github.com/rust-lang/reference/pull/1179
* https://github.com/rust-lang/reference/pull/1251
* https://github.com/rust-lang/rustfmt/pull/5910

[original stabilization PR]: https://github.com/rust-lang/rust/pull/94927

## Adoption history

### In the compiler

* History before March 14, 2022 can be found in the [original stabilization PR].
* https://github.com/rust-lang/rust/pull/115983
* https://github.com/rust-lang/rust/pull/116549
* https://github.com/rust-lang/rust/pull/116688

### Outside of the compiler

* https://github.com/rust-lang/rust-clippy/pull/11750
* [rspack](https://github.com/web-infra-dev/rspack)
* [risingwave](https://github.com/risingwavelabs/risingwave)
* [dylint](https://github.com/trailofbits/dylint)
* [convex-backend](https://github.com/get-convex/convex-backend)
* [tikv](https://github.com/tikv/tikv)
* [Daft](https://github.com/Eventual-Inc/Daft)
* [greptimedb](https://github.com/GreptimeTeam/greptimedb)

## Tests

<details>

### Intentional restrictions

[`partially-macro-expanded.rs`](4adafcf40a/tests/ui/rfcs/rfc-2294-if-let-guard/partially-macro-expanded.rs), [`macro-expanded.rs`](4adafcf40a/tests/ui/rfcs/rfc-2294-if-let-guard/macro-expanded.rs): it is possible to use macros to expand to both the pattern and the expression inside a let chain, but not to the entire `let pat = expr` operand.
[`parens.rs`](4adafcf40a/tests/ui/rfcs/rfc-2294-if-let-guard/parens.rs): `if (let pat = expr)` is not allowed in chains
[`ensure-that-let-else-does-not-interact-with-let-chains.rs`](4adafcf40a/tests/ui/rfcs/rfc-2497-if-let-chains/ensure-that-let-else-does-not-interact-with-let-chains.rs): `let...else` doesn't support chaining.

### Overlap with match guards

[`move-guard-if-let-chain.rs`](4adafcf40a/tests/ui/rfcs/rfc-2294-if-let-guard/move-guard-if-let-chain.rs): test for the `use moved value` error working well in match guards. could maybe be extended with let chains that have more than one `let`
[`shadowing.rs`](4adafcf40a/tests/ui/rfcs/rfc-2294-if-let-guard/shadowing.rs): shadowing in if let guards works as expected
[`ast-validate-guards.rs`](4adafcf40a/tests/ui/rfcs/rfc-2497-if-let-chains/ast-validate-guards.rs): let chains in match guards require the match guards feature gate

### Simple cases from the early days

PR #88642 has added some tests with very simple usages of `let else`, mostly as regression tests to early bugs.

[`then-else-blocks.rs`](4adafcf40a/tests/ui/rfcs/rfc-2497-if-let-chains/then-else-blocks.rs)
[`ast-lowering-does-not-wrap-let-chains.rs`](4adafcf40a/tests/ui/rfcs/rfc-2497-if-let-chains/ast-lowering-does-not-wrap-let-chains.rs)
[`issue-90722.rs`](4adafcf40a/tests/ui/rfcs/rfc-2497-if-let-chains/issue-90722.rs)
[`issue-92145.rs`](4adafcf40a/tests/ui/rfcs/rfc-2497-if-let-chains/issue-92145.rs)

### Drop order/MIR scoping tests

[`issue-100276.rs`](4adafcf40a/tests/ui/drop/issue-100276.rs): let expressions on RHS aren't terminating scopes
[`drop_order.rs`](4adafcf40a/tests/ui/drop/drop_order.rs): exhaustive temporary drop order test for various Rust constructs, including let chains
[`scope.rs`](4adafcf40a/tests/ui/rfcs/rfc-2294-if-let-guard/scope.rs): match guard scoping test
[`drop-scope.rs`](4adafcf40a/tests/ui/rfcs/rfc-2294-if-let-guard/drop-scope.rs): another match guard scoping test, ensuring that temporaries in if-let guards live for the arm
[`drop_order_if_let_rescope.rs`](4adafcf40a/tests/ui/drop/drop_order_if_let_rescope.rs): if let rescoping on edition 2024, including chains
[`mir_let_chains_drop_order.rs`](4adafcf40a/tests/ui/mir/mir_let_chains_drop_order.rs): comprehensive drop order test for let chains, distinguishes editions 2021 and 2024.
[`issue-99938.rs`](4adafcf40a/tests/ui/rfcs/rfc-2497-if-let-chains/issue-99938.rs), [`issue-99852.rs`](4adafcf40a/tests/ui/mir/issue-99852.rs) both bad MIR ICEs fixed by #102394

### Linting

[`irrefutable-lets.rs`](4adafcf40a/tests/ui/rfcs/rfc-2497-if-let-chains/irrefutable-lets.rs): trailing and leading irrefutable let patterns get linted for, others don't. The lint is turned off for `else if`.
[`issue-121070-let-range.rs`](4adafcf40a/tests/ui/lint/issue-121070-let-range.rs): regression test for false positive of the unused parens lint, precedence requires the `()`s here

### Parser: intentional restrictions

[`disallowed-positions.rs`](2128d8df0e/tests/ui/rfcs/rfc-2497-if-let-chains/disallowed-positions.rs): `let` in expression context is rejected everywhere except at the top level
[`invalid-let-in-a-valid-let-context.rs`](4adafcf40a/tests/ui/rfcs/rfc-2497-if-let-chains/invalid-let-in-a-valid-let-context.rs): nested `let` is not allowed (let's are no legal expressions just because they are allowed in `if` and `while`).

### Parser: recovery

[`issue-103381.rs`](4adafcf40a/tests/ui/parser/issues/issue-103381.rs): Graceful recovery of incorrect chaining of `if` and `if let`
[`semi-in-let-chain.rs`](4adafcf40a/tests/ui/parser/semi-in-let-chain.rs): Ensure that stray `;`s in let chains give nice errors (`if_chain!` users might be accustomed to `;`s)
[`deli-ident-issue-1.rs`](4adafcf40a/tests/ui/parser/deli-ident-issue-1.rs), [`brace-in-let-chain.rs`](4adafcf40a/tests/ui/parser/brace-in-let-chain.rs): Ensure that stray unclosed `{`s in let chains give nice errors and hints

### Misc

[`conflicting_bindings.rs`](4adafcf40a/tests/ui/pattern/usefulness/conflicting_bindings.rs): the conflicting bindings check also works in let chains. Personally, I'd extend it to chains with multiple let's as well.
[`let-chains-attr.rs`](4adafcf40a/tests/ui/expr/if/attrs/let-chains-attr.rs): attributes work on let chains

### Tangential tests with `#![feature(let_chains)]`

[`if-let.rs`](4adafcf40a/tests/coverage/branch/if-let.rs): MC/DC coverage tests for let chains
[`logical_or_in_conditional.rs`](4adafcf40a/tests/mir-opt/building/logical_or_in_conditional.rs): not really about let chains, more about dropping/scoping behaviour of `||`
[`stringify.rs`](4adafcf40a/tests/ui/macros/stringify.rs): exhaustive test of the `stringify` macro
[`expanded-interpolation.rs`](4adafcf40a/tests/ui/unpretty/expanded-interpolation.rs), [`expanded-exhaustive.rs`](4adafcf40a/tests/ui/unpretty/expanded-exhaustive.rs): Exhaustive test of `-Zunpretty`
[`diverges-not.rs`](4adafcf40a/tests/ui/rfcs/rfc-0000-never_patterns/diverges-not.rs): Never type, mostly tangential to let chains

</details>

## Possible future work

* There is proposals to allow `if let Pat(bindings) = expr {}` to be written as `if expr is Pat(bindings) {}` ([RFC 3573]). `if let` chains are a natural extension of the already existing `if let` syntax, and I'd argue orthogonal towards `is` syntax.
  * https://github.com/rust-lang/lang-team/issues/297
* One could have similar chaining inside `let ... else` statements. There is no proposed RFC for this however, nor is it implemented on nightly.
* Match guards have the `if` keyword as well, but on stable Rust, they don't support `let`. The functionality is available via an unstable feature ([`if_let_guard` tracking issue]). Stabilization of let chains affects this feature in so far as match guards containing let chains now only need the `if_let_guard` feature gate be present instead of also the `let_chains` feature (NOTE: this PR doesn't implement this simplification, it's left for future work).

[RFC 3573]: https://github.com/rust-lang/rfcs/pull/3573
[`if_let_guard` tracking issue]: https://github.com/rust-lang/rust/issues/51114

## Open questions / blockers

- [ ] bad recovery if you don't put a `let` (I don't think this is a blocker): [#117977](https://github.com/rust-lang/rust/issues/117977)
- [x] An instance where a temporary lives shorter than with nested ifs, breaking compilation: [#103476](https://github.com/rust-lang/rust/issues/103476). Personally I don't think this is a blocker either, as it's an edge case. Edit: turns out to not reproduce in edition 2025 any more, due to let rescoping. regression test added in #133093
- [x] One should probably extend the tests for `move-guard-if-let-chain.rs` and `conflicting_bindings.rs` to have chains with multiple let's: done in 133093
- [x] Parsing rejection tests: addressed by https://github.com/rust-lang/rust/pull/132828
- [x] [Style](https://rust-lang.zulipchat.com/#narrow/channel/346005-t-style/topic/let.20chains.20stabilization.20and.20formatting): https://github.com/rust-lang/rust/pull/139456
- [x] https://github.com/rust-lang/rust/issues/86730 explicitly mentions `let_else`. I think we can live with `let pat = expr` not evaluating as `expr` for macro_rules macros, especially given that `let pat = expr` is not a legal expression anywhere except inside `if` and `while`.
- [x] Documentation in the reference: https://github.com/rust-lang/reference/pull/1740
- [x] Add chapter to the Rust 2024 [edition guide]: https://github.com/rust-lang/edition-guide/pull/337
- [x] Resolve open questions on desired drop order.

[original reference PR]: https://github.com/rust-lang/reference/pull/1179
[edition guide]: https://github.com/rust-lang/edition-guide
2025-04-22 07:54:10 +00:00
..
abi Replace infallible name_or_empty methods with fallible name methods. 2025-04-17 09:50:52 +10:00
alloc-error Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
allocator compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
annotate-snippet Update tests to use new proc-macro header 2024-11-27 07:18:25 -08:00
anon-params UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
argfile Remove the -test suffix from normalize directives 2024-12-27 19:58:16 +11:00
argument-suggestions Cleaned up 4 tests in tests/ui/issues 2025-04-19 01:10:26 -06:00
array-slice-vec UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
asm stabilize naked_functions 2025-04-20 11:18:38 +02:00
associated-consts UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
associated-inherent-types UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
associated-item Rollup merge of #137631 - TaKO8Ki:issue-137508, r=compiler-errors 2025-02-26 19:03:56 +01:00
associated-type-bounds UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
associated-types Rollup merge of #138632 - clubby789:stabilize-cfg-boolean-lit, r=davidtwco,Urgau,traviscross 2025-04-17 06:25:15 +02:00
async-await Auto merge of #139114 - m-ou-se:super-let-pin, r=davidtwco 2025-04-19 08:01:53 +00:00
attributes Rollup merge of #139615 - nnethercote:rm-name_or_empty, r=jdonszelmann 2025-04-18 05:16:29 +02:00
auto-traits Rollup merge of #138632 - clubby789:stabilize-cfg-boolean-lit, r=davidtwco,Urgau,traviscross 2025-04-17 06:25:15 +02:00
autodiff emit a better error message for using the macro incorrectly 2025-04-08 21:54:34 -04:00
autoref-autoderef tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
auxiliary tests: adjust some augmented-assignment* tests 2025-04-19 18:42:24 +08:00
backtrace tests: use needs-subprocess instead of ignore-{wasm32,emscripten,sgx} 2025-01-23 20:51:29 +08:00
bench tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
binding Remove some unnecessary parens in assert! conditions 2025-02-06 22:28:44 +00:00
binop tests: adjust some augmented-assignment* tests 2025-04-19 18:42:24 +08:00
blind Accurate use rename suggestion span 2024-07-18 00:00:04 +00:00
block-result Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
bootstrap tests: use compiletest-ignore-dir for bootstrap self-tests 2025-04-14 15:28:41 +08:00
borrowck Auto merge of #140127 - ChrisDenton:rollup-2kye32h, r=ChrisDenton 2025-04-21 19:28:16 +00:00
box tests: use needs-threads instead of ignore-emscripten 2025-01-23 20:51:29 +08:00
btreemap Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
builtin-superkinds Mention type parameter in more cases and don't suggest ~const bound already there 2024-12-07 21:37:13 +00:00
c-variadic compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
cast Rollup merge of #138962 - xizheyin:issue-138836, r=compiler-errors 2025-04-13 17:37:52 -04:00
cfg Rollup merge of #138632 - clubby789:stabilize-cfg-boolean-lit, r=davidtwco,Urgau,traviscross 2025-04-17 06:25:15 +02:00
check-cfg Auto merge of #139949 - matthiaskrgr:rollup-pxc5tsx, r=matthiaskrgr 2025-04-17 11:21:54 +00:00
closure-expected-type
closure_context
closures Auto merge of #139577 - davidtwco:sizedness-go-vroom, r=oli-obk 2025-04-14 19:54:27 +00:00
cmse-nonsecure Bless UI tests 2025-03-03 08:52:07 +01:00
codegen Cleaned up 4 tests in tests/ui/issues 2025-04-19 01:10:26 -06:00
codemap_tests Rollup merge of #139967 - jieyouxu:auxiliary, r=wesleywiser 2025-04-17 21:53:25 +02:00
coercion Normalize ADT fields in find_tails_for_unsizing 2025-04-14 16:51:00 +00:00
coherence Do not rely on type_var_origin in OrphanCheckErr::NonLocalInputType 2025-03-20 02:17:14 +00:00
coinduction
command Move #![crate_type] UI tests into attributes directory 2025-02-15 03:41:07 +01:00
compare-method Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
compiletest-self-test compiletest: Trim whitespace from environment variable names 2025-04-08 21:31:53 +10:00
conditional-compilation Rollup merge of #139967 - jieyouxu:auxiliary, r=wesleywiser 2025-04-17 21:53:25 +02:00
confuse-field-and-method Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
const-generics Explicitly annotate edition for unpretty=expanded and unpretty=hir tests 2025-04-16 11:10:10 +02:00
const-ptr compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
const_prop Tweak unevaluated constant in pattern error 2024-12-04 20:29:35 +00:00
consts Rollup merge of #138632 - clubby789:stabilize-cfg-boolean-lit, r=davidtwco,Urgau,traviscross 2025-04-17 06:25:15 +02:00
contracts Fix unreachable expression warning 2025-04-08 10:46:31 -07:00
coroutine Auto merge of #139114 - m-ou-se:super-let-pin, r=davidtwco 2025-04-19 08:01:53 +00:00
coverage-attr Factor some code out of AstValidator::visit_items. 2025-04-02 09:16:34 +11:00
crate-loading tests: rebless some tests as a side-effect of TEST_BUILD_DIR changes 2025-03-04 00:21:02 +08:00
cross tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
cross-crate Allow fn pointers comparisons lint in UI tests 2024-12-02 18:43:37 +01:00
custom_test_frameworks Address review comments. 2025-04-01 16:07:23 +11:00
cycle-trait
dataflow_const_prop dataflow_const_prop: do not eval a ptr address in SwitchInt 2024-12-09 21:06:29 +08:00
debuginfo Stabilize -Zdwarf-version as -Cdwarf-version 2025-04-14 21:26:41 -05:00
definition-reachable
delegation Rollup merge of #138632 - clubby789:stabilize-cfg-boolean-lit, r=davidtwco,Urgau,traviscross 2025-04-17 06:25:15 +02:00
dep-graph compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
deprecation replace //@ compile-flags: --edition with //@ edition 2025-04-10 09:56:37 +02:00
deref-patterns Cleaned up 5 tests in tests/ui 2025-04-21 16:16:38 +09:00
derived-errors Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
derives Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
deriving Remove let_chains feature gate from even more tests 2025-04-18 15:57:29 +02:00
dest-prop
destructuring-assignment More sophisticated span trimming 2025-02-21 00:41:17 +00:00
diagnostic-flags Remove attribute #[rustc_error] 2025-03-30 01:32:21 +03:00
diagnostic-width Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
diagnostic_namespace Rollup merge of #139091 - mejrs:format, r=compiler-errors 2025-04-19 15:09:33 +00:00
did_you_mean Auto merge of #139940 - matthiaskrgr:rollup-rd4d3fn, r=matthiaskrgr 2025-04-17 04:52:34 +00:00
directory_ownership tests: remove unused auxiliaries under tests/ui/directory_ownership/ 2025-04-17 19:45:28 +08:00
disallowed-deconstructing
dollar-crate
drop Remove let_chains feature gate from even more tests 2025-04-18 15:57:29 +02:00
drop-bounds
dropck Don't immediately panic if dropck fails without returning errors 2025-02-24 16:41:18 +00:00
dst Delete tuple unsizing 2025-02-27 10:26:33 +00:00
duplicate UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
dyn-compatibility UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
dyn-drop
dyn-keyword Fix suggestion when there are generics, inline some things 2025-03-08 20:44:57 +00:00
dyn-star UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
dynamically-sized-types Delete tuple unsizing 2025-02-27 10:26:33 +00:00
editions UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
empty Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
entry-point compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
enum Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
enum-discriminant UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
env-macro Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
ergonomic-clones Rollup merge of #138628 - spastorino:add-more-ergonomic-clone-tests, r=nikomatsakis 2025-04-09 20:23:09 +02:00
error-codes UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
error-emitter Fix multiline span start special case 2025-03-07 17:55:08 +00:00
errors ignore aix for tests/ui/erros/pic-linker.rs 2025-04-16 19:26:26 -04:00
explicit Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
explicit-tail-calls Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
expr Remove let_chains feature gate from some places in the testsuite 2025-04-18 15:57:29 +02:00
extern UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
extern-flag UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
feature-gates stabilize naked_functions 2025-04-20 11:18:38 +02:00
ffi-attrs error on unsafe attributes in pre-2024 editions 2025-04-13 01:22:59 +02:00
float move f16/f128 const fn under f16/f128 feature gate 2024-10-05 10:13:18 +02:00
fmt compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
fn compiletest: Make SUGGESTION annotations viral 2025-04-10 23:48:57 +03:00
fn-main
for Tweak multispan rendering 2024-12-12 23:36:27 +00:00
for-loop-while Remove some unnecessary parens in assert! conditions 2025-02-06 22:28:44 +00:00
force-inlining Rollup merge of #137599 - davidtwco:use-minicore-more, r=jieyouxu 2025-02-28 22:29:52 +08:00
foreign UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
fully-qualified-type
function-pointer Remove a duplicated check that doesn't do anything anymore. 2024-12-19 10:56:31 +00:00
functional-struct-update Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
functions-closures tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
generic-associated-types Rollup merge of #139854 - fmease:modern-diag-for-lt-in-ty, r=davidtwco 2025-04-17 00:16:22 +02:00
generic-const-items Improve AssocItem::descr. 2025-04-11 11:03:08 +10:00
generics Remove old diagnostic notes for type ascription syntax 2025-04-16 20:24:55 +10:00
half-open-range-patterns Rollup merge of #138632 - clubby789:stabilize-cfg-boolean-lit, r=davidtwco,Urgau,traviscross 2025-04-17 06:25:15 +02:00
hashmap Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
hello_world
higher-ranked Auto merge of #139578 - ferrocene:pa-compiletest-edition, r=jieyouxu 2025-04-11 10:53:45 +00:00
hygiene hygiene: Rename semi-transparent to semi-opaque 2025-03-31 15:41:48 +03:00
illegal-sized-bound UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
impl-header-lifetime-elision
impl-trait Don't compute name of associated item if it's an RPITIT 2025-04-20 16:08:39 +00:00
implied-bounds Auto merge of #139552 - matthiaskrgr:rollup-b194mk8, r=matthiaskrgr 2025-04-09 05:39:18 +00:00
imports replace //@ compile-flags: --edition with //@ edition 2025-04-10 09:56:37 +02:00
include-macros Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
incoherent-inherent-impls chore: fix typos 2024-12-31 23:46:39 +08:00
indexing Implement SliceIndex for ByteStr 2025-03-11 20:26:10 -07:00
inference tests: adjust tests/ui/auto-instantiate.rs 2025-04-19 18:42:24 +08:00
infinite compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
inherent-impls-overlap-check Update tests to use new proc-macro header 2024-11-27 07:18:25 -08:00
inline-const UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
instrument-coverage Update the minimum external LLVM to 19 2025-04-05 11:44:38 -07:00
instrument-xray compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
interior-mutability Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
internal compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
internal-lints Remove rustc::existing_doc_keyword lint. 2024-12-17 13:56:10 +11:00
intrinsics replace some #[rustc_intrinsic] usage with use of the libcore declarations 2025-04-16 14:48:20 +02:00
invalid UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
invalid-compile-flags Construct OutputType using macro and print [=FILENAME] help info 2025-04-21 18:07:58 +08:00
invalid-module-declaration compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
invalid-self-argument
io-checks compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
issues Rollup merge of #139995 - spencer3035:clean-ui-tests-4-of-n, r=jieyouxu 2025-04-19 15:09:36 +00:00
iterators UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
json tests: rebless some tests as a side-effect of TEST_BUILD_DIR changes 2025-03-04 00:21:02 +08:00
keyword Reword "crate not found" resolve message 2025-01-24 01:19:50 +00:00
kindck Remove dyn_compatible_for_dispatch 2025-02-24 18:48:40 +00:00
label replace //@ compile-flags: --edition with //@ edition 2025-04-10 09:56:37 +02:00
lang-items compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
late-bound-lifetimes Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
layout UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
lazy-type-alias change definitely non-productive cycles to error 2025-03-05 10:06:43 +01:00
lazy-type-alias-impl-trait Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
let-else replace //@ compile-flags: --edition with //@ edition 2025-04-10 09:56:37 +02:00
lexer Use cfg(false) in UI tests 2025-04-03 21:41:58 +00:00
lifetimes Auto merge of #139578 - ferrocene:pa-compiletest-edition, r=jieyouxu 2025-04-11 10:53:45 +00:00
limits UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
link-native-libs Auto merge of #139949 - matthiaskrgr:rollup-pxc5tsx, r=matthiaskrgr 2025-04-17 11:21:54 +00:00
linkage-attr tests: use specific-purpose needs-crate-type over ignore-$target directives 2025-04-10 12:52:08 +08:00
linking Move link-self-contained-consistency test to a more reasonable location 2025-04-03 15:41:38 +02:00
lint Auto merge of #132833 - est31:stabilize_let_chains, r=fee1-dead 2025-04-22 07:54:10 +00:00
liveness omit unused args warnings for intrinsics without body 2025-01-23 14:32:21 -05:00
loops If a label is placed on the block of a loop instead of the header, suggest moving it to the header. 2025-03-17 01:59:37 -05:00
lowering Make synthetic RPITIT assoc ty name handling more rigorous. 2025-03-07 20:59:45 +11:00
lto Stabilize -Zdwarf-version as -Cdwarf-version 2025-04-14 21:26:41 -05:00
lub-glb Tweak multispan rendering 2024-12-12 23:36:27 +00:00
macro_backtrace
macros Rollup merge of #139967 - jieyouxu:auxiliary, r=wesleywiser 2025-04-17 21:53:25 +02:00
malformed compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
marker_trait_attr
match Explicitly annotate edition for unpretty=expanded and unpretty=hir tests 2025-04-16 11:10:10 +02:00
meta Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
methods UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
mir Remove let_chains feature gate from even more tests 2025-04-18 15:57:29 +02:00
mir-dataflow Improve borrowck_graphviz_* documentation. 2025-04-16 08:57:15 +10:00
mismatched_types Report higher-ranked trait error when higher-ranked projection goal fails in new solver 2025-04-09 17:53:32 +00:00
missing UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
missing-trait-bounds Use trait name instead of full constraint in suggestion message 2024-12-07 21:29:58 +00:00
missing_non_modrs_mod tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
modules tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
modules_and_files_visibility tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
moves Auto merge of #139555 - petrochenkov:errkind-ann, r=jieyouxu 2025-04-09 02:19:37 +00:00
mut Tweak &mut self suggestion span 2025-01-28 19:35:51 +00:00
namespace Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
never_type UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
new-range implement unstable new_range feature 2025-01-30 21:33:11 -07:00
nll UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
no_std UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
non_modrs_mods tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
non_modrs_mods_and_inline_mods tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
not-panic Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
numbers-arithmetic Rollup merge of #139967 - jieyouxu:auxiliary, r=wesleywiser 2025-04-17 21:53:25 +02:00
numeric Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
object-lifetime tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
obsolete-in-place More sophisticated span trimming 2025-02-21 00:41:17 +00:00
offset-of UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
on-unimplemented Remove rustc_on_unimplemented on impl tests 2025-04-14 00:12:37 +02:00
operator-recovery Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
or-patterns Rollup merge of #140029 - reddevilmidzy:move-test, r=jieyouxu 2025-04-21 15:55:58 +00:00
overloaded tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
packed UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
panic-handler UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
panic-runtime Rollup merge of #139618 - petrochenkov:virsugg, r=jieyouxu 2025-04-13 11:48:17 +00:00
panics compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
parallel-rustc compiletest: Stricter parsing for diagnostic kinds 2025-04-07 19:13:31 +03:00
parser Remove let_chains feature gate from even more tests 2025-04-18 15:57:29 +02:00
patchable-function-entry compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
pattern Rollup merge of #139042 - compiler-errors:do-not-optimize-switchint, r=saethlin 2025-04-19 19:30:46 +00:00
pin-macro Update tests. 2025-04-15 11:14:23 +02:00
precondition-checks tests: ensure disabled tests have a reason 2025-04-12 15:24:25 +08:00
print-request UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
print_type_sizes remove support for the #[start] attribute 2025-01-21 06:59:15 -07:00
privacy UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
proc-macro Rollup merge of #139967 - jieyouxu:auxiliary, r=wesleywiser 2025-04-17 21:53:25 +02:00
process Test Command::current_dir with verbatim path 2025-03-24 18:57:22 +00:00
process-termination
ptr_ops
pub UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
qualified Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
query-system depth limit eval_to_const_value_raw 2025-01-06 08:54:27 +01:00
range Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
raw-ref-op Auto merge of #134294 - matthiaskrgr:rollup-anh6io8, r=matthiaskrgr 2024-12-14 06:44:05 +00:00
reachable Consistent with treating Ctor Call as Struct in liveness analysis 2025-04-14 14:29:14 +08:00
recursion Cleaned up 5 tests in tests/ui 2025-04-21 16:16:38 +09:00
recursion_limit
regions UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
repeat-expr Bless 2025-02-27 20:02:25 +00:00
repr UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
reserved
resolve Rollup merge of #139127 - compiler-errors:prim-ty-hack, r=oli-obk 2025-04-14 18:15:30 +02:00
return compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
rfcs Auto merge of #132833 - est31:stabilize_let_chains, r=fee1-dead 2025-04-22 07:54:10 +00:00
rmeta compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
runtime rtprintpanic: clarify that the error is aborting the process 2025-04-18 15:02:22 +02:00
rust-2018 UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
rust-2021 UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
rust-2024 UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
rustc-env compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
rustdoc Check attrs: Don't try to retrieve the name of list stems 2025-03-19 23:29:35 +01:00
sanitizer Auto merge of #139578 - ferrocene:pa-compiletest-edition, r=jieyouxu 2025-04-11 10:53:45 +00:00
self UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
sepcomp tests: use needs-threads instead of ignore-emscripten 2025-01-23 20:51:29 +08:00
shadowed
shell-argfiles
simd Rollup merge of #137953 - RalfJung:simd-intrinsic-masks, r=WaffleLapkin 2025-04-20 13:02:48 +00:00
single-use-lifetime
sized Only prefer Sized candidates, and only if they certainly hold 2025-03-13 21:12:07 +00:00
span Remove attribute #[rustc_error] 2025-03-30 01:32:21 +03:00
specialization Use cfg(false) in UI tests 2025-04-03 21:41:58 +00:00
stability-attribute UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
stable-mir-print Encode synthetic by-move coroutine body with a different DefPathData 2025-03-30 22:53:21 +00:00
stack-protector compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
static UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
statics Use def_path_str for def id arg in UnsupportedOpInfo 2025-03-20 03:22:46 +00:00
stats Implement super let. 2025-04-04 09:44:19 +02:00
std Specify a concrete stack size in channel tests 2025-03-19 12:55:02 -04:00
stdlib-unit-tests Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
str Implement SliceIndex for ByteStr 2025-03-11 20:26:10 -07:00
structs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
structs-enums Rollup merge of #135778 - ferrocene:ja-gh135777, r=workingjubilee 2025-02-14 16:23:27 +01:00
suggestions Auto merge of #139949 - matthiaskrgr:rollup-pxc5tsx, r=matthiaskrgr 2025-04-17 11:21:54 +00:00
svh Remove the -test suffix from normalize directives 2024-12-27 19:58:16 +11:00
symbol-mangling-version compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
symbol-names compiler: compare and hash ExternAbi like its string 2025-02-11 20:18:01 -08:00
sync Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
target-cpu tests: rework amdgpu-require-explicit-cpu.rs 2025-04-19 18:42:23 +08:00
target-feature UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
target_modifiers Rollup merge of #138483 - azhogin:azhogin/target-modifiers-bool-fix, r=fee1-dead 2025-03-26 19:40:27 +11:00
test-attrs Adjust test directives 2025-04-14 10:36:13 +08:00
thir-print Eliminate PatKind::Path 2025-01-29 15:45:13 +00:00
thread-local Mark test as only-unix. 2025-03-27 14:11:11 +01:00
threads-sendsync Enable more tests on Windows 2025-02-03 10:39:32 -05:00
tool-attributes Do not visit whole crate to compute lints_that_dont_need_to_run. 2025-04-04 12:37:38 +00:00
track-diagnostics compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
trait-bounds Improve presentation of closure signature mismatch from Fn trait goal 2025-04-08 05:54:57 +00:00
traits Rollup merge of #140021 - compiler-errors:no-deep-norm-ice, r=lcnr 2025-04-21 15:55:58 +00:00
transmutability Auto merge of #139552 - matthiaskrgr:rollup-b194mk8, r=matthiaskrgr 2025-04-09 05:39:18 +00:00
transmute Remove the -test suffix from normalize directives 2024-12-27 19:58:16 +11:00
treat-err-as-bug compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
trivial-bounds Improve the impl and diag output of lint type_alias_bounds 2024-07-23 01:48:03 +02:00
try-block replace //@ compile-flags: --edition with //@ edition 2025-04-10 09:56:37 +02:00
try-trait Point at type that doesn't implement needed trait 2025-02-21 18:30:07 +00:00
tuple Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
type Remove old diagnostic notes for type ascription syntax 2025-04-16 20:24:55 +10:00
type-alias Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
type-alias-enum-variants More sophisticated span trimming 2025-02-21 00:41:17 +00:00
type-alias-impl-trait Rollup merge of #139902 - lcnr:no-opaque-cast-projection, r=oli-obk 2025-04-17 17:40:28 +02:00
type-inference In "specify type" suggestion, skip type params that are already known 2025-02-03 19:51:20 +00:00
typeck Rollup merge of #140094 - Kivooeo:raw-pointer-assignment-suggestion, r=compiler-errors 2025-04-22 01:22:13 +00:00
typeof Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
ufcs Use final path segment for diagnostic 2025-03-05 23:06:54 +00:00
unboxed-closures UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
underscore-imports Update tests to use new proc-macro header 2024-11-27 07:18:25 -08:00
underscore-lifetime Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
uniform-paths
uninhabited UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
union Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
unknown-unstable-lints UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
unop Mention type parameter in more cases and don't suggest ~const bound already there 2024-12-07 21:37:13 +00:00
unpretty Remove let_chains feature gate from some places in the testsuite 2025-04-18 15:57:29 +02:00
unresolved Note potential but private items in show_candidates 2025-03-22 11:41:42 +08:00
unsafe UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
unsafe-binders UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
unsafe-fields Do not require that unsafe fields lack drop glue 2025-02-28 16:32:06 +00:00
unsized Delete tuple unsizing 2025-02-27 10:26:33 +00:00
unsized-locals UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
unused-crate-deps
unwind-abis
use replace //@ compile-flags: --edition with //@ edition 2025-04-10 09:56:37 +02:00
variance UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
variants Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
version
warnings
wasm Use cfg(false) in UI tests 2025-04-03 21:41:58 +00:00
wf UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
where-clauses Implment #[cfg] and #[cfg_attr] in where clauses 2025-03-01 22:02:46 +08:00
while Quickfix //@ check-pass is enough 2025-02-04 21:42:43 +05:30
windows-subsystem compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
zero-sized
.gitattributes
auto-ref-slice-plus-ref.rs
auto-ref-slice-plus-ref.stderr
autoderef-full-lval.rs
autoderef-full-lval.stderr Change E0369 diagnostic give note information for foreign items. 2024-06-25 10:00:30 +08:00
bare-fn-implements-fn-mut.rs
bare-static-string.rs
big-literals.rs
bind-by-move.rs
bitwise.rs
bogus-tag.rs
bogus-tag.stderr
borrow-by-val-method-receiver.rs
bounds-lifetime.rs
bounds-lifetime.stderr
break-diverging-value.rs
break-diverging-value.stderr
builtin-clone-unwind.rs
can-copy-pod.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
cancel-clean-via-immediate-rvalue-ref.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
cannot-mutate-captured-non-mut-var.rs
cannot-mutate-captured-non-mut-var.stderr More accurate mutability suggestion 2024-07-04 05:36:34 +00:00
capture1.rs compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
capture1.stderr compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
catch-unwind-bang.rs
cenum_impl_drop_cast.rs Make cenum_impl_drop_cast a hard error 2025-01-23 16:45:19 -08:00
cenum_impl_drop_cast.stderr Make cenum_impl_drop_cast a hard error 2025-01-23 16:45:19 -08:00
cfguard-run.rs
char.rs
class-cast-to-trait.rs
class-cast-to-trait.stderr
class-method-missing.rs
class-method-missing.stderr
cleanup-rvalue-for-scope.rs
cleanup-rvalue-scopes-cf.rs
cleanup-rvalue-scopes-cf.stderr
cleanup-rvalue-scopes.rs
cleanup-rvalue-temp-during-incomplete-alloc.rs tests: use needs-threads instead of ignore-emscripten 2025-01-23 20:51:29 +08:00
cleanup-shortcircuit.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
close-over-big-then-small-data.rs
command-line-diagnostics.rs
command-line-diagnostics.stderr Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
complex.rs
conservative_impl_trait.rs
conservative_impl_trait.stderr
constructor-lifetime-args.rs
constructor-lifetime-args.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
copy-a-resource.rs
copy-a-resource.stderr
crate-leading-sep.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
crate-method-reexport-grrrrrrr.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
crate-name-attr-used.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
crate-name-mismatch.rs
crate-name-mismatch.stderr
crate_type_flag.rs compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
crate_type_flag.stderr Show valid crate types when the user passes unknown --crate-type value 2025-03-14 15:53:42 +08:00
custom-attribute-multisegment.rs
custom-attribute-multisegment.stderr
custom-test-frameworks-simple.rs
custom_attribute.rs
custom_attribute.stderr
deduplicate-diagnostics.deduplicate.stderr
deduplicate-diagnostics.duplicate.stderr Do not visit whole crate to compute lints_that_dont_need_to_run. 2025-04-04 12:37:38 +00:00
deduplicate-diagnostics.rs Do not visit whole crate to compute lints_that_dont_need_to_run. 2025-04-04 12:37:38 +00:00
deep.rs
default-method-parsing.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
default-method-simple.rs
defaults-well-formedness.rs
deprecation-in-force-unstable.rs
deref-rc.rs
deref.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
derive-uninhabited-enum-38885.rs
derive-uninhabited-enum-38885.stderr
destructure-trait-ref.rs
destructure-trait-ref.stderr
diverging-fallback-method-chain.rs
diverging-fallback-option.rs
diverging-fn-tail-35849.rs
diverging-fn-tail-35849.stderr
double-ref.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
double-type-import.rs
double-type-import.stderr
early-ret-binop-add.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
elide-errors-on-mismatched-tuple.rs
elide-errors-on-mismatched-tuple.stderr
elided-test.rs compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
elided-test.stderr compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
else-if.rs
empty-allocation-non-null.rs
empty-allocation-rvalue-non-null.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
empty-type-parameter-list.rs
empty-type-parameter-list.stderr
error-festival.rs
error-festival.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
error-should-say-copy-not-pod.rs
error-should-say-copy-not-pod.stderr
exclusive-drop-and-copy.rs
exclusive-drop-and-copy.stderr Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
explain.rs
explain.stdout
explicit-i-suffix.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
explore-issue-38412.rs stability: remove skip_stability_check_due_to_privacy 2024-11-18 08:07:46 +01:00
explore-issue-38412.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
ext-expand-inner-exprs.rs
ext-nonexistent.rs compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
ext-nonexistent.stderr compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
fact.rs
fail-simple.rs Tweak more warnings. 2024-10-28 14:20:28 +11:00
fail-simple.stderr Tweak more warnings. 2024-10-28 14:20:28 +11:00
filter-block-view-items.rs Use cfg(false) in UI tests 2025-04-03 21:41:58 +00:00
format-no-std.rs remove support for the #[start] attribute 2025-01-21 06:59:15 -07:00
fun-indirect-call.rs
future-incompatible-lint-group.rs
future-incompatible-lint-group.stderr
global-scope.rs
hello.rs Update more 2024 tests to remove -Zunstable-options 2024-11-28 14:32:45 -08:00
illegal-ufcs-drop.fixed
illegal-ufcs-drop.rs
illegal-ufcs-drop.stderr
impl-inherent-non-conflict.rs
impl-not-adjacent-to-type.rs
impl-privacy-xc-1.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
impl-unused-rps-in-assoc-type.rs
impl-unused-rps-in-assoc-type.stderr
impl-unused-tps-inherent.rs
impl-unused-tps-inherent.stderr
impl-unused-tps.rs stabilize -Znext-solver=coherence 2024-10-15 13:11:00 +02:00
impl-unused-tps.stderr Don't assemble non-env/bound candidates if projection is rigid 2025-04-18 01:44:06 +00:00
implicit-method-bind.rs
implicit-method-bind.stderr
inline-disallow-on-variant.rs
inline-disallow-on-variant.stderr
inlined-main.rs
inner-attrs-on-impl.rs Use cfg(false) in UI tests 2025-04-03 21:41:58 +00:00
inner-module.rs
inner-static-type-parameter.rs
inner-static-type-parameter.stderr
inner-static.rs
integral-indexing.rs
integral-indexing.stderr Implement SliceIndex for ByteStr 2025-03-11 20:26:10 -07:00
integral-variable-unification-error.rs
integral-variable-unification-error.stderr
invalid_dispatch_from_dyn_impls.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
invalid_dispatch_from_dyn_impls.stderr Consolidate and rework CoercePointee and DispatchFromDyn errors 2025-02-24 19:34:54 +00:00
issue-11881.rs
issue-13560.rs
issue-15924.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
issue-16822.rs
issue-18502.rs
issue-24106.rs
issue-76387-llvm-miscompile.rs
issues-71798.rs
issues-71798.stderr
item-name-overload.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
kinds-in-metadata.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
kinds-of-primitive-impl.rs
kinds-of-primitive-impl.stderr
last-use-in-block.rs
last-use-in-cap-clause.rs
last-use-is-capture.rs
lexical-scopes.rs
lexical-scopes.stderr
lexical-scoping.rs
link-section.rs Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
log-err-phi.rs
log-knows-the-names-of-variants.rs
log-poly.rs
logging-only-prints-once.rs Enable more tests on Windows 2025-02-03 10:39:32 -05:00
loud_ui.rs
max-min-classes.rs
maximal_mir_to_hir_coverage.rs
maybe-bounds.rs
maybe-bounds.stderr Support ?Trait bounds in supertraits and dyn Trait under a feature gate 2024-07-25 20:53:33 +03:00
method-output-diff-issue-127263.rs show unit output when there is only output diff in diagnostics 2024-07-06 21:00:30 +08:00
method-output-diff-issue-127263.stderr show unit output when there is only output diff in diagnostics 2024-07-06 21:00:30 +08:00
missing_debug_impls.rs
missing_debug_impls.stderr
mod-subitem-as-enum-variant.rs
mod-subitem-as-enum-variant.stderr
monomorphize-abi-alignment.rs
msvc-data-only.rs
msvc-opt-minsize.rs rewrite test-harness to rmake 2024-07-02 11:37:59 -04:00
multibyte.rs
multiline-comment.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
mut-function-arguments.rs
mutual-recursion-group.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
myriad-closures.rs
nested-block-comment.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
nested-cfg-attrs.rs Use cfg(false) in UI tests 2025-04-03 21:41:58 +00:00
nested-cfg-attrs.stderr
nested-class.rs
nested-ty-params.rs UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
nested-ty-params.stderr UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
new-impl-syntax.rs
new-import-syntax.rs
new-style-constants.rs
new-unicode-escapes.rs
newlambdas.rs
newtype-polymorphic.rs
newtype.rs
no-capture-arc.rs compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
no-capture-arc.stderr compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
no-core-1.rs
no-core-2.rs
no-link-unknown-crate.rs
no-link-unknown-crate.stderr
no-reuse-move-arc.rs
no-reuse-move-arc.stderr Remove CallKind::Deref hack from UseSpans 2025-01-06 03:55:19 +00:00
no-send-res-ports.rs
no-send-res-ports.stderr Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
no-warn-on-field-replace-issue-34101.rs
no_send-enum.rs
no_send-enum.stderr Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
no_send-rc.rs
no_send-rc.stderr E0277: suggest dereferencing function arguments in more cases 2024-11-21 03:27:05 -08:00
no_share-enum.rs
no_share-enum.stderr Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
no_share-struct.rs
no_share-struct.stderr
noexporttypeexe.rs
noexporttypeexe.stderr
non-constant-expr-for-arr-len.rs
non-constant-expr-for-arr-len.stderr
non-copyable-void.rs
non-copyable-void.stderr
non-fmt-panic.fixed
non-fmt-panic.rs
non-fmt-panic.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
noncopyable-class.rs
noncopyable-class.stderr
nonscalar-cast.fixed UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
nonscalar-cast.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
nonscalar-cast.stderr
not-clone-closure.rs Add --diagnostic-width to some tests failing after 1a0c502183 2024-11-06 20:02:42 +01:00
not-clone-closure.stderr Add --diagnostic-width to some tests failing after 1a0c502183 2024-11-06 20:02:42 +01:00
not-copy-closure.rs
not-copy-closure.stderr Suggest borrowing arguments in generic positions when trait bounds are satisfied 2024-11-13 20:29:40 -08:00
not-enough-arguments.rs
not-enough-arguments.stderr More sophisticated span trimming 2025-02-21 00:41:17 +00:00
nul-characters.rs
nullable-pointer-iotareduction.rs
nullable-pointer-size.rs
object-pointer-types.rs
object-pointer-types.stderr Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
objects-coerce-freeze-borrored.rs
occurs-check-2.rs increment depth of nested obligations 2025-03-31 23:58:17 +02:00
occurs-check-2.stderr increment depth of nested obligations 2025-03-31 23:58:17 +02:00
occurs-check-3.rs
occurs-check-3.stderr increment depth of nested obligations 2025-03-31 23:58:17 +02:00
occurs-check.rs
occurs-check.stderr increment depth of nested obligations 2025-03-31 23:58:17 +02:00
once-cant-call-twice-on-heap.rs
once-cant-call-twice-on-heap.stderr
oom_unwind.rs
op-assign-builtins-by-ref.rs
opeq.rs
opt-in-copy.rs
opt-in-copy.stderr
optimization-remark.rs UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
out-pointer-aliasing.rs
output-slot-variants.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
over-constrained-vregs.rs
panic-while-printing.rs
panic_implementation-closures.rs
paren-span.rs
paren-span.stderr
partialeq_help.rs
partialeq_help.stderr
path-lookahead.fixed
path-lookahead.rs
path-lookahead.stderr
path.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
paths-containing-nul.rs
phantom-auto-trait.rs
phantom-auto-trait.stderr Use trait name instead of full constraint in suggestion message 2024-12-07 21:29:58 +00:00
point-to-type-err-cause-on-impl-trait-return-2.rs
point-to-type-err-cause-on-impl-trait-return-2.stderr
pptypedef.rs
pptypedef.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
primitive-binop-lhs-mut.rs
print-calling-conventions.rs Migrate run-make/print-calling-conventions to ui-test 2024-08-03 20:09:42 -04:00
print-calling-conventions.stdout update/bless tests 2025-04-06 21:41:47 +02:00
print-stdout-eprint-stderr.rs tests: use needs-subprocess instead of ignore-{wasm32,emscripten,sgx} 2025-01-23 20:51:29 +08:00
project-cache-issue-31849.rs
ptr-coercion-rpass.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
ptr-coercion.rs
ptr-coercion.stderr
query-visibility.rs
raw-str.rs
realloc-16687.rs
reassign-ref-mut.rs
reassign-ref-mut.stderr
reexport-test-harness-main.rs
removing-extern-crate.fixed
removing-extern-crate.rs
removing-extern-crate.stderr
resource-assign-is-not-copy.rs
resource-destruct.rs
seq-args.rs
seq-args.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
shadow-bool.rs
shadowed-use-visibility.rs
short-error-format.rs
short-error-format.stderr On short error format, append primary span label to message 2024-08-06 04:08:10 +00:00
sized-borrowed-pointer.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
sized-cycle-note.rs
sized-cycle-note.stderr
sized-owned-pointer.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
sse2.rs sudo CI=green && Review changes <3 2024-06-25 18:06:22 +02:00
stable-addr-of.rs
std-uncopyable-atomics.rs
std-uncopyable-atomics.stderr
stdio-is-blocking.rs tests: use needs-subprocess instead of ignore-{wasm32,emscripten,sgx} 2025-01-23 20:51:29 +08:00
string-box-error.rs
struct-ctor-mangling.rs
super-at-top-level.rs
super-at-top-level.stderr
super-let.borrowck.stderr Add tests for super let. 2025-04-04 16:32:18 +02:00
super-let.rs Add tests for super let. 2025-04-04 16:32:18 +02:00
super.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
svh-add-nothing.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
swap-1.rs
swap-overlapping.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
switched-expectations.rs
switched-expectations.stderr
syntax-extension-minor.rs
tag-type-args.rs
tag-type-args.stderr
tag-variant-cast-non-nullary.fixed
tag-variant-cast-non-nullary.rs
tag-variant-cast-non-nullary.stderr
tail-call-arg-leak.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
tail-cps.rs Remove some unnecessary parens in assert! conditions 2025-02-06 22:28:44 +00:00
tail-typeck.rs compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
tail-typeck.stderr compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
trailing-comma.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
trait-method-number-parameters.rs
trait-method-number-parameters.stderr
transmute-equal-assoc-types.rs
transmute-non-immediate-to-immediate.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
trivial_casts-rpass.rs
trivial_casts-rpass.stderr
try-from-int-error-partial-eq.rs
try-operator-hygiene.rs
try-operator.rs
tydesc-name.rs
type-id-higher-rank-2.rs
type-namespace.rs
type-param-constraints.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
type-param.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
type-ptr.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
type-use-i1-versus-i8.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
type_length_limit.rs tests: remove explicit long type filename hash normalization from some ui tests 2025-03-04 00:21:02 +08:00
type_length_limit.stderr tests: remove explicit long type filename hash normalization from some ui tests 2025-03-04 00:21:02 +08:00
typeid-intrinsic.rs
typestate-multi-decl.rs
unconstrained-none.rs
unconstrained-none.stderr
unconstrained-ref.rs
unconstrained-ref.stderr
underscore-ident-matcher.rs Tweak more warnings. 2024-10-28 14:20:28 +11:00
underscore-ident-matcher.stderr Tweak more warnings. 2024-10-28 14:20:28 +11:00
underscore-lifetimes.rs
underscore-method-after-integer.rs
unevaluated_fixed_size_array_len.rs
unevaluated_fixed_size_array_len.stderr
uninit-empty-types.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
unit.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
unknown-language-item.rs
unknown-language-item.stderr
unknown-llvm-arg.rs Remove the -test suffix from normalize directives 2024-12-27 19:58:16 +11:00
unknown-llvm-arg.stderr
unnamed_argument_mode.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
unreachable-code-1.rs
unreachable-code.rs
unsigned-literal-negation.rs
unsigned-literal-negation.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
unused-move-capture.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
unused-move.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
unwind-no-uwtable.rs
use-import-export.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
use-keyword-2.rs
use-module-level-int-consts.rs
use-nested-groups.rs
used.rs
used.stderr Show used attribute's kind for user when find it isn't applied to a static variable. 2024-06-29 19:39:09 +08:00
usize-generic-argument-parent.rs
usize-generic-argument-parent.stderr
utf8-bom.rs Annotate input reference tests 2024-10-30 16:47:47 -07:00
utf8_idents.rs
virtual-call-attrs-issue-137646.rs Don't infer attributes of virtual calls based on the function body 2025-02-27 12:57:26 +08:00
wait-forked-but-failed-child.rs Use split_whitespace() when filtering lines in the ps output 2025-02-06 15:05:53 -05:00
walk-struct-literal-with.rs
walk-struct-literal-with.stderr
weak-new-uninhabited-issue-48493.rs
weird-exit-code.rs
weird-exprs.rs Remove some unnecessary parens in assert! conditions 2025-02-06 22:28:44 +00:00
write-fmt-errors.rs Implement default methods for io::Empty and io::Sink 2025-03-10 01:38:20 -07:00
wrong-hashset-issue-42918.rs