Commit graph

298901 commits

Author SHA1 Message Date
Jason Newcomb
318ba60cfb Rewrite tests for declare_interior_mutable_const and
`borrow_interior_mutable_const` to be more thorough on weird constructs
2025-05-16 06:08:41 -04:00
Jason Newcomb
7c41ec7395 Reword declare_interior_mutable_const and
`borrow_interior_mutable_const` messages to be less assertive.
Update documentation for both lints.
2025-05-16 06:08:40 -04:00
Jason Newcomb
57782e0ff1 Rewrite non_copy_const 2025-05-16 06:08:35 -04:00
Laurențiu Nicola
4860712f43 Inline some format args 2025-05-16 12:03:59 +02:00
Laurențiu Nicola
13c5e0eab8
Merge pull request #19804 from lnicola/bump-zip
minor: Bump zip to 3.0
2025-05-16 10:03:29 +00:00
Ryan van Polen
4c2d3bc8bd Removed feature flag from compiler/rustc_driver_impl 2025-05-16 12:00:44 +02:00
Ryan van Polen
7e3e8bdec4 Updated feature and stable flags 2025-05-16 11:59:08 +02:00
binarycat
5326fc9bc7 rustdoc: on mobile, make the sidebar full width and linewrap
this is because the mobile sidebar cannot be resized,
unlike on desktop.
2025-05-16 04:53:02 -05:00
Laurențiu Nicola
428279ef6a Bump zip to 3.0 2025-05-16 11:51:58 +02:00
王宇逸
12c8fb857c Fix fname for miri 2025-05-16 17:47:29 +08:00
xizheyin
84d7edd07f
Enable [behind-upstream] triagebot option for rust-lang/rust
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-05-16 17:11:45 +08:00
Urgau
4cbcb44d70 Cleanup the Javascript and CSS of our custom TOC 2025-05-16 11:08:15 +02:00
Urgau
72f915aaca Fix flicker when page loads 2025-05-16 11:08:15 +02:00
Urgau
8fcff8c645 Add per page TOC in the rustc book 2025-05-16 11:08:14 +02:00
xizheyin
43ff8855ac
Add ui test macro-shorthand-issue-140659
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-05-16 17:03:55 +08:00
bors
1b9efcd18f Auto merge of #141044 - flip1995:clippy-subtree-update, r=Manishearth
Clippy subtree update

r? `@Manishearth`

Cargo.lock update due to Clippy version bump.
2025-05-16 08:54:55 +00:00
Lukas Wirth
8de8ca3987
Merge pull request #19801 from ChayimFriedman2/asm-label
fix: Improve asm support
2025-05-16 08:34:47 +00:00
llogiq
95d7eda0b4
comparison_chain: do not lint on 2 blocks expression (#14811)
Clippy should not lint 2 blocks expression for comparison_chain.

Fixes rust-lang/rust-clippy#4725

changelog: [`comparison_chain`]: do not lint 2 blocks expression
2025-05-16 06:52:35 +00:00
llogiq
ff5e626837
Fix false positive of useless_conversion when using .into_iter().any() (#14800)
Fixes: rust-lang/rust-clippy#14656

changelog: Fix [`useless_conversion`] false positive when using
`.into_iter().any()`.
2025-05-16 06:49:42 +00: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
Eric Huss
db950fa77f Updated std doctests for wasm
This updates some doctests that fail to run on wasm. We will soon be
supporting cross-compiled doctests, and the test-various job fails to
run these tests. These tests fail because wasm32-wasip1 does not support
threads.
2025-05-15 19:59:22 -07: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
Berrysoft
5e048e0786 Simplify current_dll_path for Cygwin 2025-05-16 09:41:52 +08:00
Chai T. Rex
a6bf524975 Update IDEs to use rustfmt 2024, fix Zed settings
- Update IDE `rust-analyzer` settings to use 2024 rather than 2021.
- Fix Zed settings by removing `${workspaceFolder}/` from paths.
2025-05-15 20:38:03 -04:00
dianqk
c7a2694a80
Update to LLVM 20.1.5 2025-05-16 08:34:16 +08: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
Samuel Tardieu
cf878d8f26 HIR: explain in comment why ExprKind::If "then" is an Expr
One could be tempted to replace the "then" `hir::Expr` with kind
`hir::ExprKind::Block` by a `hir::Block`. Explain why this would not be
a good idea.
2025-05-15 23:44:23 +02:00
Erick Tryzelaar
a64ed161e2 Lowercase git url for rust-lang/enzyme.git
On Fuchsia, we have an internal Gerrit mirrors of the rust repositories
to avoid excess load on the public github servers. Since rust uses
submodules, we need to then use git's `url.<base>.insteadOf` to point
our checkouts at our mirrors.

We'd prefer to be able to point all repositories under
`https://github.com/rust-lang` to
`https://rust.googlesource.com/rust-lang`, but unfortunately it seems
that when Rust mirrored Enzyme, the repository name was lower cased to
`https://github.com/rust-lang/enzyme`, but kept the name capitalized in
the .gitmodules file. This didn't cause a problem for Github, which
seems to handle repository names in a case insensitive way, Gerrit is
case sensitive, so we can't use a glob rule. Instead we have to setup
`insteadOf` rules for each repository.

This renames the URL to match the case of the repository name, which
should avoid the issue.
2025-05-15 21:37:49 +00:00
Chayim Refael Friedman
ae304db796 Improve asm support
Including:

 - Infer `label {}` and `const` operands.
 - Correctly handle unsafe check inside `label {}`.
 - Fix an embarrassing parser typo that cause labels to never be part of the AST
2025-05-15 23:36:00 +03: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
Barun Parruck
e0fd8144c0 Fix tests 2025-05-15 21:23:28 +01: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
Daniel Paoliello
6128fca0b0 [win][arm64] Remove 'Arm64 Hazard' undocumented MSVC option and instead disable problematic test 2025-05-15 11:33:28 -07:00
Philipp Krones
60750ca0a1
tempfile dep bump fallout 2025-05-15 19:55:43 +02:00
Samuel Tardieu
a1931dd7cc
unnecessary_wraps: do not include the whole body in the lint span
Using the function declaration, by stripping the body, is enough to
convey the lint message.
2025-05-15 19:37:06 +02:00