rust/tests/ui
bors 34097a38af Auto merge of #140525 - lqd:stabilize-lld, r=petrochenkov
Use lld by default on `x86_64-unknown-linux-gnu` stable

This PR and stabilization report is joint work with `@Kobzol.`

#### Use LLD on `x86_64-unknown-linux-gnu` by default, and stabilize `-Clinker-features=-lld` and `-Clink-self-contained=-linker`

This PR proposes making LLD the default linker on the `x86_64-unknown-linux-gnu` target for the artifacts we distribute, and also stabilizing the `-Clinker-features=-lld` and `-Clink-self-contained=-linker` codegen options to make it possible to opt out.

LLD has been used as the default linker on nightly and CI on this target since May 2024 ([PR](https://github.com/rust-lang/rust/pull/124129), [blog post](https://blog.rust-lang.org/2024/05/17/enabling-rust-lld-on-linux.html)), and it seems like it is working fine, so we would like to propose stabilizing it.

The main motivation for using LLD instead of the default BFD linker is improving [compilation times](https://perf.rust-lang.org/compare.html?start=b3e117044c7f707293edc040edb93e7ec5f7040a&end=baed03c51a68376c1789cc373581eea0daf89967&stat=instructions%3Au&tab=compile). For example, in the linked benchmark, it makes incremental recompilation of `ripgrep` in `debug` more than twice faster. Another benefit is that Rust compilation becomes more consistent and self-contained, because we will use a known version of the LLD linker, rather than "whatever GNU ld version is on the user's system".

Due to the performance benefit being so huge, many people already opt into using LLD (or other fast linkers, such as mold) using various approaches ([1](https://github.com/search?type=code&q=%2Flinker-flavor%5B%3D+%5Dgnu-lld-cc%2F), [2](https://github.com/search?type=code&q=%2Flinker-features%5B%3D+%5D%5C%2Blld%2F), [3](https://github.com/search?type=code&q=language%3Atoml+%22-fuse-ld%3Dlld%22), [4](https://github.com/search?type=code&q=language%3Arust+%22-fuse-ld%3Dlld%22)). By making LLD the default linker on the `x86_64-unknown-linux-gnu` target, we will be able to speed up Rust compilation out of the box, without users having to opt in or know about it.

> You can find an extended version of this stabilization report which includes analysis of crater results and more data [here](https://hackmd.io/tFDifkUcSLGoHPBRIl0z8w?view).

## What is being stabilized
- `rust-lld` being used as the default linker on the `x86_64-unknown-linux-gnu` target.
    - Note that `rust-lld` is being enabled by default in the compiler artifacts distributed by our CI/rustup. It is still possible to use the system linker by default using `rust.lld = false` in `bootstrap.toml`, which can be useful e.g. for some Linux distros that might not want to use the LLD we distribute.
    - This is done by activating the LLD linker feature and using the self-contained linker on that target. Both of which are also usable on the CLI, if some opt outs are necessary, as described below.
- `-Clinker-features=-lld` on the `x86_64-unknown-linux-gnu` target. This codegen option tells rustc to disable using the LLD linker.
    - Note that other options for this codegen flag (`cc`) remain unstable.
    - Note that only the opt-out is being stabilized, and only for `x86_64-unknown-linux-gnu`: opting in, or using the flag on other targets would still need to pass `-Zunstable-options`.
    - This flag is being stabilized so that users can opt out of LLD on stable, which would it turn also opt out of using the self-contained linker (since it's an LLD).
- `-Clink-self-contained=-linker`. This codegen option tells rustc to use the self-contained linker. It's not particularly useful to turn it on by itself, but when enabled and combined with `-Clinker-features=+lld`, rustc will use the `rust-lld` linker wrapper shipped with the compiler toolchain, instead of some `lld` binary that the linker driver will find in the `PATH`.
    - Note that other options for this codegen flag (other than the previously stable `y/yes/n/no`).
    - Note that only the opt-out is being stabilized, and only for `x86_64-unknown-linux-gnu`: opting in, or using this flag on other targets would still need to pass `-Zunstable-options`.
    - This flag is being stabilized so that users can opt out of using self-contained linking on stable. Doing this would then fall back to using the system `lld`.

To opt out of using LLD, `RUSTFLAGS="-Clinker-features=-lld"` would be used. To opt out of using `rust-lld`, falling back to the LLD installed on the system, `RUSTFLAGS="-Clink-self-contained=-linker"` would be used.

## Tests

When enabling `rust-lld` on nightly, we also switched x64 linux to use it at stage >= 1, meaning that all tests have been running with lld since May 2024, on CI as well as contributors' machines. (Post opt-dist tests also had been using it when running their test subset earlier than that).

There are also a few tests dedicated to the CLI behavior, or ensuring the default linker is indeed the one we expect:

- [link-self-contained-consistency](1117bc1e6c/tests/ui/linking/link-self-contained-consistency.rs): Checks that `-Clink-self-contained` options are not inconsistent (i.e. that passing both `+linker` and `-linker` is an error).
- [link-self-contained-unstable](1117bc1e6c/tests/ui/linking/link-self-contained-unstable.rs): Checks that only the `-linker` and `y/yes/n/no` options for `-Clink-self-contained` are stable.
- [linker-features-unstable-cc](1117bc1e6c/tests/ui/linking/linker-features-unstable-cc.rs): Checks that only the non-lld options of `-Clinker-features` are unstable.
- [linker-features-lld-disallowed](1117bc1e6c/tests/ui/linking/linker-features-lld-disallowed.rs): Checks that `-Clinker-features=-lld` is only stable on `x86_64-unknown-linux-gnu`.
- [link-self-contained-linker-disallowed](1117bc1e6c/tests/ui/linking/link-self-contained-linker-disallowed.rs): Checks that `-Clink-self-contained=-linker` is only stable on `x86_64-unknown-linux-gnu`.
- [no-gc-encapsulation-symbols](1117bc1e6c/tests/ui/linking/no-gc-encapsulation-symbols.rs): Checks that that linker encapsulation symbols are not garbage collected by LLD, so that crates like [linkme](https://github.com/dtolnay/linkme) still work.
- [rust-lld](1117bc1e6c/tests/run-make/rust-lld): Checks that LLD is actually used when enabled with `-Clinker-features=+lld` and `-Clink-self-contained=+linker`.
- [rust-lld-x86_64-unknown-linux-gnu](1117bc1e6c/tests/run-make/rust-lld-x86_64-unknown-linux-gnu): Checks that LLD is used by default on `x86_64-unknown-linux-gnu` when the bootstrap `rust.lld` config option is `true`.
- [rust-lld-x86_64-unknown-linux-gnu-dist](1117bc1e6c/tests/run-make/rust-lld-x86_64-unknown-linux-gnu-dist): Dist test that checks that our distributed `x86_64-unknown-linux-gnu` archives actually use LLD by default.

## Ecosystem impact
As already stated, LLD has been used as the default linker on x64 Linux on nightly for almost a year, and we haven't seen any blockers to stabilization in that time. There were a handful of issues reported, these are discussed later below.

Furthermore, two crater runs ([November 2023](https://crater-reports.s3.amazonaws.com/pr-117684-2/index.html), [February 2025](https://crater-reports.s3.amazonaws.com/pr-137044-3/index.html)), were performed to test the impact of using LLD as the default linker. A triage of the earlier crater run was previously done [here](https://hackmd.io/OAJxlxc6Te6YUot9ftYSKQ), but all the important findings from both crater runs are reported below.

Below is a list of compatibility differences between BFD and LLD that we have encountered. There is a more thorough list of differences in [this post](https://maskray.me/blog/2020-12-19-lld-and-gnu-linker-incompatibilities) from the current LLD maintainer. From that post, "99.9% pieces of software work with ld.lld without a change".

---

### `.ctors/.dtors` sections
[#128286](https://github.com/rust-lang/rust/issues/128286) reported an issue where LLD was unable to link certain CUDA library was using these sections that were using the `.ctors/.dtors` ELF sections. These were deprecated a long time ago (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770), replaced with a more modern `.init_array/.fini_array` sections. LLD doesn't (and won't) support these sections ([1](https://github.com/llvm/llvm-project/issues/68071), [2](https://github.com/llvm/llvm-project/issues/30572)), so if they appear in input object files, the linked artifact might produce incorrect behavior, because e.g. some global variables might not get initialized properly.

However, the usage of `.ctors/.dtors` should be very rare in practice. We have performed a [crater run](https://github.com/rust-lang/rust/pull/137044) to test this. It has identified only 8 crates where the `.ctors/.dtors` section is occurring in the final linked artifact. It was caused by a few crates using the `.ctors` link section manually, and by using a very (~6 year) old version of the [ctor](https://crates.io/crates/ctor) crate.

[Crater run analysis](https://hackmd.io/tFDifkUcSLGoHPBRIl0z8w?view#ctorsdtors-sections)

**Possible workaround**
It is possible to [detect](e5e2316712) if `.ctors/.dtors` section is present in the final linked artifact (LLD will keep it there, but it won't be populated), and warn users about it. This check is very cheap and doesn't even appear on [perf](https://github.com/rust-lang/rust/pull/112049#issuecomment-2661125340). We have benchmarked the check on a 240 MiB Chrome binary, where it took 0.8ms with page cache flushed, and 0.06ms with page cache primed (which should be the common case, as the linked artifact is written to disk just before the check is performed).

In theory, this could be also solved with a linker script that moves `.ctors` to `.init_array`.

We think that these sections should be so rare that it is not worth it to implement any workarounds for now.

---

### Different garbage collection behavior
[#130397](https://github.com/rust-lang/rust/issues/130397) reported an issue where LLD prunes a local symbol, so it is missing in the linked artifact. However, BFD keeps the same symbol, so it is a regression. This is caused by a difference in linker garbage collection.

Rust uses `--gc-sections` and puts each function into a separate linker section, which prunes unused code. There is some code (specifically the somewhat popular [linkme](https://github.com/dtolnay/linkme) crate) that (arguably ab-)uses so called linker encapsulation symbols to achieve distributed slices.

BFD (2.37+) uses a conservative linking mode that works as intended with this behavior, but it might slightly increase binary size of the linked artifact. LLD does not use this workaround by default, which causes the sections to be eliminated, but it can be made to use the conservative mode using [`-z nostart-stop-gc`](https://lld.llvm.org/ELF/start-stop-gc.html#z-start-stop-gc).

To avoid this issue, we told LLD to use the [conservative mode](https://github.com/rust-lang/rust/pull/137685), which maintains backwards compatibility with BFD. We found that it has [no effect](https://github.com/rust-lang/rust/pull/112049#issuecomment-2666028775) on compilation performance and binary size in our benchmark suite. With this change, `linkme` works. Since then, rust-lang/rust#140872 removed `linkme` distributed slice's dependence on conservative GC behavior, so this PR also removes that conservative mode: no transition period is necessary, as the PR immediately fixed the crate with no source changes.

[Crater run analysis](https://hackmd.io/tFDifkUcSLGoHPBRIl0z8w?view#Different-garbage-collection-behavior)

---

### Various uncommon issues

A small number of issues that only occurred in a handful of instances were found in crater, and it is unclear if LLD is at fault or if there is some other issue that was not detected with BFD.

You can examine these [here](https://hackmd.io/tFDifkUcSLGoHPBRIl0z8w?view#Various-uncommon-issues).

---

### Missing jobserver support
LLD doesn't support the jobserver protocol for limiting the number of threads used, it simply defaults to using all available cores, and is one of the reasons why it's faster than BFD. However, this should mostly be a non-issue, because most of the linking done during high parallelism sections of `cargo build` is linking of build scripts and proc macros, which are typically very fast to link (e.g. ~50ms), and a potential oversubscription of cores thus doesn't hurt that much.

When the final artifact is linked (which typically takes the most time), there should be no other sources of parallelism conflicts from compiling other code, so LLD should be able to use all available threads.

That being said, it is a difference of behavior, where previously a `-j` flag was generally not using more cpu than the specified limit. It can be impactful in some resource-constrained systems, but to be clear that is already the case today due to [cargo parallelism](https://github.com/rust-lang/cargo/issues/9157). This could be one reason to opt out of using `rust-lld` on some systems.

LLD has support for limiting the number of threads to use, so in theory rustc could try to get all the jobserver tokens available and use that as lld's thread limit. It'd still be suboptimal as new tokens would not be dynamically detected, and we could be using less threads than available.

We did a benchmark on a real-world crate that shows that using multiple LLD threads for intermediate artifacts doesn't seem to have a performance effect. You can find it [here](https://hackmd.io/tFDifkUcSLGoHPBRIl0z8w?view#Missing-jobserver-support).

---

#### Opting out of LLD in the ecosystem
We have also examined repositories where people opted out of LLD on nightly, using [this GitHub query](https://github.com/search?q=%22linker-features%3D-lld%22&type=code). The summary can be found below:

<details>
<summary>Summary of LLD opt outs</summary>

> This examination was performed on 2025-03-09.

Here we briefly examine the most common reasons why people use `-Zlinker-features=-lld`, based on comments and git history.

- Nix/NixOS ([1](59d703dff5/flake.nix (L33)), [2](3cc3449fc1/.cargo/config.toml (L4)), [3](https://github.com/tiiuae/ebpf-firewall/blame/32bdb17cedd1c9bea1ab3482623de458d95da7d0/.cargo/config.toml#L2), [4](f5f657d014/Cargo.toml (L4)), [5](e4266f5c55/.cargo/config.toml (L10)), [6](22a4aef24e/README.md (L78)), [7](2222d53474/.cargo/config.toml (L2)), [8](b2ffa59d3e/.cargo/config.toml (L4)), [9](3ead4ef9c7/.cargo/config.toml (L2)), [10](ca6b8c8a5d/work/examples/lsp-client/src/extension.ts (L94)))
    - There was an [issue](https://github.com/NixOS/nixpkgs/issues/312661) with LLD, which seems to have been fixed with https://github.com/NixOS/nixpkgs/pull/314268.
 It's unclear whether that fixed all the Nix issues though.
- Issues with linkme ([1](ef388619ff/.cargo/config.toml (L4)), [2](be0fc5827f/README.md (L20)), [3](c5d8444d56/rust/.cargo/config.toml (L6)), [4](5b4cc1a519/.cargo/config.toml (L3)), [5](4e27c7de2a/.github/workflows/ci.yml (L82)), [6](8fe60c12bc/.github/workflows/code-coverage.yml (L48)), [7](c8b4683798/.github/workflows/ci.yml (L74)))
    - These should be resolved with the conservative garbage collection ([#137685](https://github.com/rust-lang/rust/pull/137685)).
- Bazel ([1](1823f69ed8/.bazelrc (L71))), WASM ([1](ca6b8c8a5d/work/examples/wasm-build.sh (L37)), [2](2bf99037ca/build.sh (L21))), uncategorized ([2](5118be6b9e/.cargo/config.toml (L3)), [3](https://github.com/Wyvern/Img/blame/45020c7e1dc4926c8129647014c708db0c13f463/.cargo/config.toml#L209), [4](042eb835f7/README.md (L89)), [5](fd0b300676/exercises/.cargo/config.toml (L13)), [6](be65f2ec92/.github/workflows/rust.yml (L20)))
    - Reason unclear.
</details>

## History
The idea to use a faster linker by default has been on the radar for quite some time ([#39915](https://github.com/rust-lang/rust/issues/39915), [#71515](https://github.com/rust-lang/rust/issues/71515)). There were [very early attempts](https://github.com/rust-lang/rust/pull/29974) to use the gold linker by default, but these had to be [reverted](https://github.com/rust-lang/rust/pull/30913) because of compatibility issues. Support for LLD was implemented back in [2017](https://github.com/rust-lang/rust/pull/40018), but it has not been made default yet, except for some more niche targets, such as [WASM](https://github.com/rust-lang/rust/pull/48125), [ARM Cortex](https://github.com/rust-lang/rust/pull/53648) or [RISC-V](https://github.com/rust-lang/rust/pull/53822).

It took quite some time to figure out how should the interface for selecting the linker (and the way it is invoked) look like, as it differs a lot between different platforms, linkers and compiler drivers. During that time, LLD has matured and achieved [almost perfect compatibility](https://maskray.me/blog/2020-12-19-lld-and-gnu-linker-incompatibilities) with the default Linux linker (BFD).

- [#56351](https://github.com/rust-lang/rust/pull/56351) stabilized `-Clinker-flavor`, which is used to determine how to invoke the linker. It is especially useful on targets where selecting the linker directly with `-Clinker` is not possible or is impractical.
    - December 2018, author `@davidtwco,` reviewer `@nagisa`
- [#76158](https://github.com/rust-lang/rust/pull/76158) stabilized `-Clink-self-contained=[y|n]`, which allows overriding the compiler's heuristic for deciding whether it should use self-contained or external tools (linker, sanitizers, libc, etc.). It only allowed using the self-contained mode either for everything (`y`) or nothing (`n`), but did not allow granular choice.
    - September 2020, author `@mati864,` reviewer `@petrochenkov`
- [#85961](https://github.com/rust-lang/rust/pull/85961) implemented the `-Zgcc-ld` flag, which was a hacky way of opting into LLD usage.
    - June 2021, author `@sledgehammervampire,` reviewer `@petrochenkov`
- [MCP 510](https://github.com/rust-lang/compiler-team/issues/510) proposed stabilizing the behavior of `-Zgcc-ld` using more granular flags (`-Clink-self-contained=linker -Clinker-flavor=gcc-lld`).
    - Initially implemented in [#96827](https://github.com/rust-lang/rust/pull/96827), but `@petrochenkov` [suggested](https://github.com/rust-lang/rust/pull/96827#issuecomment-1208441595) a slightly different approach.
    - The PR was split into [#96884](https://github.com/rust-lang/rust/pull/96884), where it was decided what will be the individual components of `-Clink-self-contained=linker`.
    - And [#96401](https://github.com/rust-lang/rust/pull/96401), which implemented the `-Clinker-flavor` part.
    - The MCP was finally implemented in [#112910](https://github.com/rust-lang/rust/pull/112910).
    - [#116514](https://github.com/rust-lang/rust/pull/116514) then removed `-Zgcc-ld`, as it was replaced by `-Clinker-flavor=gnu-lld-cc` + `-Clink-self-contained=linker`.
    - April 2022 - October 2023, author `@lqd,` reviewer `@petrochenkov`

- Various linker handling refactorings were performed in the meantime: [#97375](https://github.com/rust-lang/rust/pull/97375), [#98212](https://github.com/rust-lang/rust/pull/98212), [#100126](https://github.com/rust-lang/rust/pull/100126), [#100552](https://github.com/rust-lang/rust/pull/100552), [#102836](https://github.com/rust-lang/rust/pull/102836), [#110807](https://github.com/rust-lang/rust/pull/110807), [#101988](https://github.com/rust-lang/rust/pull/101988), [#116515](https://github.com/rust-lang/rust/pull/116515)

- The implementation of linker flavors with LLD was causing a sort of a combinatorial explosion of various options.
[#119906](https://github.com/rust-lang/rust/pull/119906) suggested a different approach for linker flavors (described [here](https://github.com/rust-lang/rust/pull/119906#issuecomment-1894088306)), where the individual flavors could be enabled separately using `+/-` (e.g. `+lld`).
    - After some back and forth, this idea was moved to `-Clinker-features` (see [comment 1](https://github.com/rust-lang/rust/pull/119906#issuecomment-1895693162) and [comment 2](https://github.com/rust-lang/rust/pull/119906#issuecomment-1980801438)), which was implemented in [#123656](https://github.com/rust-lang/rust/pull/123656).
    - April 2024, author `@lqd,` reviewer `@petrochenkov`
- [#124129](https://github.com/rust-lang/rust/pull/124129) enabled LLD by default on nightly.
    - April 2024, author `@lqd,` reviewer `@petrochenkov`
- [#137685](https://github.com/rust-lang/rust/pull/137685), [#137926](https://github.com/rust-lang/rust/pull/137926) enabled the conservative gargage collection mode (`-znostart-stop-gc`) to improve compatibility with BFD.
    - February 2025, author `@lqd,` reviewer `@petrochenkov` (implementation), author `@kobzol,` reviewer `@lqd` (test)
- [#96025](https://github.com/rust-lang/rust/pull/96025) (April 2022), [#117684](https://github.com/rust-lang/rust/pull/117684) (November 2023), [#137044](https://github.com/rust-lang/rust/pull/137044) (February 2025): crater runs.

## Unresolved questions/concerns
- Is changing the linker considered a breaking change? In (hopefully very rare) cases, it might break some existing code. It should mostly only affect the final linked artifact, so it should be easy to opt out.
- Similarly, is the single-threaded behavior of such tools encompassed in our stability guarantee: it can be observed via the `-j` job limit (though I believe we have/had some open issues on sometimes using more CPU resources than the job count limit implied). As mentioned above, LLD does not support the jobserver protocol.
- A concern [was raised](https://github.com/rust-lang/rust/issues/71515#issuecomment-2612370229) about increased memory usage of LLD. We should probably let users know about the possibly increased memory usage, and jobserver incompatibility: we did so when announcing this landing on nightly.
- LLD seems to produce [slightly larger](https://perf.rust-lang.org/compare.html?start=b3e117044c7f707293edc040edb93e7ec5f7040a&end=baed03c51a68376c1789cc373581eea0daf89967&stat=size%3Alinked_artifact&tab=compile) binary artifacts. This can be partially clawed back using Identical Code Folding (`-Clink-args=-Wl,--icf=all`).
- Should we detect the outdated `.ctors/.dtors` sections to provide a better error message, even if that should be rare in practice?

---

### Next steps

After the FCP completes:
- we should land this PR at the beginning of a beta cycle, to maximize time for testing
- keep an eye on the beta crater run results for possible linker issues (or do a dedicated beta crater run with only this change)
- release a blog post announcing the change, and asking for testing feedback of the appropriate beta
- depending on feedback, or if a period of testing of 6 weeks is not long enough, we could keep this change on beta for another cycle

---

Development, testing, try builds were done in https://github.com/rust-lang/rust/pull/138645.

r? `@petrochenkov`
`@rustbot` label +needs-fcp +T-compiler
2025-07-08 22:24:06 +00:00
..
abi Fix tests/ui/abi/debug.rs to cross-compile for riscv64 2025-07-04 18:13:58 -07:00
alloc-error Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
allocator cleaned up some tests 2025-07-05 00:45:24 +05:00
annotate-snippet compiletest: Support matching on non-json lines in compiler output 2025-05-04 18:27:45 +03: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 compiletest: Improve diagnostics for line annotation mismatches 2025-06-23 21:30:56 +03:00
array-slice-vec stabilize gai 2025-06-11 15:30:15 +01:00
asm move naked checks out of check_attr.rs 2025-06-23 12:22:57 +02:00
associated-consts Use predicate spans instead of whole item spans 2025-06-30 08:45:43 +00:00
associated-inherent-types Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
associated-item Preserve generic args in suggestions for ambiguous associated items 2025-05-06 17:04:03 +02:00
associated-type-bounds Point to correct argument in Func Call when Self type fails trait bound 2025-07-07 16:47:15 +08:00
associated-types Use predicate spans instead of whole item spans 2025-06-30 08:45:43 +00:00
async-await Rename tests named with mbe to use macro instead 2025-07-05 21:09:10 -07:00
attributes Rollup merge of #143402 - GrigorenkoPV:attributes/link_attrs, r=jdonszelmann 2025-07-08 19:29:37 +02:00
auto-traits cleaned up some tests 2025-07-05 00:45:24 +05:00
autodiff Update UI tests 2025-05-21 07:24:43 +00:00
autoref-autoderef Rollup merge of #141888 - ferrocene:lw/decouple-tests-from-2015, r=compiler-errors 2025-06-04 07:54:35 +02:00
auxiliary Rollup merge of #143296 - Kivooeo:tf21, r=tgross35 2025-07-04 23:26:21 -07: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 Rollup merge of #143299 - Kivooeo:tf24, r=tgross35 2025-07-04 23:26:23 -07:00
blind compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
block-result compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
bootstrap compiletest: Support matching on non-json lines in compiler output 2025-05-04 18:27:45 +03:00
borrowck Rollup merge of #142981 - compiler-errors:verbose-missing-suggestion, r=estebank 2025-06-26 15:47:22 +02:00
box cleaned up some tests 2025-06-11 17:49:03 +05: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 variadic functions: remove list of supported ABIs from error 2025-06-13 18:10:06 +02:00
cast cleaned up some tests 2025-07-01 15:16:56 +05:00
cfg cleaned up some tests 2025-07-01 15:29:29 +05:00
check-cfg Rollup merge of #142321 - ostylk:fix/ppc64_abi, r=workingjubilee 2025-07-02 19:28:05 +02:00
closure-expected-type
closure_context
closures Rollup merge of #143297 - Kivooeo:tf22, r=tgross35 2025-07-04 23:26:22 -07:00
cmse-nonsecure tests: bless s/C-cmse/cmse/ 2025-06-25 00:52:11 -07:00
codegen Rollup merge of #143195 - Kivooeo:tf17, r=tgross35 2025-06-30 19:23:21 +08:00
codemap_tests Bless/update tests. 2025-06-18 10:20:43 +02:00
coercion cleaned up some tests 2025-07-05 00:45:24 +05:00
coherence Remove Symbol for Named LateParam/Bound variants 2025-07-04 18:14:22 +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 Rollup merge of #143118 - Kivooeo:tf15, r=tgross35 2025-06-30 19:23:17 +08:00
conditional-compilation compiletest: Support matching on non-json lines in compiler output 2025-05-04 18:27:45 +03:00
confuse-field-and-method Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
const-generics Auto merge of #143621 - matthiaskrgr:rollup-p1ce8l7, r=matthiaskrgr 2025-07-08 03:30:58 +00:00
const-ptr cleaned up some tests 2025-07-05 01:54:04 +05:00
const_prop Make missing lifetime suggestion verbose 2025-06-24 18:59:42 +00:00
consts Make Default const and add some const Default impls 2025-07-07 22:09:37 +00:00
contracts Fix unreachable expression warning 2025-04-08 10:46:31 -07:00
coroutine Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
coverage-attr compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03: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 compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
cross-crate Rollup merge of #142440 - Kivooeo:tf14, r=tgross35 2025-07-04 23:26:19 -07:00
custom_test_frameworks Address review comments. 2025-04-01 16:07:23 +11:00
cycle-trait Merge lower_item into check_item_type 2025-06-30 08:45:43 +00:00
dataflow_const_prop dataflow_const_prop: do not eval a ptr address in SwitchInt 2024-12-09 21:06:29 +08:00
debuginfo tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
definition-reachable
delegation Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
dep-graph Use non-2015 edition paths in tests that do not test for their resolution 2025-06-03 10:13:33 +02:00
deprecation Rollup merge of #142200 - Kivooeo:tf8, r=jieyouxu 2025-06-25 22:14:54 +02:00
deref-patterns Cleaned up 5 tests in tests/ui 2025-04-21 16:16:38 +09:00
derived-errors Use non-2015 edition paths in tests that do not test for their resolution 2025-06-03 10:13:33 +02:00
derives Rollup merge of #143118 - Kivooeo:tf15, r=tgross35 2025-06-30 19:23:17 +08:00
deriving Rollup merge of #141724 - Sol-Ell:issue-141141-fix, r=nnethercote 2025-06-03 15:00:32 +02:00
dest-prop
destructuring-assignment Suppress redundant error 2025-06-02 02:19:35 +00:00
diagnostic-flags cleaned up some tests 2025-07-05 01:54:04 +05:00
diagnostic-width Bless unicode test 2025-06-16 07:30:09 -04:00
diagnostic_namespace Introduce ParseMode::diagnostic and fix multiline spans 2025-06-09 16:28:58 +02:00
did_you_mean Remove unused descr methods 2025-06-30 20:36:16 +02: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 Rollup merge of #143300 - Kivooeo:tf25, r=tgross35 2025-07-04 23:26:23 -07:00
drop-bounds
dropck Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
dst compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
duplicate UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
dyn-compatibility Make missing lifetime suggestion verbose 2025-06-24 18:59:42 +00:00
dyn-drop Add missing dyn keywords to tests that do not test for them 2025-06-02 11:02:50 +02:00
dyn-keyword Fix suggestion when there are generics, inline some things 2025-03-08 20:44:57 +00:00
dynamically-sized-types Allow dangerous_implicit_autorefs lint in some tests 2025-04-20 11:36:28 +02:00
editions Rollup merge of #141937 - WaffleLapkin:never-report-in-deps, r=oli-obk,traviscross 2025-06-15 23:51:55 +02:00
empty Rewrite empty attribute lint 2025-07-06 09:51:35 +02:00
entry-point compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
enum detect when variants have the same name as an associated function 2025-06-12 12:26:27 +02:00
enum-discriminant Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
env-macro Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
ergonomic-clones Add missing 2015 edition directives 2025-06-02 11:00:46 +02:00
error-codes Suggest use another lifetime specifier instead of underscore lifetime 2025-07-01 19:58:27 +08:00
error-emitter reword suggestion message 2025-06-06 20:52:34 +00:00
errors Implement DesugaringKind::FormatLiteral 2025-06-22 10:58:25 +02:00
explain added error handle for error code > 9999 2025-05-06 23:02:47 +05:00
explicit compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
explicit-tail-calls const-eval error: always say in which item the error occurred 2025-06-07 13:42:30 +02:00
expr Rollup merge of #142214 - Kivooeo:tf9, r=jieyouxu 2025-06-29 12:29:54 +02:00
extern Auto merge of #143287 - GuillaumeGomez:rollup-fdjcti9, r=GuillaumeGomez 2025-07-01 18:09:52 +00:00
extern-flag Fix function signature for rust_eh_personality 2025-06-24 09:06:49 +00:00
feature-gates Port #[path] to the new attribute parsing infrastructure 2025-07-06 22:19:16 +02:00
ffi-attrs error on unsafe attributes in pre-2024 editions 2025-04-13 01:22:59 +02:00
float Implement the internal feature cfg_target_has_reliable_f16_f128 2025-04-27 19:58:44 +00:00
fmt Rollup merge of #143118 - Kivooeo:tf15, r=tgross35 2025-06-30 19:23:17 +08:00
fn Rollup merge of #143296 - Kivooeo:tf21, r=tgross35 2025-07-04 23:26:21 -07: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 make error codes reflect reality better 2025-06-17 23:22:51 +02:00
foreign compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
frontmatter Fix parsing of frontmatters with inner hyphens 2025-06-04 15:51:36 +00:00
fully-qualified-type compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
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 cleaned up some tests 2025-05-31 19:49:19 +05:00
generic-associated-types Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
generic-const-items Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
generics Rollup merge of #143300 - Kivooeo:tf25, r=tgross35 2025-07-04 23:26:23 -07: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 #143473 - workingjubilee:rollup-bxie7zg, r=scottmcm 2025-07-05 09:37:08 +00:00
hygiene Don't suggest changing a method inside a expansion 2025-06-22 17:08:54 +02:00
illegal-sized-bound UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
impl-header-lifetime-elision compiletest: Improve diagnostics for line annotation mismatches 2025-06-23 21:30:56 +03:00
impl-trait Rollup merge of #143570 - bvanjoi:issue-143560, r=compiler-errors 2025-07-08 03:09:57 +02:00
implied-bounds Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
imports Rollup merge of #142214 - Kivooeo:tf9, r=jieyouxu 2025-06-29 12:29:54 +02:00
include-macros cleaned up some tests 2025-06-11 20:51:49 +05:00
incoherent-inherent-impls chore: fix typos 2024-12-31 23:46:39 +08:00
indexing cleaned up some tests 2025-06-29 15:37:33 +05:00
inference Rollup merge of #142981 - compiler-errors:verbose-missing-suggestion, r=estebank 2025-06-26 15:47:22 +02:00
infinite Merge lower_item into check_item_type 2025-06-30 08:45:43 +00:00
inherent-impls-overlap-check Update tests to use new proc-macro header 2024-11-27 07:18:25 -08:00
inline-const const-block-as-pattern: do not refer to no-longer-existing nightly feature 2025-07-07 16:18:41 +02:00
instrument-coverage Update the minimum external LLVM to 19 2025-04-05 11:44:38 -07:00
instrument-xray Add compiler tests for xray 2025-05-26 00:39:23 +08: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 intrinsics: rename min_align_of to align_of 2025-06-12 17:50:25 +02:00
invalid Port #[rustc_layout_scalar_valid_range_start/end] to the new attribute parsing infrastructure 2025-06-27 09:08:21 +02:00
invalid-compile-flags tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00: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 Rollup merge of #143300 - Kivooeo:tf25, r=tgross35 2025-07-04 23:26:23 -07:00
issues Add ty_span query 2025-07-07 08:13:12 +00:00
iterators Unimplement unsized_locals 2025-06-13 01:16:36 +02:00
json compiletest: Support matching on non-json lines in compiler output 2025-05-04 18:27:45 +03:00
keyword Reword "crate not found" resolve message 2025-01-24 01:19:50 +00:00
kindck Use more detailed spans in dyn compat errors within bodies 2025-05-27 08:18:11 +00:00
label early linting: avoid redundant calls to check_id 2025-06-12 19:01:19 +08:00
lang-items Rollup merge of #141610 - BoxyUwU:stabilize_generic_arg_infer, r=lcnr,traviscross 2025-06-18 18:06:49 +02:00
late-bound-lifetimes
layout Rollup merge of #143296 - Kivooeo:tf21, r=tgross35 2025-07-04 23:26:21 -07:00
lazy-type-alias Move lazy type alias checks to non-hir-wfck 2025-06-30 08:45:43 +00: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 Add missing 2015 edition directives 2025-06-03 11:45:58 +02:00
lifetimes Use predicate spans instead of whole item spans 2025-06-30 08:45:43 +00:00
limits const-eval error: always say in which item the error occurred 2025-06-07 13:42:30 +02:00
link-native-libs tests: don't ignore compiler stderr in lib-defaults.rs 2025-05-06 16:49:25 +08:00
linkage-attr Rollup merge of #143195 - Kivooeo:tf17, r=tgross35 2025-06-30 19:23:21 +08:00
linking expand -Clink-self-contained tests 2025-07-08 10:24:10 +00:00
lint Make Default const and add some const Default impls 2025-07-07 22:09:37 +00:00
liveness Bless/update tests. 2025-06-18 10:20:43 +02:00
loop-match loop_match: fix 'no terminator on block' 2025-07-07 13:55:40 +02:00
loops Bless/update tests. 2025-06-18 10:20:43 +02:00
lowering Remove ItemKind::descr method 2025-07-01 14:36:28 +02: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 Auto merge of #143338 - matthiaskrgr:rollup-ykaxh04, r=matthiaskrgr 2025-07-02 23:29:03 +00:00
malformed Port #[ignore] to the new attribute parsing infrastructure 2025-07-05 21:23:09 +02:00
marker_trait_attr
match compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
meta Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
methods Use predicate spans instead of whole item spans 2025-06-30 08:45:43 +00:00
mir Rollup merge of #143273 - 1c3t3a:enum-check-negative, r=SparrowLii 2025-07-03 05:21:32 +02:00
mir-dataflow Improve borrowck_graphviz_* documentation. 2025-04-16 08:57:15 +10:00
mismatched_types cleaned up some tests 2025-07-05 00:45:24 +05: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 cleaned up some tests 2025-07-01 16:26:57 +05:00
modules_and_files_visibility suggest declaring modules when file found but module not defined 2025-06-25 01:12:15 +07:00
moves Suggest cloning Arc moved into closure 2025-06-24 18:44:41 +00:00
mut compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
namespace Use non-2015 edition paths in tests that do not test for their resolution 2025-06-03 13:35:31 +02:00
never_type Rollup merge of #142200 - Kivooeo:tf8, r=jieyouxu 2025-06-25 22:14:54 +02:00
new-range implement unstable new_range feature 2025-01-30 21:33:11 -07:00
nll Remove Symbol for Named LateParam/Bound variants 2025-07-04 18:14:22 +00:00
no_std cleaned up some tests 2025-07-01 15:16:56 +05: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 cleaned up some tests 2025-06-03 07:38:06 +05:00
numeric compiletest: Do not require annotations on empty labels and suggestions 2025-05-03 22:49:23 +03:00
object-lifetime Rollup merge of #141610 - BoxyUwU:stabilize_generic_arg_infer, r=lcnr,traviscross 2025-06-18 18:06:49 +02:00
obsolete-in-place More sophisticated span trimming 2025-02-21 00:41:17 +00:00
offset-of tests: PointeeSized bounds with extern types 2025-06-16 23:04:35 +00:00
on-unimplemented Implement DesugaringKind::FormatLiteral 2025-06-22 10:58:25 +02:00
operator-recovery Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
or-patterns Error message for top-level or-patterns suggesting a solution 2025-05-09 22:16:34 +09: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 tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
panic-runtime Rollup merge of #140809 - bjorn3:panic_runtime_cleanup, r=petrochenkov 2025-06-27 22:13:01 +02:00
panics cleaned up some tests 2025-07-05 00:50:51 +05:00
parallel-rustc compiletest: Stricter parsing for diagnostic kinds 2025-04-07 19:13:31 +03:00
parser Rename tests named with mbe to use macro instead 2025-07-05 21:09:10 -07:00
patchable-function-entry compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
pattern Rollup merge of #143299 - Kivooeo:tf24, r=tgross35 2025-07-04 23:26:23 -07:00
pin-ergonomics Move the place in &pin mut $place when !Unpin to ensure soundness 2025-06-15 10:31:11 +08:00
pin-macro collateral damage in derive tests, improves errors by not refering to implementation details 2025-05-02 18:09:31 +02:00
precondition-checks tests: ensure disabled tests have a reason 2025-04-12 15:24:25 +08:00
print-request cleaned up some tests 2025-07-05 00:45:24 +05:00
print_type_sizes Wrap NonZero::new_unchecked call in the print_type_sizes test in a const 2025-05-27 00:35:25 -04:00
privacy tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
proc-macro Add support for repetition to proc_macro::quote 2025-06-17 01:36:54 +09:00
process awhile -> a while where appropriate 2025-07-02 20:17:29 +02:00
process-termination
ptr_ops
pub Use non-2015 edition paths in tests that do not test for their resolution 2025-06-03 13:35:31 +02:00
qualified Preserve generic args in suggestions for ambiguous associated items 2025-05-06 17:04:03 +02:00
query-system Move opaque type checks from the hir item types visitor onto the wfcheck of the opaqe type itself 2025-06-05 10:30:09 +00:00
range Bless UI tests: do not print alternate implementors of Step 2025-06-20 19:31:53 +02: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 const-eval: error when initializing a static writes to that static 2025-06-27 14:39:35 +02:00
recursion_limit Use non-2015 edition paths in tests that do not test for their resolution 2025-06-03 13:35:31 +02:00
regions Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
repeat-expr stabilize gai 2025-06-11 15:30:15 +01:00
repr Rewrite empty attribute lint 2025-07-06 09:51:35 +02:00
reserved
resolve Port #[path] to the new attribute parsing infrastructure 2025-07-06 22:19:16 +02:00
return Merge typeck loop with static/const item eval loop 2025-05-09 15:31:27 +00:00
rfcs Port #[non_exhaustive] to the new attribute parsing infrastructure 2025-07-04 20:30:42 +02:00
rmeta compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
runtime cleaned up some tests 2025-06-08 11:25:09 +05:00
rust-2018 Add more missing 2015 edition directives 2025-06-05 09:20:19 +02:00
rust-2021 UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
rust-2024 Make attribute safety validation logic more obvious 2025-05-04 21:44:50 +08:00
rustc-env compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
rustdoc Don't include current rustc version string in feature removed help 2025-06-24 23:32:09 +08:00
sanitizer Workaround a MemorySanitizer test issue 2025-07-04 14:47:28 -07:00
self Replace ItemCtxt::report_placeholder_type_error match with a call to TyCtxt::def_descr 2025-06-30 20:36:16 +02:00
sepcomp Use non-2015 edition paths in tests that do not test for their resolution 2025-06-05 09:19:31 +02:00
shadowed cleaned up some tests 2025-07-05 01:54:04 +05:00
shell-argfiles
simd Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
single-use-lifetime
sized cleaned up some tests 2025-07-05 01:54:04 +05:00
sized-hierarchy Remove support for dyn* 2025-07-01 19:00:21 +00:00
span Implement DesugaringKind::FormatLiteral 2025-06-22 10:58:25 +02:00
specialization Make Default const and add some const Default impls 2025-07-07 22:09:37 +00:00
stability-attribute Merge lower_item into check_item_type 2025-06-30 08:45:43 +00:00
stable-mir-print Do not optimize stable-mir ui tests. 2025-07-06 16:11:43 +00:00
stack-protector tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
static Add ty_span query 2025-07-07 08:13:12 +00:00
statics Add ty_span query 2025-07-07 08:13:12 +00:00
stats Improve macro-stats printing. 2025-06-30 13:33:51 +10:00
std cleaned up some tests 2025-07-05 00:45:24 +05:00
stdlib-unit-tests Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
str cleaned up some tests 2025-07-05 01:25:48 +05:00
structs cleaned up some tests 2025-06-30 11:50:19 +05:00
structs-enums Better recovery 2025-06-26 18:11:14 +00:00
suggestions Rollup merge of #132469 - estebank:issue-132041, r=Nadrieril 2025-07-07 19:55:31 +02: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 tests: PointeeSized bounds with extern types 2025-06-16 23:04:35 +00:00
sync cleaned up some tests 2025-07-05 01:54:04 +05:00
target-cpu tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
target-feature Rollup merge of #143300 - Kivooeo:tf25, r=tgross35 2025-07-04 23:26:23 -07:00
target_modifiers Make -Zfixed-x18 into a target modifier 2025-05-05 12:42:27 +00:00
test-attrs Rollup merge of #142214 - Kivooeo:tf9, r=jieyouxu 2025-06-29 12:29:54 +02:00
thir-print loop match: run exhaustiveness check 2025-07-01 15:53:50 +02:00
thread-local Mark test as only-unix. 2025-03-27 14:11:11 +01:00
threads-sendsync cleaned up some tests 2025-07-01 15:16:56 +05:00
tool-attributes refactor AttributeGate and rustc_attr! to emit notes during feature checking 2025-06-09 11:44:24 +02:00
track-diagnostics refactor: Make -Ztrack-diagnostics emit like a note 2025-07-03 07:19:25 -06:00
trait-bounds Point to correct argument in Func Call when Self type fails trait bound 2025-07-07 16:47:15 +08:00
traits Auto merge of #134628 - estebank:const-default, r=oli-obk 2025-07-08 14:04:40 +00:00
transmutability transmutability: shift abstraction boundary 2025-06-09 14:08:12 +00:00
transmute cleaned up some tests 2025-06-28 17:04:16 +05:00
treat-err-as-bug const-eval error: always say in which item the error occurred 2025-06-07 13:42:30 +02:00
trivial-bounds
try-block Bless/update tests. 2025-06-18 10:20:43 +02:00
try-trait Point at type that doesn't implement needed trait 2025-02-21 18:30:07 +00:00
tuple Use non-2015 edition paths in tests that do not test for their resolution 2025-06-05 09:19:31 +02:00
type Add ty_span query 2025-07-07 08:13:12 +00:00
type-alias Cleaned up 5 tests in tests/ui 2025-04-25 20:50:57 +09:00
type-alias-enum-variants cleaned up some tests 2025-06-30 12:45:47 +05:00
type-alias-impl-trait Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
type-inference cleaned up some tests 2025-07-05 00:50:51 +05:00
typeck Rollup merge of #143299 - Kivooeo:tf24, r=tgross35 2025-07-04 23:26:23 -07:00
typeof compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
ufcs Rollup merge of #140370 - WaffleLapkin:unqualified, r=jdonszelmann 2025-06-01 19:35:41 +02:00
unboxed-closures added test for 30904 2025-06-08 03:44:44 +05:00
underscore-imports Emit a single error when importing a path with _ 2025-06-24 16:21:26 +00:00
underscore-lifetime Suggest use another lifetime specifier instead of underscore lifetime 2025-07-01 19:58:27 +08:00
uniform-paths
uninhabited treat box patterns as deref patterns in THIR and usefulness analysis 2025-07-04 01:28:35 -07:00
union Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +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 Fix line break after ":" in unpretty attribute print 2025-07-06 09:51:47 +02:00
unresolved Use non-2015 edition paths in tests that do not test for their resolution 2025-06-05 09:19:31 +02:00
unsafe Loop check anon consts on their own 2025-06-10 08:41:23 +00:00
unsafe-binders Fix spans for unsafe binders 2025-05-30 16:58:48 +00:00
unsafe-fields Do not require that unsafe fields lack drop glue 2025-02-28 16:32:06 +00:00
unsized Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
unsized-locals Update version placeholders 2025-07-01 10:54:33 -07:00
unused-crate-deps
unwind-abis
use Bless/update tests. 2025-06-18 10:20:43 +02:00
variance Check variances in the non-hir wfchecker 2025-06-30 08:45:43 +00:00
variants Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
version
warnings Use non-2015 edition paths in tests that do not test for their resolution 2025-06-05 09:19:31 +02:00
wasm Use cfg(false) in UI tests 2025-04-03 21:41:58 +00:00
wf Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
where-clauses Remove Symbol for Named LateParam/Bound variants 2025-07-04 18:14:22 +00: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
darwin-ld64.rs Add a regression test for ld64 2025-07-04 23:04:56 +08:00
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
lexical-scopes.rs
lexical-scopes.stderr
log-poly.rs
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
struct-ctor-mangling.rs
SUMMARY.md Remove support for dyn* 2025-07-01 19:00:21 +00:00
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
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 Make cast suggestions verbose 2025-06-06 19:53:12 +00:00
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 Replace elided_named_lifetimes with mismatched_lifetime_syntaxes 2025-06-04 10:40:04 -04:00
type-namespace.rs
type-param-constraints.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 Replace elided_named_lifetimes with mismatched_lifetime_syntaxes 2025-06-04 10:40:04 -04:00
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
usize-generic-argument-parent.rs
usize-generic-argument-parent.stderr
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 Bless/update tests. 2025-06-18 10:20:43 +02:00
weak-new-uninhabited-issue-48493.rs
weird-exit-code.rs
weird-exprs.rs Use non-2015 edition paths in tests that do not test for their resolution 2025-06-05 09:19:31 +02: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