Commit graph

294342 commits

Author SHA1 Message Date
Jana Dönszelmann
6072207a11
introduce new lint infra
lint on duplicates during attribute parsing
To do this we stuff them in the diagnostic context to be emitted after
hir is constructed
2025-06-12 09:56:47 +02:00
Jonathan Dönszelmann
4e1b6d13a2 Start using new diagnostic logic on all existing single parsers 2025-06-12 09:42:45 +02:00
Jana Dönszelmann
28bf61b9b3
introduce duplicate attribute diagnostic logic 2025-06-12 09:42:45 +02:00
bors
fe5c95d4ae Auto merge of #142392 - matthiaskrgr:rollup-9jrfqnu, r=matthiaskrgr
Rollup of 10 pull requests

Successful merges:

 - rust-lang/rust#141307 (Add method to retrieve body of closure in stable-mir)
 - rust-lang/rust#142040 (transmutability: shift abstraction boundary)
 - rust-lang/rust#142066 (More simple 2015 edition test decoupling)
 - rust-lang/rust#142157 (rustc_resolve: Improve `resolve_const_param_in_non_trivial_anon_const` wording)
 - rust-lang/rust#142217 (`tests/ui`: A New Order [10/N])
 - rust-lang/rust#142219 (`tests/ui`: A New Order [11/N])
 - rust-lang/rust#142261 (use correct edition when warning for unsafe attributes)
 - rust-lang/rust#142303 (Assorted bootstrap cleanups (step 1))
 - rust-lang/rust#142318 (Cleanup `rust-src` remapping and real dir)
 - rust-lang/rust#142352 (compiler: Make `c_int_width` an integer)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-12 04:06:02 +00:00
Matthias Krüger
240776176b
Rollup merge of #142352 - workingjubilee:c-int-width-is-an-integer, r=wesleywiser
compiler: Make `c_int_width` an integer

Because it is.

That's all I got.
2025-06-12 03:14:54 +02:00
Matthias Krüger
78d83952e4
Rollup merge of #142318 - Urgau:cleanup-rust-src-remap, r=jieyouxu
Cleanup `rust-src` remapping and real dir

When remapping, `bootstrap` sets `CFG_VIRTUAL_RUST_SOURCE_BASE_DIR` to indicate what the base build dir (`/` of this repo) was remapped to, ie. `/rustc/...`.

It is therefore impossible when stripping `/rustc/...` from a remapped path to be inside the our `library/` directory, nevertheless we have code that assumed it was possible and helpfully tried to correct it. I don't why this was done, but it's not necessary.

~~The normalization in compiletest of `$SRC_DIR_REAL` was also slightly wrong, it ate the `library` part for no reason.~~ EDIT: there is a reason, it affects too much tests otherwise

r? `@jieyouxu`
2025-06-12 03:14:53 +02:00
Matthias Krüger
bb9dda1272
Rollup merge of #142303 - Kobzol:bootstrap-cleanup-1, r=jieyouxu
Assorted bootstrap cleanups (step 1)

Now that the stage0 redesign has landed, we can finally start cleaning up many things in bootstrap, and lord knows it deserves it! I plan to send many PRs once I figure out an incremental way forward, this is the first one of them. It doesn't actually change anything, just renames stuff and adds more documentation, but the rename is bitrotty, so I wanted to push the PR eagerly.

r? `@jieyouxu`
2025-06-12 03:14:53 +02:00
Matthias Krüger
75c186bf43
Rollup merge of #142261 - folkertdev:unstable-attr-correct-edition, r=compiler-errors
use correct edition when warning for unsafe attributes

fixes https://github.com/rust-lang/rust/issues/142182

If an attribute is re-emitted by a macro, the incorrect edition was used to emit warnings for unsafe attributes.

This logic was introduced in https://github.com/rust-lang/rust/pull/139718

cc `@compiler-errors` `@ehuss`
2025-06-12 03:14:52 +02:00
Matthias Krüger
e2e201fd6b
Rollup merge of #142219 - Kivooeo:tf11, r=wesleywiser
`tests/ui`: A New Order [11/N]

Some `tests/ui/` housekeeping, to trim down number of tests directly under `tests/ui/`. Part of rust-lang/rust#133895.

r? `@jieyouxu`
2025-06-12 03:14:52 +02:00
Matthias Krüger
c557695fe1
Rollup merge of #142217 - Kivooeo:tf10, r=jieyouxu
`tests/ui`: A New Order [10/N]

Some `tests/ui/` housekeeping, to trim down number of tests directly under `tests/ui/`. Part of rust-lang/rust#133895.

r? `@jieyouxu`
2025-06-12 03:14:51 +02:00
Matthias Krüger
2d9513b98c
Rollup merge of #142157 - Enselic:trivial-anon-const-use-cases, r=compiler-errors
rustc_resolve: Improve `resolve_const_param_in_non_trivial_anon_const` wording

In some contexts, const expressions are OK. Add a `here` to the error message to clarify this.

Closes rust-lang/rust#79429 which has 15 x 👍
2025-06-12 03:14:51 +02:00
Matthias Krüger
b3ddf3cae2
Rollup merge of #142066 - ferrocene:lw/edition-2015-tests, r=compiler-errors
More simple 2015 edition test decoupling

This should be the last of these PRs for now. The remaining tests that do not work on other editions than 2015 either need the range support (so blocked on the MCP), need normalization rules (which needs discussions first/same MCP) or revisions.

r? compiler-errors
2025-06-12 03:14:50 +02:00
Matthias Krüger
bdf7b74517
Rollup merge of #142040 - jswrenn:transmute-ty-region-generic, r=compiler-errors
transmutability: shift abstraction boundary

Previously, `rustc_transmute`'s layout representations were genericized over `R`, a reference. Now, it's instead genericized over representations of type and region. This allows us to move reference transmutability logic from `rustc_trait_selection` to `rustc_transmutability` (and thus unit test it independently of the compiler), and — in a follow-up PR — will make it possible to support analyzing function pointer transmutability with minimal surgery.

r? `@compiler-errors`
2025-06-12 03:14:49 +02:00
Matthias Krüger
9f6e81c202
Rollup merge of #141307 - b-naber:closure-body, r=celinval
Add method to retrieve body of closure in stable-mir

fixes https://github.com/rust-lang/project-stable-mir/issues/85

r? `@celinval`
2025-06-12 03:14:49 +02:00
bors
14346303d7 Auto merge of #136594 - pascaldekloe:fmt-int128, r=tgross35
Faster fmt::Display of 128-bit integers, without unsafe pointer

In followup of #135265, hereby the 128-bit part.

* Batches per 16 instead of 19 digits
* Buffer access as array insteaf of unsafe pointer
* Added test coverage for i128 and u128

r? tgross35 ChrisDenton
2025-06-12 01:02:55 +00:00
bors
31d0d2123d Auto merge of #142381 - matthiaskrgr:rollup-si4xbko, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#142305 (Remove unneeded `check_id` calls as they are already called in `visit_id` in `EarlyContextAndPass` type)
 - rust-lang/rust#142314 (remove ice group pings from `triagebot.toml`)
 - rust-lang/rust#142343 (remove myself from the project)
 - rust-lang/rust#142346 (Add tracing import to execution context)
 - rust-lang/rust#142356 (Fix enter_trace_span!() using wrong $crate paths)
 - rust-lang/rust#142362 (Add expectation for `{` when parsing lone coroutine qualifiers)
 - rust-lang/rust#142364 (Do not warn on `rust.incremental` when using download CI rustc)
 - rust-lang/rust#142369 (Improve some attribute docs and rename groups)
 - rust-lang/rust#142374 (Fix missing newline trim in bootstrap)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-11 22:01:33 +00:00
Matthias Krüger
c97dca6989
Rollup merge of #142374 - Kobzol:fix-newline, r=tmiasko
Fix missing newline trim in bootstrap

Fixes [this comment](https://github.com/rust-lang/rust/pull/141909/files#r2140632918).

Fixes: https://github.com/rust-lang/rust/issues/142350
2025-06-11 22:58:30 +02:00
Matthias Krüger
f417620160
Rollup merge of #142369 - jdonszelmann:attr-docs, r=fmease
Improve some attribute docs and rename groups

r? `@nnethercote`

Some naming here got changed at some point, and this feels more consistent. The docs changes were a direct response to `@mejrs` trying to implement a new parsers and running into this.
2025-06-11 22:58:29 +02:00
Matthias Krüger
e80be0bcba
Rollup merge of #142364 - Kobzol:download-ci-incremental-warning-remove, r=RalfJung
Do not warn on `rust.incremental` when using download CI rustc

Discussed on Zulip.

r? `@RalfJung`
2025-06-11 22:58:29 +02:00
Matthias Krüger
e78b619cad
Rollup merge of #142362 - Veykril:push-rzmrsswqourz, r=oli-obk
Add expectation for `{` when parsing lone coroutine qualifiers

Fixes https://github.com/rust-lang/rust/issues/80931
2025-06-11 22:58:28 +02:00
Matthias Krüger
e2846d6b75
Rollup merge of #142356 - Stypox:fix-enter_trace_span, r=RalfJung
Fix enter_trace_span!() using wrong $crate paths

This is a followup to rust-lang/rust#140972, where I made a silly mistake and forgot to update `$crate::interpret::tracing_utils::...` to `$crate::interpret::util::...` inside the macro after moving the referenced code from `tracing_utils.rs` to `util.rs`. Sorry about this.

r? `@RalfJung`
2025-06-11 22:58:28 +02:00
Matthias Krüger
507c57554d
Rollup merge of #142346 - Shourya742:2025-06-11-add-tracing-import-to-execution-context, r=Kobzol
Add tracing import to execution context

In https://github.com/rust-lang/rust/pull/141909, we missed adding the trace_cmd import in the execution context module. This PR fixes that. Additionally, we are updating the mingw-check-2 check command to include BOOTSTRAP_TRACING=1 to help ensure we don't miss such cases in future PRs.

r? `@Kobzol`
2025-06-11 22:58:27 +02:00
Matthias Krüger
13f95426fd
Rollup merge of #142343 - onur-ozkan:remove-myself-from-the-project, r=Kobzol
remove myself from the project

See [#t-infra/bootstrap > stepping down from T-Bootstrap](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/stepping.20down.20from.20T-Bootstrap/with/523501689)
2025-06-11 22:58:27 +02:00
Matthias Krüger
deea0677f4
Rollup merge of #142314 - cyrgani:icebreaker, r=jieyouxu
remove ice group pings from `triagebot.toml`

Followup to rust-lang/team#1860.

Question: should the https://github.com/rust-lang/rust/labels/ICEBreaker-Cleanup-Crew and https://github.com/rust-lang/rust/labels/ICEBreaker-LLVM labels be deleted too or not?
2025-06-11 22:58:26 +02:00
Matthias Krüger
b29c9a3588
Rollup merge of #142305 - GuillaumeGomez:remove-visit_id-EarlyContextAndPass, r=oli-obk
Remove unneeded `check_id` calls as they are already called in `visit_id` in `EarlyContextAndPass` type

Follow-up from [this message](https://github.com/rust-lang/rust/pull/142240/files#r2137474724).

Since `check_id` is already called in `visit_id` which is supposed to be called for each item with an ID, we don't need to manually call `check_id`.

r? `@oli-obk`
2025-06-11 22:58:26 +02:00
bors
e703dff8fe Auto merge of #142358 - matthiaskrgr:rollup-fxe6m7k, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#141967 (Configure bootstrap backport nominations through triagebot)
 - rust-lang/rust#142042 (Make E0621 missing lifetime suggestion verbose)
 - rust-lang/rust#142272 (tests: Change ABIs in tests to more future-resilient ones)
 - rust-lang/rust#142282 (Only run `citool` tests on the `auto` branch)
 - rust-lang/rust#142297 (Implement `//@ needs-target-std` compiletest directive)
 - rust-lang/rust#142298 (Make loongarch-none target maintainers more easily pingable)
 - rust-lang/rust#142306 (Dont unwrap and re-wrap typing envs)
 - rust-lang/rust#142324 (Remove unneeded `FunctionCx` from some codegen methods)
 - rust-lang/rust#142328 (feat: Add `bit_width` for unsigned integer types)

Failed merges:

 - rust-lang/rust#141639 (Expose discriminant values in stable_mir)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-11 17:51:57 +00:00
Jakub Beránek
87b068ccb7
Fix missing newline trim in bootstrap 2025-06-11 19:05:10 +02:00
Jana Dönszelmann
ce0438684d
consistently rename (old) attribute groups 2025-06-11 18:46:57 +02:00
Jana Dönszelmann
34241e5397
document attribute parsers better 2025-06-11 18:46:57 +02:00
Kivooeo
c6c55cc0cb cleaned up some tests 2025-06-11 20:51:49 +05:00
Lukas Wirth
edc405d383 Add expectation for { when parsing lone coroutine qualifiers 2025-06-11 17:11:58 +02:00
bors
f77bb1b294 Auto merge of #142344 - Kobzol:revert-142232, r=RalfJung
Revert "add `Cargo.lock` to CI-rustc allowed list for non-CI env"

This reverts commit c3de813944 (https://github.com/rust-lang/rust/pull/142232).

r? `@RalfJung`

Fixes: https://github.com/rust-lang/rust/issues/142338
Unfixes: https://github.com/rust-lang/rust/issues/141986
2025-06-11 14:49:22 +00:00
Kivooeo
09940635d5 cleaned up some tests 2025-06-11 17:49:03 +05:00
Jakub Beránek
796ee4ff6c
Do not warn on rust.incremental when using download CI rustc 2025-06-11 14:42:06 +02:00
Pascal S. de Kloe
042a271742 faster fmt::Display of 128-bit integers, without unsafe pointer 2025-06-11 14:20:57 +02:00
Matthias Krüger
583a6e2de7
Rollup merge of #142328 - sorairolake:feature/uint-bit-width, r=tgross35
feat: Add `bit_width` for unsigned integer types

- Accepted ACP: rust-lang/libs-team#598
- Tracking issue: rust-lang/rust#142326

This PR adds methods to the primitive unsigned integer types that return the minimum number of bits required to represent an unsigned integer.
2025-06-11 13:48:13 +02:00
Matthias Krüger
b1c668ca03
Rollup merge of #142324 - scottmcm:less-functioncx, r=workingjubilee
Remove unneeded `FunctionCx` from some codegen methods

No changes; just removing the `self` that wasn't needed.

r? workingjubilee
cc https://github.com/rust-lang/rust/pull/138759#issuecomment-2920860686
2025-06-11 13:48:13 +02:00
Matthias Krüger
9ef19ddfd8
Rollup merge of #142306 - compiler-errors:nit-reveal-param-env-query, r=lcnr
Dont unwrap and re-wrap typing envs

Just a tiny tweak to make the query less awkward.

r? lcnr
2025-06-11 13:48:12 +02:00
Matthias Krüger
80e294e011
Rollup merge of #142298 - jieyouxu:loongarch-maintainer-list, r=fee1-dead
Make loongarch-none target maintainers more easily pingable

In the same style as rust-lang/rust#139028.
r? compiler
2025-06-11 13:48:12 +02:00
Matthias Krüger
57bb38b836
Rollup merge of #142297 - jieyouxu:needs-target-std, r=Kobzol
Implement `//@ needs-target-std` compiletest directive

Closes rust-lang/rust#141863.
Needed to unblock rust-lang/rust#139244 and rust-lang/rust#141856.

### Summary

This PR implements a `//@ needs-target-std` compiletest directive that gates test execution based on whether the target supports std or not. For some cases, this should be preferred over e.g. some combination of `//@ ignore-none`, `//@ ignore-nvptx` and more[^none-limit].

### Implementation limitation

Unfortunately, since there is currently [no reliable way to determine from metadata whether a given target supports std or not](https://github.com/rust-lang/rust/issues/142296), we have to resort to a hack. Bootstrap currently determines whether or not a target supports std by a naive target tuple substring comparison: a target supports std if its target tuple does *not* contain one of `["-none", "nvptx", "switch"]` substrings. This PR simply pulls that hack out into `build_helpers` to avoid reimplementing the same hack in compiletest, and uses that logic to inform `//@ needs-target-std`.

### Auxiliary changes

This PR additionally changes a few run-make tests to use `//@ needs-target-std` over an inconsistent combination of target-based `ignore`s. This should help with rust-lang/rust#139244.

---

r? bootstrap

[^none-limit]: Notably, `target_os = "none"` is **not** a sufficient condition for "target does not support std"
2025-06-11 13:48:11 +02:00
Matthias Krüger
407e568381
Rollup merge of #142282 - Kobzol:citool-skip-tests, r=marcoieni
Only run `citool` tests on the `auto` branch

Proposed here: [#t-infra > PR ci seems much to slow @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/PR.20ci.20seems.20much.20to.20slow/near/523159583). I haven't yet seen these tests failing on CI, so I think it's a good trade-off.

r? `````@marcoieni`````
2025-06-11 13:48:10 +02:00
Matthias Krüger
90e4ba46ea
Rollup merge of #142272 - workingjubilee:change-some-abi-tests, r=aDotInTheVoid
tests: Change ABIs in tests to more future-resilient ones

Eventually we're going to make these tests not work as they are currently written on HEAD, so change them now to get ahead of that.

r? aDotInTheVoid
2025-06-11 13:48:09 +02:00
Matthias Krüger
58d80b6d05
Rollup merge of #142042 - estebank:explicit-lifetime-verbose-suggestion, r=compiler-errors
Make E0621 missing lifetime suggestion verbose

```
error[E0621]: explicit lifetime required in the type of `x`
  --> $DIR/42701_one_named_and_one_anonymous.rs:10:9
   |
LL |         &*x
   |         ^^^ lifetime `'a` required
   |
help: add explicit lifetime `'a` to the type of `x`
   |
LL | fn foo2<'a>(a: &'a Foo, x: &'a i32) -> &'a i32 {
   |                             ++
```

Part of rust-lang/rust#141973.
2025-06-11 13:48:09 +02:00
Matthias Krüger
471dee2ca8
Rollup merge of #141967 - jieyouxu:bootstrap-backports, r=Kobzol
Configure bootstrap backport nominations through triagebot

Following the discussion in [#t-infra/bootstrap > ✔ Have triagebot create backport nomination threads?](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/.E2.9C.94.20Have.20triagebot.20create.20backport.20nomination.20threads.3F/with/521876500) where we noticed that bootstrap backport nominations were difficult to track, since:

- We don't really have a dedicated person / group of people checking for bootstrap backport nominations.
- We don't really have an establish way of handling bootstrap backports.

This PR configures triagebot to open backport nominations threads (indicated for bootstrap team if a given PR has the suitable team label, https://github.com/rust-lang/rust/labels/T-bootstrap) in [#t-infra/bootstrap/backports](https://rust-lang.zulipchat.com/#narrow/channel/507486-t-infra.2Fbootstrap.2Fbackports). The current configuration is such that **the whole bootstrap team will be pinged for bootstrap backport nominations**[^diverges].

### Steps

- [x] ~~Ping members who opt-in subscribe to backport channel, or ping the whole bootstrap team?~~
    - Poll: [#t-infra/bootstrap > Have triagebot create backport nomination threads? @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Have.20triagebot.20create.20backport.20nomination.20threads.3F/near/522141337)
    - Votes (as of 2025-06-10): 3 votes "no preference", 1 vote "in favor".
- [x] ~~(Best for follow-up) Maybe also document bootstrap team's backport process / decision process in Forge? It's a bit different from [compiler team's backport process](https://forge.rust-lang.org/compiler/backports.html) because we don't have weekly bootstrap triage meetings and thus don't have sync backport decisions.~~
    - Tracked as follow-up in Forge: https://github.com/rust-lang/rust-forge/issues/889.

---

r? Kobzol

[^diverges]: Note that this configuration is similar to the types team backport nominations, but diverges from the compiler team.
2025-06-11 13:48:08 +02:00
bors
bdb04d6c4f Auto merge of #141763 - lcnr:fixme-gamer, r=BoxyUwU
`FIXME(-Znext-solver)` triage

r? `@BoxyUwU`
2025-06-11 11:47:05 +00:00
bit-aloo
d4d90ca3d2
put flag check at the end of command chain in mingw-check-2 2025-06-11 16:01:40 +05:30
Stypox
cd04717899
Fix enter_trace_span!() using wrong $crate paths 2025-06-11 12:22:20 +02:00
bit-aloo
8c236ab51e
add comment over ci change 2025-06-11 13:48:50 +05:30
bit-aloo
052a7c5618
add tracing flag in bootstrap check cmd in mingw-check-2 ci workflow 2025-06-11 13:43:42 +05:30
Jakub Beránek
3a33dd6194
Revert "add Cargo.lock to CI-rustc allowed list for non-CI env"
This reverts commit c3de813944.
2025-06-11 10:08:45 +02:00