Commit graph

289272 commits

Author SHA1 Message Date
binarycat
c506046ba2 triagebot: ping me if rustdoc js is modified 2025-05-20 10:22:13 -05:00
bors
c79bbfab78 Auto merge of #141066 - matthiaskrgr:rollup-e7tyrj5, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #140791 (std: explain prefer `TryInto` over `TryFrom` when specifying traits bounds on generic function)
 - #140834 (move (or remove) some impl Trait tests)
 - #140910 (Remove `stable` attribute from wasi fs (read_exact|write_all)_at)
 - #140984 (fix doc for UnixStream)
 - #140997 (Add negative test coverage for `-Clink-self-contained` and `-Zlinker-features`)
 - #141003 (Improve ternary operator recovery)
 - #141009 (Migrate to modern datetime API)
 - #141013 (Implement methods to set STARTUPINFO flags for Command API on Windows)
 - #141026 (rustc-dev-guide subtree update)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-05-16 05:45:37 +00:00
Matthias Krüger
5ce27f572f
Rollup merge of #141026 - tshepang:rust-push, r=jieyouxu
rustc-dev-guide subtree update

r? ``@ghost``
2025-05-16 07:19:43 +02:00
Matthias Krüger
03912f40ef
Rollup merge of #141013 - federico-terzi:feat/command_startupinfo_windows, r=joboet
Implement methods to set STARTUPINFO flags for Command API on Windows

Implements https://github.com/rust-lang/rust/issues/141010
2025-05-16 07:19:42 +02:00
Matthias Krüger
9808b07bc5
Rollup merge of #141009 - emmanuel-ferdman:master, r=marcoieni
Migrate to modern datetime API

# PR Summary
This small PR resolves the `datetime` library warnings:
```python
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). or datetime.datetime.utcnow()
```
Note that `.replace(tzinfo=None)` allows to keep the original behavior where the time appears as a naive UTC timestamp (i.e., without any timezone offset). Comparision:
```python
# With .utcnow() or .now(datetime.timezone.utc).replace(tzinfo=None)
Time,Idle
2025-05-14T15:40:25.013414,98.73417721518987

# With .now(datetime.timezone.utc)
Time,Idle
2025-05-14T15:40:25.013414+00:00,98.73417721518987
```
2025-05-16 07:19:42 +02:00
Matthias Krüger
e53b9f8fdd
Rollup merge of #141003 - clubby789:ternary-improve, r=compiler-errors
Improve ternary operator recovery

This
- Improves the span of the error to not point at the next token
- Where possible, we use the span of the condition to further improve the span of the error to include the cond, and suggest a maybe-incorrect fix

Currently this works on free expressions, not let statements; some more refactoring would be needed to pass the span down, which I'm not sure is worth doing.

### Old
![image](https://github.com/user-attachments/assets/5688cefc-e4ef-4135-a5ba-340ce05ae6f3)

### New
![image](https://github.com/user-attachments/assets/154f5380-e0c8-42c7-9bf8-0adb3d0433fa)
2025-05-16 07:19:41 +02:00
Matthias Krüger
953905fd9e
Rollup merge of #140997 - jieyouxu:link-flags-negative-tests, r=lqd
Add negative test coverage for `-Clink-self-contained` and `-Zlinker-features`

Noticed while reviewing stabilization #140525 that we don't have any negative test coverage for these flags. Feel free to cherry-pick these tests into the stabilization PR, or we can land these before separately.

r? `@lqd`
2025-05-16 07:19:40 +02:00
Matthias Krüger
3237d4dc14
Rollup merge of #140984 - mlowicki:patch-2, r=ibraheemdev
fix doc for UnixStream

Doc example was using `UdpSocket` instead of `UnixStream`.
2025-05-16 07:19:40 +02:00
Matthias Krüger
370cd22e47
Rollup merge of #140910 - paolobarbolini:wasi-fs-incorrect-stabilization, r=joboet
Remove `stable` attribute from wasi fs (read_exact|write_all)_at

The docs for [`std::os::wasi::fs::FileExt::read_exact_at`](https://doc.rust-lang.org/1.86.0/std/os/wasi/fs/trait.FileExt.html#method.read_exact_at) and [`std::os::wasi::fs::FileExt::write_all_at`](https://doc.rust-lang.org/1.86.0/std/os/wasi/fs/trait.FileExt.html#method.write_all_at) show the methods to be stable since v1.33, which is not correct and was a mistake made when the methods were added in (https://github.com/rust-lang/rust/pull/74076#pullrequestreview-443124667). The reviewer seemed to think this was an insta-stabilization, but the entire file is marked as unstable so that was not right. The stabilization version would also have been wrong either way.
2025-05-16 07:19:39 +02:00
Matthias Krüger
e4929b530e
Rollup merge of #140834 - lcnr:apit-folder, r=compiler-errors
move (or remove) some impl Trait tests

Probably not actually worth the effort, so I am stopping here 😅
2025-05-16 07:19:38 +02:00
Matthias Krüger
315296b0b9
Rollup merge of #140791 - xizheyin:issue-140761, r=ibraheemdev
std: explain prefer `TryInto` over `TryFrom` when specifying traits bounds on generic function

Fixes #140761

This PR keeps the explanations of `Into` and `From` consistent and adds explanations for `TryInto` and `TryFrom`.

r? libs
2025-05-16 07:19:38 +02:00
bors
7e19eef048 Auto merge of #140557 - compiler-errors:remove-wf-hack, r=lcnr
Remove manual WF hack

We do not need this hack anymore since we fixed the candidate selection problems with `Sized` bounds. We prefer built-in sized bounds now since #138176, which fixes the only regression this hack was intended to fix.

While this theoretically is broken for some code, for example, when there a param-env bound that shadows an impl or built-in trait, we don't see it in practice and IMO it's not worth the burden of having to maintain this wart in `compare_method_predicate_entailment`.

The code that regresses is, for example:

```rust
trait Bar<'a> {}

trait Foo<'a, T> {
    fn method(&self)
    where
        Self: Bar<'a>;
}

struct W<'a, T>(&'a T)
where
    Self: Bar<'a>;

impl<'a, 'b, T> Bar<'a> for W<'b, T> {}

impl<'a, 'b, T> Foo<'a, T> for W<'b, T> {
    fn method(&self) {}
}
```

Specifically, I don't believe this is really going to be encountered in practice. For this to fail, there must be a where clause in the *trait method* that would shadow an impl or built-in (non-`Sized`) candidate in the trait, and this shadowing would need to be encountered when solving a nested WF goal from the impl self type.

See #108544 for the original regression. Crater run is clean!

r? lcnr
2025-05-16 02:34:32 +00:00
bors
6d1875f99b Auto merge of #141050 - matthiaskrgr:rollup-uyzqbmj, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #139749 (docs(library/core/src/pin): fix typo "necessarily" -> "necessary")
 - #140685 (Simplify `Vec::as_non_null` implementation and make it `const`)
 - #140712 (normalization: avoid incompletely constraining GAT args)
 - #140768 (Improve `dangerous_implicit_aurorefs` diagnostic output)
 - #140947 (Flush errors before deep normalize in `dropck_outlives`)
 - #140990 (VxWorks: updates from recent libc versions)
 - #141027 (remove `RustfmtState` to reduce `initial_rustfmt` complexity)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-05-15 23:30:38 +00:00
Matthias Krüger
3e6a2861e4
Rollup merge of #141027 - onur-ozkan:simpler-rustfmt-initialization, r=albertlarsan68
remove `RustfmtState` to reduce `initial_rustfmt` complexity

The current use of `RustfmtState` doesn't serve its main purpose as it never does the lazy evaulation since `Build::build` forces it to be ready on the early stage. If we want rustfmt to be ready on the early stage, we don't need to have `RustfmtState` complexity at all.
2025-05-15 22:28:52 +02:00
Matthias Krüger
9927143139
Rollup merge of #140990 - biabbas:vxworks, r=tgross35
VxWorks: updates from recent libc versions

Vxworks changes. Required changes were added to libc in pr https://github.com/rust-lang/libc/pull/4407 and https://github.com/rust-lang/libc/pull/4337
2025-05-15 22:28:52 +02:00
Matthias Krüger
d0ea342440
Rollup merge of #140947 - compiler-errors:pending-norm, r=lcnr
Flush errors before deep normalize in `dropck_outlives`

Deep normalization doesn't allow the ocx to have pending obligations, so process them before deeply normalizing.

Fixes https://github.com/rust-lang/rust/issues/140931
Fixes https://github.com/rust-lang/rust/issues/140462
2025-05-15 22:28:51 +02:00
Matthias Krüger
f5fb0d3ea0
Rollup merge of #140768 - Urgau:improv_autorefs-lint, r=fmease
Improve `dangerous_implicit_aurorefs` diagnostic output

This PR *greatly* improves the `dangerous_implicit_aurorefs` lint diagnostic output.

Kind of related to #140721.

r? ```@jieyouxu``` (maybe)
2025-05-15 22:28:51 +02:00
Matthias Krüger
1f84e114f1
Rollup merge of #140712 - lcnr:normalization-gat-args, r=compiler-errors
normalization: avoid incompletely constraining GAT args

We need to copy the behavior of #125214 in the new solver. This fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/202 which seems to be the cause of the regression in `deptypes`.

r? ```@compiler-errors```
2025-05-15 22:28:50 +02:00
Matthias Krüger
7a8fd9985d
Rollup merge of #140685 - viliml:patch-1, r=Mark-Simulacrum
Simplify `Vec::as_non_null` implementation and make it `const`

Tracking issue: #130364.
2025-05-15 22:28:50 +02:00
Matthias Krüger
8768188533
Rollup merge of #139749 - ruancomelli:docs/library/core/src/pin/fix-typo-necessarily-to-necessary, r=joboet
docs(library/core/src/pin): fix typo "necessarily" -> "necessary"

Fix a typo in [`library/core/src/pin.rs`](14662fabeb/library/core/src/pin.rs), from

> As we'll see later, this is **necessarily** from the time the value is first pinned until the end of its lifespan.

to

> As we'll see later, this is **necessary** from the time the value is first pinned until the end of its lifespan.

(my emphasis).
2025-05-15 22:28:49 +02:00
bors
d97326eabf Auto merge of #136264 - GuillaumeGomez:optimize-integers-to-string, r=Amanieu
Optimize `ToString` implementation for integers

Part of https://github.com/rust-lang/rust/issues/135543.

Follow-up of https://github.com/rust-lang/rust/pull/133247 and https://github.com/rust-lang/rust/pull/128204.

The benchmark results are:

| name| 1.87.0-nightly (3ea711f17 2025-03-09) | With this PR | diff |
|-|-|-|-|
| bench_i16 | 32.06 ns/iter (+/- 0.12) | 17.62 ns/iter (+/- 0.03) | -45% |
| bench_i32 | 31.61 ns/iter (+/- 0.04) | 15.10 ns/iter (+/- 0.06) | -52% |
| bench_i64 | 31.71 ns/iter (+/- 0.07) | 15.02 ns/iter (+/- 0.20) | -52% |
| bench_i8 | 13.21 ns/iter (+/- 0.14) | 14.93 ns/iter (+/- 0.16) | +13% |
| bench_u16 | 31.20 ns/iter (+/- 0.06) | 16.14 ns/iter (+/- 0.11) | -48% |
| bench_u32 | 33.27 ns/iter (+/- 0.05) | 16.18 ns/iter (+/- 0.10) | -51% |
| bench_u64 | 31.44 ns/iter (+/- 0.06) | 16.62 ns/iter (+/- 0.21) | -47% |
| bench_u8 | 10.57 ns/iter (+/- 0.30) | 13.00 ns/iter (+/- 0.43) | +22% |

More information about it in [the original comment](https://github.com/rust-lang/rust/pull/136264#discussion_r1987542954).

r? `@workingjubilee`
2025-05-15 20:20:30 +00:00
bors
c4e05e53d1 Auto merge of #136988 - compiler-errors:impossible_predicates, r=lcnr
Use the new solver in the `impossible_predicates`

The old solver is unsound for many reasons. One of which was weaponized by `@lcnr` in #140212, where the old solver was incompletely considering a dyn vtable method to be impossible and replacing its vtable entry with a null value. This null function could be called post-mono.

The new solver is expected to be less incomplete due to its correct handling of higher-ranked aliases in relate. This PR switches the `impossible_predicates` query to use the new solver, which patches this UB.

r? lcnr
2025-05-15 15:31:24 +00:00
bors
d163a28381 Auto merge of #141011 - matthiaskrgr:rollup-4uwllo2, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #140827 (Do not ICE when reassigning in GatherLocalsVisitor on the bad path)
 - #140904 (Add an issue template for future-incompatible lints)
 - #140953 (Fix a compiletest blessing message)
 - #140973 (Update rustix to 1.0.7 for bootstrap)
 - #140976 (Add `Ipv4Addr` and `Ipv6Addr` diagnostic items)
 - #140988 (MaybeUninit::write: fix doc)
 - #140989 (Suggest replace f with f: Box<f> when expr field is short hand)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-05-15 12:06:06 +00:00
onur-ozkan
92116bcfa6 remove RustfmtState to reduce initial_rustfmt complexity
The current use of `RustfmtState` doesn't serve its main purpose as it
never does the lazy evaulation since `Build::build` forces it to be ready
on the early stage. If we want rustfmt to be ready on the early stage, we
don't need to have `RustfmtState` complexity at all.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-15 11:03:06 +00:00
Tshepang Mbambo
a3ce646c3c
Merge pull request #2388 from rust-lang/rustc-pull
Rustc pull update
2025-05-15 11:47:11 +02:00
The rustc-dev-guide Cronjob Bot
1fd536c5fb Merge from rustc 2025-05-15 09:46:22 +00:00
The rustc-dev-guide Cronjob Bot
4adff2f244 Preparing for merge from rustc 2025-05-15 09:46:15 +00:00
Tshepang Mbambo
d016ed87c3
Merge pull request #2387 from rust-lang/tshepang-avoid-conflict
avoid upstream pull conflict
2025-05-15 11:41:17 +02:00
Tshepang Mbambo
5e3aa1610f avoid upstream pull conflict
We changed this line and have not pushed it upstream yet,
and upstream changed it in the meanwhile.
2025-05-15 11:39:59 +02:00
bors
2a5da7acd4 Auto merge of #141023 - jieyouxu:temp-windows-server-2022, r=marcoieni
Temporarily use Windows Server 2022 instead of Windows Server 2025 images

Tracking issue: https://github.com/rust-lang/rust/issues/141022

At the moment, it seems like Windows Server 2025 20250504.1.0 is misconfigured, causing insufficient disk space failures. Temporarily go back to Windows Server 2022 in the hope that those are not also misconfigured to try to unblock the queue.

r? `@marcoieni` (or infra-ci)
2025-05-15 08:54:32 +00:00
Jieyou Xu
a716f1a523
Add some negative test coverage for -Zlinker-features flag 2025-05-15 16:47:18 +08:00
Jieyou Xu
3e051afec7
Add some negative test coverage for malformed -Clink-self-contained flags 2025-05-15 16:47:17 +08:00
Jieyou Xu
f4ce73ede2
Temporarily use Windows Server 2022 instead of Windows Server 2025 images
At the moment, it seems like Windows Server 2025 20250504.1.0 is
misconfigured causing insufficient disk space failures. Temporarily go
back to Windows Server 2022 in the hope that those are not also
misconfigured.
2025-05-15 16:34:22 +08:00
Tshepang Mbambo
05e7ce95c8
Merge pull request #2373 from rust-lang/tshepang-patch-2
avoid duplicating commands
2025-05-15 00:34:38 +02:00
Tshepang Mbambo
30b54adb96
Merge pull request #2379 from rust-lang/tshepang-which-chapter
clean TypeFold* chapter
2025-05-15 00:33:47 +02:00
Tshepang Mbambo
b805dcb7ac
Merge pull request #2380 from rust-lang/tshepang-crate-cleaning
clean our crates
2025-05-15 00:33:19 +02:00
Tshepang Mbambo
032f738ed7
Merge pull request #2383 from rust-lang/tshepang-unused
remove dangling references
2025-05-15 00:32:57 +02:00
Urgau
9b3abe79d7 Use more subdiagnostics and reword the overloaded deref note 2025-05-14 23:53:40 +02:00
Federico Terzi
e0b6363974 wire up startupinfo methods 2025-05-14 19:00:56 +02:00
Urgau
ac1df15f86 Improve dangerous_implicit_aurorefs diagnostic output 2025-05-14 18:58:38 +02:00
Matthias Krüger
e39ab25bf4
Rollup merge of #140989 - xizheyin:issue-139631, r=compiler-errors
Suggest replace f with f: Box<f> when expr field is short hand

Fixes #139631

r? compiler
2025-05-14 18:43:40 +02:00
Matthias Krüger
8395461fa4
Rollup merge of #140988 - mathisbot:docfix_maybeuninit_write, r=tgross35
MaybeUninit::write: fix doc

# Fix doc for `MaybeUninit::write`

The documentation refers to the way `MaybeUninit` stores data internally. The property of not dropping content on context exit is the responsibility of `ManuallyDrop`.
2025-05-14 18:43:40 +02:00
Matthias Krüger
a1b5841bcc
Rollup merge of #140976 - samueltardieu:diag-ipaddr-v4v6, r=Urgau
Add `Ipv4Addr` and `Ipv6Addr` diagnostic items

They will be used in Clippy to detect runtime parsing of known-valid IP addresses.
2025-05-14 18:43:39 +02:00
Matthias Krüger
bbd2301a00
Rollup merge of #140973 - Berrysoft:update-bootstrap-lock, r=jieyouxu
Update rustix to 1.0.7 for bootstrap

Another bump for bootstrap. Finally it compiles on Cygwin:) Hooray!

r? ``@jieyouxu``
2025-05-14 18:43:39 +02:00
Matthias Krüger
8e34100014
Rollup merge of #140953 - jieyouxu:compiletest-bless-msg, r=compiler-errors
Fix a compiletest blessing message

It was showing compare mode instead of test name.

Fixes #140945.
Noticed in https://github.com/rust-lang/rust/pull/140622#issuecomment-2868705612.
2025-05-14 18:43:38 +02:00
Matthias Krüger
0267905eee
Rollup merge of #140904 - ehuss:future-incompat-template, r=Mark-Simulacrum
Add an issue template for future-incompatible lints

This adds a GitHub issue template for future-incompatible lints. Most of the existing tracking issues have been using different formats with different information, and I think it would be helpful to make them a little more consistent and to ensure that sufficient information is provided.

Some comments on my choices:
* Added a dedicated section to describe *why* the change is being made. Many existing issues already have this, so let's standardize on it.
* Have a section with a very clear example. Almost all of the existing issues have this in one form or another.
* Added a "Recommendations" section, since this is something I see missing in several of the existing issues, and this is really important information IMHO.
* I reworded the "When" section. The existing template mentioned that these get reviewed every 6 weeks which my understanding is not true. That's also not very helpful information to the user, since it doesn't really answer the question. I'm not sure this section will actually be useful since I suspect most of the time we don't know when it will change (there have been a few exceptions).
* Clearly show the expected progression steps. Several issues already have this.
* Added implementation history, which is useful for linking PRs. (IDK, this could get merged with "Steps".)
2025-05-14 18:43:38 +02:00
Matthias Krüger
dcb808e48b
Rollup merge of #140827 - compiler-errors:gather-locals-twice, r=oli-obk
Do not ICE when reassigning in GatherLocalsVisitor on the bad path

Fixes https://github.com/rust-lang/rust/issues/140785
Fixes https://github.com/rust-lang/rust/issues/140730

See comment in code.

r? oli-obk
2025-05-14 18:43:37 +02:00
Emmanuel Ferdman
754b06f978
Migrate to modern datetime API
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-05-14 08:41:30 -07:00
Jamie
1267333ef1 Improve ternary operator recovery 2025-05-14 13:32:59 +01:00
B I Mohammed Abbas
544c8ce535 Fix settimes for vxworks 2025-05-14 13:52:31 +05:30