298821 Commits

Author SHA1 Message Date
Matthias Krüger
e2ea213874
Rollup merge of #143234 - GuillaumeGomez:ice-143128, r=oli-obk
Replace `ItemCtxt::report_placeholder_type_error` match with a call to `TyCtxt::def_descr`

Fixes rust-lang/rust#143128.

We could likely use `tcx.def_descr` in more places (and therefore remove more `descr` methods). If it's something that we want to do, I can send a follow-up.

r? `@oli-obk`
2025-07-01 04:25:36 +02:00
Matthias Krüger
79e96c0dc5
Rollup merge of #143178 - eeshvardasikcm:master, r=notriddle
rustdoc default faviocon

rust-lang/rust#143154
default favicon now appears to be the new behavior, instead of no favicon.
2025-07-01 04:25:35 +02:00
Matthias Krüger
96fd669328
Rollup merge of #143156 - folkertdev:fn-align-inherit-from-trait, r=workingjubilee
inherit `#[align]` from trait method prototypes

````@workingjubilee```` this seems straightforward enough. Now that we're planning to make `-Cmin-function-alignment` a target modifier, I don't think there are any cross-crate complications here?

````@Jules-Bertholet```` is this the behavior you had in mind? In particular the inheritance of the attribute of a default impl is maybe a bit unintuitive at first? (but I think it's ok if that behavior is explicitly documented).

r? ghost
2025-07-01 04:25:35 +02:00
Matthias Krüger
74d1d59e7c
Rollup merge of #143125 - tgross35:aarch64-neon-llvm19-f16, r=cuviper
Disable f16 on Aarch64 without neon for llvm < 20.1.1

This check was added unconditionally in c51b229140 ("Disable f16 on Aarch64 without `neon`") and reverted in 4a8d35709e ("Revert "Disable `f16` on Aarch64 without `neon`"") since it did not fail in Rust's build. However, it is still possible to hit this crash if using LLVM 19 built with assertions, so disable the type conditionally based on version here.

Note that for these builds, a similar patch is needed in the build script for `compiler-builtins` since it does not yet use `cfg(target_has_reliable_f16)` (hopefully to be resolved in the near future).

Report: https://github.com/rust-lang/rust/pull/139276#issuecomment-3014781652
Original LLVM issue: https://github.com/llvm/llvm-project/issues/129394
2025-07-01 04:25:34 +02:00
bors
fdad98d746 Auto merge of #143254 - matthiaskrgr:rollup-7x8bxek, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#143019 (Ensure -V --verbose processes both codegen_backend and codegen-backend)
 - rust-lang/rust#143140 (give Pointer::into_parts a more scary name and offer a safer alternative)
 - rust-lang/rust#143175 (Make combining LLD with external LLVM config a hard error)
 - rust-lang/rust#143180 (Use `tracing-forest` instead of `tracing-tree` for bootstrap tracing)
 - rust-lang/rust#143223 (Improve macro stats printing)
 - rust-lang/rust#143228 (Handle build scripts better in `-Zmacro-stats` output.)
 - rust-lang/rust#143229 ([COMPILETEST-UNTANGLE 1/N] Move some some early config checks to the lib and move the compiletest binary)
 - rust-lang/rust#143246 (Subtree update of `rust-analyzer`)
 - rust-lang/rust#143248 (Update books)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-30 22:36:52 +00:00
Matthias Krüger
3f6dc54f5c
Rollup merge of #143248 - rustbot:docs-update, r=ehuss
Update books

## rust-lang/book

2 commits in 8a6d44e45b7b564eeb6bae30507e1fbac439d72d..ef1ce8f87a8b18feb1b6a9cf9a4939a79bde6795
2025-06-28 18:06:08 UTC to 2025-06-26 23:08:19 UTC

- Chapter 14 from tech review (rust-lang/book#4423)
- Chapter 13 from tech review (rust-lang/book#4421)

## rust-embedded/book

1 commits in 10fa1e084365f23f24ad0000df541923385b73b6..41f688a598a5022b749e23d37f3c524f6a0b28e1
2025-06-27 07:21:31 UTC to 2025-06-27 07:21:31 UTC

- Fix incorrect type for semihosted stdout stream rust-lang/rust#394 (rust-embedded/book#395)

## rust-lang/reference

4 commits in 50fc1628f36563958399123829c73755fa7a8421..e9fc99f107840813916f62e16b3f6d9556e1f2d8
2025-06-28 20:00:14 UTC to 2025-06-24 19:02:48 UTC

- fix: swap places for 2 words in associated-items.md sentence. (rust-lang/reference#1871)
- Add new temporary lifetime extension rule (rust-lang/reference#1813)
- Fix smart punctuation inside grammar terminals (rust-lang/reference#1869)
- Fix placement of codegen link definitions (rust-lang/reference#1868)

## rust-lang/rust-by-example

1 commits in 05c7d8bae65f23a1837430c5a19be129d414f5ec..288b4e4948add43f387cad35adc7b1c54ca6fe12
2025-06-25 12:35:59 UTC to 2025-06-25 12:35:59 UTC

- allow easy fixes (rust-lang/rust-by-example#1941)
2025-06-30 20:49:45 +02:00
Matthias Krüger
6d41b3479f
Rollup merge of #143246 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? ``@ghost``
2025-06-30 20:49:44 +02:00
Matthias Krüger
8156725d2e
Rollup merge of #143229 - jieyouxu:compiletest-maintenance-1, r=Kobzol
[COMPILETEST-UNTANGLE 1/N] Move some some early config checks to the lib and move the compiletest binary

This is part of a patch series to untangle `compiletest` to hopefully nudge it towards being more maintainable.

This PR:

- Moves some early config checks (some warnings) to the compiletest library.
- Moves `src/main.rs` to `src/bin/main.rs` to make the separation (as in, compiletest's library component vs the tool binary component) more obvious.

r? ``@Kobzol`` (or reroll)
2025-06-30 20:49:44 +02:00
Matthias Krüger
f2231d5324
Rollup merge of #143228 - nnethercote:macro-stats-build-scripts, r=Kobzol
Handle build scripts better in `-Zmacro-stats` output.

Currently all build scripts are listed as `build_script_build` in the stats header. This commit uses `CARGO_PKG_NAME` to improve that.

I tried it on Bevy, it works well, giving output like this on the build script:
```
MACRO EXPANSION STATS: serde build script
```
and this on the crate itself:
```
MACRO EXPANSION STATS: serde
```

r? `@Kobzol`
2025-06-30 20:49:43 +02:00
Matthias Krüger
172fc60e5f
Rollup merge of #143223 - nnethercote:improve-macro-stats-printing, r=petrochenkov
Improve macro stats printing

Fix a small formatting issue that has been annoying me.

r? ``@petrochenkov``
2025-06-30 20:49:43 +02:00
Matthias Krüger
d3c02b48df
Rollup merge of #143180 - jieyouxu:forest, r=Kobzol
Use `tracing-forest` instead of `tracing-tree` for bootstrap tracing

I find the `tracing-forest` output easier to comprehend.

Note that this is not a strict improvement -- `tracing-forest` output contains some emojis and redundant log levels, but customizing it seems to be... non-trivial. Despite this, I still find `tracing-forest` easier to follow than `tracing-tree`, even when I tried to tune `tracing-tree` output.

### Preview

```bash
BOOTSTRAP_TRACING=debug ./x test library/std --dry-run
```

With `tracing-forest` (this PR), it looks like

![Screenshot 2025-06-29 174802](https://github.com/user-attachments/assets/1ab9150f-48f8-4fb3-b004-27bcf8bbc0f5)

With `tracing-tree` (before this PR), it looked like

![Screenshot 2025-06-29 175227](https://github.com/user-attachments/assets/659e254d-15ab-47dd-af11-98e2331d4d7a)

r? `@Kobzol`
2025-06-30 20:49:42 +02:00
Matthias Krüger
1be0c62069
Rollup merge of #143175 - Kobzol:bootstrap-lld-external-llvm-config, r=Jieyouxu
Make combining LLD with external LLVM config a hard error

Younger me made this only a warning in https://github.com/rust-lang/rust/pull/139853, because our post-dist tests were relying on this. But that was not a good idea, because there are a bunch of places in bootstrap that outright try to build LLD/copy LLD to sysroot when `lld_enabled` is true (rightfully so), which is causing issues (https://github.com/rust-lang/rust/issues/143076). Instead of piling more hacks, I'd like to just disallow this, and if we need to use a hack, do it only for our CI.

If this breaks the CI post-dist tests, I'll either add some special environment variable for it, or, as an alternative, make the error back into a warning, but also disable `lld_enabled` when this situation happens.

try-job: dist-x86_64-linux

Fixes: https://github.com/rust-lang/rust/pull/143175
2025-06-30 20:49:41 +02:00
Matthias Krüger
8292936d74
Rollup merge of #143140 - RalfJung:ptr-into-parts, r=oli-obk
give Pointer::into_parts a more scary name and offer a safer alternative

`into_parts` is a bit too innocent of a name for a somewhat subtle operation.
r? `@oli-obk`
2025-06-30 20:49:41 +02:00
Matthias Krüger
8b8cd35edc
Rollup merge of #143019 - danielframpton:codegen-backend-parse, r=bjorn3
Ensure -V --verbose processes both codegen_backend and codegen-backend
2025-06-30 20:49:40 +02:00
bors
f26e580230 Auto merge of #143239 - GuillaumeGomez:subtree-update_cg_gcc_2025-06-30, r=GuillaumeGomez
GCC backend subtree update

cc `@antoyo`

r? ghost
2025-06-30 18:47:06 +00:00
Guillaume Gomez
74fda50f3b Remove unused descr methods 2025-06-30 20:36:16 +02:00
Guillaume Gomez
76df2656df Replace ItemCtxt::report_placeholder_type_error match with a call to TyCtxt::def_descr 2025-06-30 20:36:16 +02:00
Daniel Frampton
bb65bc8cba Ensure -V --verbose processes both codegen_backend and codegen-backend 2025-06-30 11:11:00 -07:00
rustbot
26e1115ca8 Update books 2025-06-30 19:01:15 +02:00
Laurențiu Nicola
c5f4b80cb9
Merge pull request #20128 from lnicola/sync-from-rust
Sync from downstream
2025-06-30 15:11:33 +00:00
Trevor Gross
4fd37c7198 Disable f16 on Aarch64 without neon for llvm < 20.1.1
This check was added unconditionally in c51b229140 ("Disable f16 on
Aarch64 without `neon`") and reverted in 4a8d35709e ("Revert "Disable
`f16` on Aarch64 without `neon`"") since it did not fail in Rust's
build. However, it is still possible to hit this crash if using LLVM 19
built with assertions, so disable the type conditionally based on
version here.

Note that for these builds, a similar patch is needed in the build
script for `compiler-builtins` since it does not yet use
`cfg(target_has_reliable_f16)` (hopefully to be resolved in the near
future).

Report: https://www.github.com/rust-lang/rust/pull/139276#issuecomment-3014781652
Original LLVM issue: https://www.github.com/llvm/llvm-project/issues/129394
2025-06-30 09:46:56 -05:00
Laurențiu Nicola
0edf5726c7 Merge from rust-lang/rust 2025-06-30 17:42:03 +03:00
Laurențiu Nicola
3b5b35052c Preparing for merge from rust-lang/rust 2025-06-30 17:41:18 +03:00
bors
c65dccabac Auto merge of #143233 - dianqk:rollup-lcx3278, r=dianqk
Rollup of 14 pull requests

Successful merges:

 - rust-lang/rust#142429 (`tests/ui`: A New Order [13/N])
 - rust-lang/rust#142514 (Miri: handling of SNaN inputs in `f*::pow` operations)
 - rust-lang/rust#143066 (Use let chains in the new solver)
 - rust-lang/rust#143090 (Workaround for memory unsafety in third party DLLs)
 - rust-lang/rust#143118 (`tests/ui`: A New Order [15/N])
 - rust-lang/rust#143159 (Do not freshen `ReError`)
 - rust-lang/rust#143168 (`tests/ui`: A New Order [16/N])
 - rust-lang/rust#143176 (fix typos and improve clarity in documentation)
 - rust-lang/rust#143187 (Add my work email to mailmap)
 - rust-lang/rust#143190 (Use the `new` method for `BasicBlockData` and `Statement`)
 - rust-lang/rust#143195 (`tests/ui`: A New Order [17/N])
 - rust-lang/rust#143196 (Port #[link_section] to the new attribute parsing infrastructure)
 - rust-lang/rust#143199 (Re-disable `tests/run-make/short-ice` on Windows MSVC again)
 - rust-lang/rust#143219 (Show auto trait and blanket impls for `!`)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-30 14:28:58 +00:00
Guillaume Gomez
666934ac54 Merge commit '4b5c44b14166083eef8d71f15f5ea1f53fc976a0' into subtree-update_cg_gcc_2025-06-30 2025-06-30 16:12:42 +02:00
antoyo
4b5c44b141
Merge pull request #725 from FractalFir/intrinsic_fix
Fixes #724
2025-06-30 10:08:00 -04:00
antoyo
ce73bab440
Merge pull request #726 from rust-lang/fix/const_undef
Fix const_undef
2025-06-30 09:43:31 -04:00
Antoni Boucher
1926f605f9 Fix const_undef 2025-06-30 09:20:39 -04:00
Jakub Beránek
5cf2a50da7
Add change tracker entry 2025-06-30 14:57:39 +02:00
bors
ad3b725761 Auto merge of #142839 - oli-obk:denullarification, r=RalfJung,celinval
Stop backends from needing to support nullary intrinsics

And then remove our infrastructure special casing them. Further improvements can now be done to them by avoiding the intermediate ConstValue step, but let's leave that to follow up work

r? `@RalfJung`
2025-06-30 11:24:47 +00:00
dianqk
c2904f7476
Rollup merge of #143219 - zachs18:patch-5, r=tgross35
Show auto trait and blanket impls for `!`

Add an empty `impl ! {}` so rustdoc shows auto trait impls and blanket impls on `!`'s documentation page.

This is already done for [unit](2f0ad2a71e/library/core/src/primitive_docs.rs (L493)), [tuples](2f0ad2a71e/library/core/src/primitive_docs.rs (L1148)), and [`fn` pointers](2f0ad2a71e/library/core/src/primitive_docs.rs (L1874)).

cc https://github.com/rust-lang/rust/pull/97842 ``@notriddle`` which added the same for unit and tuple.

<details><summary>Comparison</summary>

[Before (current):](https://doc.rust-lang.org/nightly/std/primitive.never.html)
![image](https://github.com/user-attachments/assets/eab8126d-8d65-46d4-8dc7-3680f3162ce3)

After:
![image](https://github.com/user-attachments/assets/e0868113-ebef-4c64-ac30-dfe740d7ea38)
</details>

``@rustbot`` label A-docs F-never_type
2025-06-30 19:23:22 +08:00
dianqk
e18342a7e8
Rollup merge of #143199 - jieyouxu:short-ice, r=RalfJung
Re-disable `tests/run-make/short-ice` on Windows MSVC again

We tried to re-enable this for MSVC in https://github.com/rust-lang/rust/pull/142844.

Unfortunately, this test still sometimes fails on Windows MSVC.
Tracked in https://github.com/rust-lang/rust/issues/143198.

FYI ```@dpaoliello``` (I couldn't reproduce this easily locally either)
2025-06-30 19:23:22 +08:00
dianqk
7760cd6154
Rollup merge of #143196 - Periodic1911:link_section, r=oli-obk
Port #[link_section] to the new attribute parsing infrastructure

Ports link_section to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971353197

r? `@oli-obk`

cc `@JonathanBrouwer` `@jdonszelmann`
2025-06-30 19:23:21 +08:00
dianqk
327fe35db3
Rollup merge of #143195 - Kivooeo:tf17, r=tgross35
`tests/ui`: A New Order [17/N]

> [!NOTE]
>
> Intermediate commits are intended to help review, but will be squashed prior to merge.

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

r? `@tgross35`
2025-06-30 19:23:21 +08:00
dianqk
ab633af710
Rollup merge of #143190 - dianqk:new-method, r=oli-obk
Use the `new` method for `BasicBlockData` and `Statement`

This is the NFC part of rust-lang/rust#142771. I split it to make it easier to review for rust-lang/rust#142771. Even without rust-lang/rust#142771, I think this change is worthwhile.
2025-06-30 19:23:20 +08:00
dianqk
043fc5b230
Rollup merge of #143187 - yotamofek:mailmap, r=jieyouxu
Add my work email to mailmap
2025-06-30 19:23:20 +08:00
dianqk
462c7c3fd8
Rollup merge of #143176 - kilavvy:master, r=jieyouxu
fix typos and improve clarity in documentation

```
Description:

This pull request corrects minor typos and improves wording for clarity across several documentation files, including:

- Correcting instrinsics → intrinsics
- Correcting preferrably → preferably
- Correcting Orginally → Originally
-  Correcting resiliant → resilient

```
2025-06-30 19:23:19 +08:00
dianqk
8ccffc987a
Rollup merge of #143168 - Kivooeo:tf16, r=tgross35
`tests/ui`: A New Order [16/N]

> [!NOTE]
>
> Intermediate commits are intended to help review, but will be squashed prior to merge.

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

r? `@tgross35`

(just small one to test new method, also I should squash all this commits except move commit, so we after review will end up having like one move commit and one commit with changes, right?)
2025-06-30 19:23:18 +08:00
dianqk
3a35f36ae8
Rollup merge of #143159 - compiler-errors:freshen-re-error, r=oli-obk
Do not freshen `ReError`

Because `ReError` has `ErrorGuaranteed` in it, it affects candidate selection and thus causes incompleteness which leads to weirdness in eval. See the comment in the test.

Also remove an unnecessary `lookup_op_method` since it doesn't effect tests.

Fixes rust-lang/rust#132882.

r? types
2025-06-30 19:23:18 +08:00
dianqk
0952f86de3
Rollup merge of #143118 - Kivooeo:tf15, r=tgross35
`tests/ui`: A New Order [15/N]

> [!NOTE]
>
> Intermediate commits are intended to help review, but will be squashed prior to merge.

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

r? `@jieyouxu`
2025-06-30 19:23:17 +08:00
dianqk
a94f0a4af8
Rollup merge of #143090 - ChrisDenton:workaround1, r=tgross35
Workaround for memory unsafety in third party DLLs

Resolves rust-lang/rust#143078

Note that we can't make any guarantees if third parties intercept OS functions and don't implement them according to the documentation. However, I think it's practical to attempt mitigations when issues are encountered in the wild and the mitigation itself isn't too invasive.
2025-06-30 19:23:16 +08:00
dianqk
8c4bcb8625
Rollup merge of #143066 - compiler-errors:let-chain-solver, r=lcnr
Use let chains in the new solver

Self-explanatory

Let chains are stable as of today

r? lcnr
2025-06-30 19:23:16 +08:00
dianqk
d2dc99cc83
Rollup merge of #142514 - LorrensP-2158466:miri-float-nondet-pow, r=RalfJung
Miri: handling of SNaN inputs in `f*::pow` operations

fixes [miri/#4286](https://github.com/rust-lang/miri/issues/4286) and related to rust-lang/rust#138062 and [miri/#4208](https://github.com/rust-lang/miri/issues/4208#issue-2879058184).

For the following cases of the powf or powi operations, Miri returns either `1.0` or an arbitrary `NaN`:
- `powf(SNaN, 0.0)`
- `powf(1.0, SNaN)`
- `powi(SNaN, 0)`

Also added a macro in `miri/tests/pass/float.rs` which conveniently checks if both are indeed returned from such an operation.

Made these changes in the rust repo so I could test against stdlib, since these were impacted some time ago and were fixed in rust-lang/rust#138062. Tested with:
```fish
env MIRIFLAGS=-Zmiri-many-seeds ./x miri --no-fail-fast std core coretests -- f32 f64
```
This was successful. This does take a while, so I recommend using `--no-doc` and separate use of `f32` or `f64`

The pr is somewhat split up into 3 main commits, which implement the cases described above. The first commit also introduces the macro, and the last commit is just a global refactor of some things.

r? `@RalfJung`
2025-06-30 19:23:15 +08:00
dianqk
384d699893
Rollup merge of #142429 - Kivooeo:tf13, r=jieyouxu
`tests/ui`: A New Order [13/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-30 19:23:14 +08:00
Oli Scherer
d0bb9a73aa Try increasing the repetition limit 2025-06-30 08:04:40 +00:00
Oli Scherer
bd3205c02b Require either wrapping nullary intrinsincs in const blocks or explicitly deciding not to 2025-06-30 08:04:40 +00:00
Oli Scherer
d37a04d09d Remove the nullary intrinsic const eval logic and treat them like other intrinsics 2025-06-30 08:04:40 +00:00
Oli Scherer
672e0bec9e Stop backends from needing to support nullary intrinsics 2025-06-30 08:04:19 +00:00
Kivooeo
c240566561 cleaned up some tests 2025-06-30 12:45:47 +05:00
Jieyou Xu
e664e7e116
Move RUST_TEST_NOCAPTURE warning to early config check 2025-06-30 15:17:28 +08:00