Commit graph

294000 commits

Author SHA1 Message Date
Tshepang Mbambo
dc41a1bd93
that was phrased like a separate sentence 2025-06-11 07:14:12 +02:00
许杰友 Jieyou Xu (Joe)
aa0d277fd7
Merge pull request #2462 from lolbinarycat/patch-2 2025-06-11 02:26:34 +08:00
lolbinarycat
c0978c497d
Using git § I changed a submodule by accident: be explicit
Rewriting git history is something that is often difficult for new contributors,
and we're already explaining the `<foo>` placeholder syntax,
so I think it makes sense to be explicit about what exactly the paths mean.
2025-06-10 12:48:05 -05:00
Tshepang Mbambo
4967fd24de
Merge pull request #2461 from rust-lang/rustc-pull
Rustc pull update
2025-06-09 07:19:50 +02:00
The rustc-dev-guide Cronjob Bot
7565e75591 Merge from rustc 2025-06-09 04:09:17 +00:00
The rustc-dev-guide Cronjob Bot
f598bbd66b Preparing for merge from rustc 2025-06-09 04:08:59 +00:00
bors
c31cccb7b5 Auto merge of #142008 - RalfJung:const-eval-error-here, r=oli-obk
const-eval error: always say in which item the error occurred

I don't see why "is this generic" should make a difference. It may be reasonable to key this on whether the error occurs in a `const fn` that was invoked by a const (making it non-obvious which constant it is) vs inside the body of the const.

r? `@oli-obk`
2025-06-08 23:18:34 +00:00
bors
6ccd447603 Auto merge of #141700 - RalfJung:atomic-intrinsics-part2, r=bjorn3
Atomic intrinsics : use const generic ordering, part 2

This completes what got started in https://github.com/rust-lang/rust/pull/141507 by using a const generic for the ordering for all intrinsics. It is based on that PR; only the last commit is new.

Blocked on:
- https://github.com/rust-lang/rust/pull/141507
- https://github.com/rust-lang/rust/pull/141687
- https://github.com/rust-lang/stdarch/pull/1811
- https://github.com/rust-lang/rust/pull/141964

r? `@bjorn3`
2025-06-08 20:17:28 +00:00
León Orell Valerian Liehr
8290ab531c
Merge pull request #2460 from cyrgani/icebreaker
remove the archived ICE ping groups
2025-06-08 21:55:09 +02:00
cyrgani
ec62afcf77 remove the archived ICE ping groups 2025-06-08 21:49:54 +02:00
bors
fb644e6a1a Auto merge of #142095 - joshtriplett:optimize-veccache, r=SparrowLii
Simplify and optimize `VecCache`'s `SlotIndex::from_index`

Simplify and optimize `SlotIndex::from_index`

Break out bucket 0 (containing `idx < 4096`) as an early return, which
simplifies the remainder of the function, and allows optimizing the
`checked_ilog2` since it can no longer return `None`.

This reduces the runtime of `vec_cache::tests::slot_index_exhaustive`
(which calls `SlotIndex::from_index` for every `u32`, twice) from ~15.5s
to ~13.3s.

Separately, simplify the test case as well. (The old and new code passes with
the old and new test case.)

---

Noticed because `slot_index_exhaustive` stood out as taking unusually long compared to other tests, so I started investigating what it was doing.
2025-06-08 15:26:49 +00:00
bors
244bbfc60e Auto merge of #142088 - compiler-errors:perf-universal-stall, r=lcnr
Filter out universals and lifetimes from `stalled_vars`

lol

r? lcnr
2025-06-08 11:25:24 +00:00
bors
8072811356 Auto merge of #142085 - compiler-errors:perf-self-obl, r=lcnr
Don't walk into `Certainty::Yes` goals

Don't walk into `Certainty::Yes` goals in the pending obligation finding code, since they will not have been stalled on an infer var anyways
2025-06-08 05:30:59 +00:00
bors
0b65d0db5f Auto merge of #142074 - oli-obk:its-finally-gone, r=petrochenkov
Remove CollectItemTypesVisitor

I always felt like we were very unnecessarily walking the HIR, let's see if perf agrees

There is lots to ~~improve~~ consolidate further here, as we still have 3 item wfchecks:

* check_item (matching on the hir::ItemKind)
    * actually doing trait solver based checks (by using HIR spans)
* lower_item (matching on the hir::ItemKind after loading it again??)
    * just ensure_ok-ing a bunch of queries
* check_item_type (matching on DefKind)
    * some type based checks, mostly ensure_ok-ing a bunch of queries

fixes rust-lang/rust#121429
2025-06-08 02:04:41 +00:00
bors
a5584a8fe1 Auto merge of #142181 - GuillaumeGomez:rollup-pn2p1lu, r=GuillaumeGomez
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#140560 (Allow `#![doc(test(attr(..)))]` everywhere)
 - rust-lang/rust#141447 (Document representation of `Option<unsafe fn()>`)
 - rust-lang/rust#141661 (Make the `dangerous_implicit_autorefs` lint deny-by-default)
 - rust-lang/rust#142065 (Stabilize `const_eq_ignore_ascii_case`)
 - rust-lang/rust#142116 (Fix bootstrap tracing imports)
 - rust-lang/rust#142126 (Treat normalizing consts like normalizing types in deeply normalize)
 - rust-lang/rust#142140 (compiler: Sort and doc ExternAbi variants)
 - rust-lang/rust#142148 (compiler: Treat ForceWarning as a Warning for diagnostic level)
 - rust-lang/rust#142154 (get rid of spurious cfg(bootstrap))

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-07 23:05:07 +00:00
Guillaume Gomez
aa940603f5
Rollup merge of #142154 - RalfJung:no-more-cfg-bootstrap, r=oli-obk
get rid of spurious cfg(bootstrap)

r? ```@oli-obk```
2025-06-07 22:23:00 +02:00
Guillaume Gomez
3c860e3764
Rollup merge of #142148 - workingjubilee:dont-ice-on-force-warn, r=Urgau
compiler: Treat ForceWarning as a Warning for diagnostic level

This silences an ICE.

No idea if this is the correct solution though tbh.

Fixes rust-lang/rust#142144
2025-06-07 22:22:59 +02:00
Guillaume Gomez
5f6d9829cd
Rollup merge of #142140 - workingjubilee:sort-extern-abi-variants, r=bjorn3
compiler: Sort and doc ExternAbi variants

My personal brainworms found this ordering made the most sense while writing the CanonAbi PR.  It is *an* ordering, at least, unlike the current mess. There has been no particular reason for the previous order ever since rust-lang/rust#136901, despite the comment I delete here. I just didn't change it.

Because I feel weird just fussing with variant ordering in the source definition, I also documented a bunch to the best of my ability.
2025-06-07 22:22:59 +02:00
Guillaume Gomez
7c3cb5688d
Rollup merge of #142126 - compiler-errors:normalize-uv-via-relate, r=BoxyUwU
Treat normalizing consts like normalizing types in deeply normalize

...so that we don't end up putting a top-level normalizes-to goal in the fulfillment context, which ICEs. This basically just models the normalize-const code off of the normalize-ty code above it, which uses an alias-relate goal instead.

Fixes rust-lang/rust#140571

r? lcnr
2025-06-07 22:22:58 +02:00
Guillaume Gomez
215dc8c499
Rollup merge of #142116 - jieyouxu:fix-tracing, r=Mark-Simulacrum
Fix bootstrap tracing imports
2025-06-07 22:22:58 +02:00
Guillaume Gomez
7b0eeab4c7
Rollup merge of #142065 - paolobarbolini:stabilize-const_eq_ignore_ascii_case, r=Mark-Simulacrum
Stabilize `const_eq_ignore_ascii_case`

Tracking issue: rust-lang/rust#131719
Closes rust-lang/rust#131719
FCP Completed: https://github.com/rust-lang/rust/issues/131719#issuecomment-2941829167
2025-06-07 22:22:57 +02:00
Guillaume Gomez
c475ad097f
Rollup merge of #141661 - Urgau:deny-dangerous_implicit_autorefs, r=traviscross
Make the `dangerous_implicit_autorefs` lint deny-by-default

I intended for the `dangerous_implicit_autorefs` lint to be deny-by-default, the [T-lang nomination comment](https://github.com/rust-lang/rust/pull/123239#issuecomment-2727551097) even clearly mentioned deny-by-default, but somehow I and other missed that it is only warn-by-default.

I think the lint should still be deny-by-default as the implicit aliasing requirements can be quite dangerous.

In any-case, opening this PR for T-lang awareness.

`@rustbot` label +I-lang-nominated +T-lang
r? `@traviscross`
2025-06-07 22:22:57 +02:00
Guillaume Gomez
00db3457a6
Rollup merge of #141447 - y86-dev:option-layout-docs, r=RalfJung
Document representation of `Option<unsafe fn()>`

https://rust-lang.zulipchat.com/#narrow/channel/136281-t-opsem/topic/Option.20Layout.20with.20.60fn.60.20pointers/with/520055652
2025-06-07 22:22:56 +02:00
Guillaume Gomez
2c8a9cccd9
Rollup merge of #140560 - Urgau:test_attr-module-level, r=GuillaumeGomez
Allow `#![doc(test(attr(..)))]` everywhere

This PR adds the ability to specify [`#![doc(test(attr(..)))]`](https://doc.rust-lang.org/nightly/rustdoc/write-documentation/the-doc-attribute.html#testattr) ~~at module level~~ everywhere in addition to allowing it at crate-root.

This is motivated by a recent PR #140323 (by ````@tgross35)```` where we have to duplicate 2 attributes to every single `f16` and `f128` doctests, by allowing `#![doc(test(attr(..)))]` at module level (and everywhere else) we can omit them entirely and just have (in both module):

```rust
#![doc(test(attr(feature(cfg_target_has_reliable_f16_f128))))]
#![doc(test(attr(expect(internal_features))))]
```

Those new attributes are appended to the one found at crate-root or at a previous module. Those "global" attributes are compatible with merged doctests (they already were before).

Given the small addition that this is, I'm proposing to insta-stabilize it, but I can feature-gate it if preferred.

Best reviewed commit by commit.

r? ````@GuillaumeGomez````
2025-06-07 22:22:55 +02:00
bors
cdd545be1b Auto merge of #141950 - oli-obk:big-body-owner-loop, r=compiler-errors
Move coroutine_by_move_body_def_id into the big check_crate body owner loop

This avoids starting a parallel loop in sequence and instead runs all the queries for a specific DefId together.
2025-06-07 20:06:23 +00:00
Ralf Jung
52824052d7 cci_inrinsic tets: do not use atomic intrinsic 2025-06-07 21:45:58 +02:00
Ralf Jung
2a3a6150d4 move all intrinsic typeck logic into the one big match 2025-06-07 21:45:58 +02:00
Ralf Jung
8808c9d34b intrinsics: use const generic to set atomic ordering 2025-06-07 21:45:58 +02:00
León Orell Valerian Liehr
76b2ef2510
Merge pull request #2458 from fmease/followup-type-rustdoc-test-suite
Follow up: Fix typo
2025-06-07 19:00:46 +02:00
León Orell Valerian Liehr
f6270d2d92
Fix typo 2025-06-07 18:58:41 +02:00
León Orell Valerian Liehr
f56cf01ca7
Merge pull request #2298 from fmease/rustdoc-testing-addendum
rustdoc: Further improve chapters and sections on testing
2025-06-07 18:36:45 +02:00
León Orell Valerian Liehr
d281b45773
rustdoc: Further improve chapters and sections on testing 2025-06-07 18:35:40 +02:00
bors
2f2c8c3512 Auto merge of #141927 - compiler-errors:perf-select, r=lcnr
Clear nested candidates in select if certainty is yes

Proving these goals is redundant.
2025-06-07 15:26:34 +00:00
bors
5e0bdaa9dd Auto merge of #141964 - sayantn:update-stdarch, r=Amanieu
Update stdarch submodule

Updates the stdarch submodule.

## Merged PRs

 - rust-lang/stdarch#1797
 - rust-lang/stdarch#1758
 - rust-lang/stdarch#1798
 - rust-lang/stdarch#1811
 - rust-lang/stdarch#1810
 - rust-lang/stdarch#1807
 - rust-lang/stdarch#1806
 - rust-lang/stdarch#1812
 - rust-lang/stdarch#1795
 - rust-lang/stdarch#1796
 - rust-lang/stdarch#1813
 - rust-lang/stdarch#1816
 - rust-lang/stdarch#1818
 - rust-lang/stdarch#1820
 - rust-lang/stdarch#1819

r? `@Amanieu`
`@rustbot` label T-libs-api

Closes rust-lang/rust#111137
2025-06-07 12:25:59 +00:00
Ralf Jung
17946c22b1 const-eval error: always say in which item the error occurred
also adjust the wording a little so that we don't say "the error occurred here" for two different spans
2025-06-07 13:42:30 +02:00
Ralf Jung
6a6c595be6 get rid of spurious cfg(bootstrap) 2025-06-07 12:15:25 +02:00
bors
321dde1252 Auto merge of #141917 - petrochenkov:nobinroot, r=jieyouxu
bootstrap: Remove `rustc_snapshot_libdir` from PATH in one more place

Same as https://github.com/rust-lang/rust/pull/141657 but in a different part of the build system, with the same goal of addressing [#t-infra/bootstrap > Build broken in MSYS2 @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Build.20broken.20in.20MSYS2/near/520709527).

It seems to work on windows-{gnu,msvc} and linux-gnu at least.

r? jieyouxu
2025-06-07 09:21:38 +00:00
Jubilee Young
5bab0d2e66 compiler: Treat ForceWarning as a Warning for diagnostic level
This silences an ICE.
2025-06-07 00:49:29 -07:00
bors
c57119b9a1 Auto merge of #142142 - jhpratt:rollup-frlezq2, r=jhpratt
Rollup of 8 pull requests

Successful merges:

 - rust-lang/rust#137992 (Stabilise `os_string_pathbuf_leak`)
 - rust-lang/rust#141558 (Limit the size of cgu names when using the `-Zhuman-readable-cgu-name…)
 - rust-lang/rust#141797 (compiler: set Apple frame pointers by architecture)
 - rust-lang/rust#141857 (coretests: move float tests from num to floats module and use a more flexible macro to generate them)
 - rust-lang/rust#142045 (Make obligation cause code suggestions verbose)
 - rust-lang/rust#142076 (Check documentation of bootstrap in PR CI)
 - rust-lang/rust#142110 (Add solaris targets to build-manifest)
 - rust-lang/rust#142131 (Make cast suggestions verbose)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-07 06:20:45 +00:00
Jacob Pratt
fb6977c126
Rollup merge of #142131 - estebank:cast-sugg, r=Urgau
Make cast suggestions verbose

```
error[E0604]: only `u8` can be cast as `char`, not `u32`
  --> $DIR/E0604.rs:2:5
   |
LL |     1u32 as char;
   |     ^^^^^^^^^^^^ invalid cast
   |
help: try `char::from_u32` instead
   |
LL -     1u32 as char;
LL +     char::from_u32(1u32);
   |
```

```
error[E0620]: cast to unsized type: `&[u8]` as `[char]`
  --> $DIR/cast-to-slice.rs:6:5
   |
LL |     arr as [char];
   |     ^^^^^^^^^^^^^
   |
help: try casting to a reference instead
   |
LL |     arr as &[char];
   |            +
```

```
error[E0620]: cast to unsized type: `Box<{integer}>` as `dyn Send`
  --> $DIR/cast-to-unsized-trait-object-suggestion.rs:3:5
   |
LL |     Box::new(1) as dyn Send;
   |     ^^^^^^^^^^^^^^^^^^^^^^^
   |
help: you can cast to a `Box` instead
   |
LL |     Box::new(1) as Box<dyn Send>;
   |                    ++++        +
```

Part of rust-lang/rust#141973.
2025-06-07 07:05:48 +02:00
Jacob Pratt
6b4abb9180
Rollup merge of #142110 - psumbera:solaris-ci-build4, r=marcoieni
Add solaris targets to build-manifest

this is follow up for: https://github.com/rust-lang/rust/pull/138699
2025-06-07 07:05:48 +02:00
Jacob Pratt
383df26edd
Rollup merge of #142076 - Kobzol:doc-bootstrap-ci, r=marcoieni
Check documentation of bootstrap in PR CI

It's annoying when wrong doc comments in bootstrap [break](https://github.com/rust-lang/rust/pull/141272#issuecomment-2943614152) `auto` CI. This has happened a few times recently, and documenting bootstrap with the stage0 compiler should be pretty quick, so let's add it to PR CI.

r? ``@marcoieni``
2025-06-07 07:05:47 +02:00
Jacob Pratt
cf7ffa1aec
Rollup merge of #142045 - estebank:obligation-cause-code-suggestion, r=compiler-errors
Make obligation cause code suggestions verbose

```
error[E0277]: `()` is not a future
  --> $DIR/unnecessary-await.rs:28:10
   |
LL |     e!().await;
   |          ^^^^^ `()` is not a future
   |
   = help: the trait `Future` is not implemented for `()`
   = note: () must be a future or must implement `IntoFuture` to be awaited
   = note: required for `()` to implement `IntoFuture`
help: remove the `.await`
   |
LL -     e!().await;
LL +     e!();
   |
```
```
error[E0277]: the trait bound `String: Copy` is not satisfied
  --> $DIR/const-fn-in-vec.rs:1:47
   |
LL | static _MAYBE_STRINGS: [Option<String>; 5] = [None; 5];
   |                                               ^^^^ the trait `Copy` is not implemented for `String`
   |
   = note: required for `Option<String>` to implement `Copy`
   = note: the `Copy` trait is required because this value will be copied for each element of the array
help: create an inline `const` block
   |
LL | static _MAYBE_STRINGS: [Option<String>; 5] = [const { None }; 5];
   |                                               +++++++      +
```

Part of rust-lang/rust#141973
2025-06-07 07:05:47 +02:00
Jacob Pratt
0d2bf86284
Rollup merge of #141857 - RalfJung:coretests-floats, r=tgross35
coretests: move float tests from num to floats module and use a more flexible macro to generate them

This makes some progress on https://github.com/rust-lang/rust/issues/141726 by moving the float tests in `num` to `floats` and using a newer, more flexible macro to generate them. We also newly run these tests on f16 and f128 in const, and at runtime in Miri and for hosts where that works well enough.

I didn't yet deduplicate any tests or port the existing `floats::f*` tests to the macro, that can happen in a future PR.

try-job: x86_64-gnu-aux
2025-06-07 07:05:46 +02:00
Jacob Pratt
1c8b09639c
Rollup merge of #141797 - workingjubilee:apple-likes-frame-pointers-but-not-that-much, r=madsmtm
compiler: set Apple frame pointers by architecture

All Apple targets stop overriding this configuration and instead use the default base of FramePointer::NonLeaf, which means some Apples will have less frame pointers in leaf functions.

r? ``@madsmtm``

cc ``@thomcc``
2025-06-07 07:05:46 +02:00
Jacob Pratt
9f35917dd9
Rollup merge of #141558 - Diggsey:db-limit-cgu-name-length, r=matthewjasper
Limit the size of cgu names when using the `-Zhuman-readable-cgu-name…

…s` option

Prior to this change, cgu names could be generated which would result in filenames longer than the limit imposed by the OS.
2025-06-07 07:05:45 +02:00
Jacob Pratt
06a2daf4db
Rollup merge of #137992 - its-the-shrimp:stabilise_os_string_pathbuf_leak, r=dtolnay
Stabilise `os_string_pathbuf_leak`

This PR stabilises `#[feature(os_string_pathbuf_leak)]`, which defines 2 new methods in the std:

```rs
impl OsString {
    pub fn leak<'a>(self) -> &'a mut OsStr;
}

impl PathBuf {
    pub fn leak<'a>(self) -> &'a mut Path;
}
```

ACP: https://github.com/rust-lang/libs-team/issues/389
Tracking issue: https://github.com/rust-lang/rust/issues/125965
Implementation: https://github.com/rust-lang/rust/pull/125966
2025-06-07 07:05:44 +02:00
Jubilee Young
f66487b669 compiler: Remove superfluous renaming import of ExternAbi 2025-06-06 22:00:26 -07:00
Jubilee Young
8aafcc8021 compiler: Sort and doc ExternAbi variants 2025-06-06 22:00:23 -07:00
bors
1dc9ae6d10 Auto merge of #141910 - Kobzol:new-bors-try-branch-name-doc, r=marcoieni
Fix `create-docs-artifacts.sh` with new bors

The slashes in the branch name (`automation/bors/try`) were causing issues for this script (https://github.com/rust-lang/rust/actions/runs/15391908130/job/43303193243).

r? `@marcoieni`

try-job: `mingw-check*`
2025-06-07 03:21:09 +00:00