Commit graph

314324 commits

Author SHA1 Message Date
Jonathan Brouwer
3c7ffa5dd1
Rollup merge of #149447 - theemathas:string-replace_range, r=Mark-Simulacrum
Rewrite `String::replace_range`

This simplifies the code, provides better panic messages, and avoids an integer overflow.
2025-12-28 18:16:09 +01:00
Jonathan Brouwer
2c0daa2301
Rollup merge of #147499 - josh-kaplan:master, r=Mark-Simulacrum
Implement round-ties-to-even for Duration Debug for consistency with f64

## Summary

This PR proposes a fix for rust-lang/rust#103747 implementing IEEE-754 S4.3 roundTiesToEven for Duration Debug implementation.

## Testing

Added new test in `time.rs` for  validating roundTiesToEven behavior in Duration formatting. Reran all debug formatting tests in `time.rs` with `./x test library/coretests --test-args time::debug_formatting`.
2025-12-28 18:16:09 +01:00
bors
7eadf834b5 Auto merge of #150456 - dianqk:codegen-llvm-serde, r=mati865
Removes the serde dependency in rustc_codegen_llvm
2025-12-28 10:24:30 +00:00
dianqk
fe075ad212
Removes the serde dependency in rustc_codegen_llvm 2025-12-28 15:52:20 +08:00
bors
23d01cd241 Auto merge of #150448 - matthiaskrgr:rollup-d52y317, r=matthiaskrgr
Rollup of 3 pull requests

Successful merges:

 - rust-lang/rust#148533 (Split LLVM intrinsic abi handling from the rest of the abi handling)
 - rust-lang/rust#150358 (fix rustfmt on `const impl Ty {}`)
 - rust-lang/rust#150434 (Add test for never type fallback in try blocks with `Into<!>`)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-12-27 22:44:07 +00:00
Matthias Krüger
05287d1e81
Rollup merge of #150434 - AprilNEA:test-125364-never-type-try-blocks, r=WaffleLapkin
Add test for never type fallback in try blocks with `Into<!>`

### Summary

Adds UI tests for issue rust-lang/rust#125364, which involves the interaction between
never type fallback, try blocks, and `From`/`Into` trait bounds.

### Changes

- Added `tests/ui/never_type/try-block-never-type-fallback.rs`
- Tests both edition 2021 (where the issue manifests) and edition 2024 (where it's fixed)

### Issue

Closes rust-lang/rust#125364

### Testing

```bash
./x test tests/ui/never_type/try-block-never-type-fallback.rs
```

Both test variants pass:

e2021: Correctly fails with expected error
e2024: Compiles successfully (check-pass)

### Notes

This test documents the edition-dependent behavior of never type fallback in try blocks, as requested in the original issue.

cc `@WaffleLapkin`
2025-12-27 22:36:36 +01:00
Matthias Krüger
15b364e2cb
Rollup merge of #150358 - fee1-dead-contrib:push-utvysrrzsvvm, r=oli-obk
fix rustfmt on `const impl Ty {}`

r? `@oli-obk` on rust-lang/rust#148434, cc `@ytmimi` for https://github.com/rust-lang/rust/pull/148434/changes#r2637972310

format_constness_right outputs `" const"` whereas format_constness outputs `"const "`

Not making this change to rust-lang/rustfmt since I'm not sure if that repo has these changes yet.
2025-12-27 22:36:35 +01:00
Matthias Krüger
1a6c604a39
Rollup merge of #148533 - bjorn3:split_llvm_intrinsic_abi_handling, r=WaffleLapkin
Split LLVM intrinsic abi handling from the rest of the abi handling

LLVM intrinsics have weird requirements like requiring the fake "unadjusted" abi, not being callable through function pointers and for all codegen backends other than cg_llvm requiring special cases to redirect them to the correct backend specific intrinsic (or directly codegen their implementation inline without any intrinsic call). By splitting the LLVM intrinsic handling it becomes easier for backends to special case them and should in the future allow getting rid of the abi calculation for `extern "unadjusted"` in favor of computing the correct abi directly in the backend without depending on the exact way cg_ssa lowers types.
2025-12-27 22:36:35 +01:00
bors
7b5cde7370 Auto merge of #150421 - weihanglo:update-cargo, r=weihanglo
Update cargo submodule

17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412
2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000
- fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435)
- feat(index): Stabilize pubtime (rust-lang/cargo#16372)
- Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091)
- chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429)
- fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable)  (rust-lang/cargo#16419)
- chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416)
- fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414)
- fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413)
- fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408)
- Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404)
- Add best pratice for how to check in generated files (rust-lang/cargo#16405)
- test: Use a larger default term width (rust-lang/cargo#16403)
- Document more services and permissions of the cargo team (rust-lang/cargo#16402)
- fix(new): Improve quality of package name error messages (rust-lang/cargo#16398)
- feat(log): add more log events (rust-lang/cargo#16390)
- chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395)
- Cache submodule into git db (rust-lang/cargo#16246)

r? ghost
2025-12-27 19:31:43 +00:00
bjorn3
aeac6cb2d6 Fix compilation of cg_gcc with master feature disabled 2025-12-27 18:41:14 +00:00
bjorn3
cb23b54eb1 Add a hack for llvm.wasm.throw
As this is the only unwinding intrinsic we use and
codegen_llvm_intrinsic_call currently doesn't handle unwinding
intrinsics, this uses the conventional call path for llvm.wasm.throw.
2025-12-27 17:46:26 +00:00
bjorn3
9bcd6ed4c9 Partially inline get_fn_addr/get_fn in codegen_llvm_intrinsic_call
This moves all LLVM intrinsic handling out of the regular call path for
cg_gcc and makes it easier to hook into this code for future cg_llvm
changes.
2025-12-27 17:46:26 +00:00
bjorn3
ae8ef1f5eb Inline BuilderMethods::call for intrinsics
Intrinsics only need a fraction of the functionality offered by
BuilderMethods::call and in particular don't need the FnAbi to be
computed other than (currently) as step towards computing the function
value type.
2025-12-27 17:46:26 +00:00
bjorn3
c506e23426 Pass Function to Builder::function_call in cg_gcc 2025-12-27 17:46:26 +00:00
bjorn3
b40eae863a Don't assume get_fn is only called from codegen_mir in cg_gcc 2025-12-27 17:46:26 +00:00
bjorn3
17f6652641 Fix for uninhabited llvm intrinsic return type 2025-12-27 17:46:25 +00:00
bjorn3
62e17e920c Move llvm intrinsic call to backend 2025-12-27 17:46:25 +00:00
bjorn3
4f7086a629 Split out ABI handling for LLVM intrinsics 2025-12-27 17:46:25 +00:00
Deadbeef
cf8d0c82dc fix rustfmt on const impl Ty {} 2025-12-27 12:13:52 -05:00
bors
50db29bbd7 Auto merge of #150435 - JonathanBrouwer:rollup-gkvgsfb, r=JonathanBrouwer
Rollup of 4 pull requests

Successful merges:

 - rust-lang/rust#150362 (rustdoc: fix duplicate Re-exports sections)
 - rust-lang/rust#150397 (Update hir.rs: fix typo ("aligement" -> "alignment"), conform to max_width)
 - rust-lang/rust#150410 (Document default SOCK_CLOEXEC flag on new UnixStream)
 - rust-lang/rust#150429 (Improve missing core error for tier 3 targets)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-12-27 16:12:14 +00:00
Jonathan Brouwer
4af704522e
Rollup merge of #150429 - Noratrieb:tier-3-errors, r=Urgau
Improve missing core error for tier 3 targets

Tier 3 targets can't be installed via rustup, so don't recommend that. Additionally, do recommend build-std on stable because it's the recommended way to use these targets, people should switch to nightly.
2025-12-27 15:46:57 +01:00
Jonathan Brouwer
e2e271b7b0
Rollup merge of #150410 - crescentrose:document-socket-cloexec, r=ChrisDenton
Document default SOCK_CLOEXEC flag on new UnixStream

Currently, the `std::os::unix::net::UnixStream` docs do not specify that the SOCK_CLOEXEC flag is set on new sockets. This commit adds a note clarifying that, in line with the note abuot the `MSG_NOSIGNAL` flag.
2025-12-27 15:46:56 +01:00
Jonathan Brouwer
adbcef3c12
Rollup merge of #150397 - BioTomateHP:patch-1, r=petrochenkov
Update hir.rs: fix typo ("aligement" -> "alignment"), conform to max_width
2025-12-27 15:46:56 +01:00
Jonathan Brouwer
af77f2d644
Rollup merge of #150362 - heathdutton:fix-rustdoc-duplicate-reexports-150211, r=notriddle
rustdoc: fix duplicate Re-exports sections

Fixes rust-lang/rust#150211

When a module contains both `pub extern crate` and `pub use` items, they were being rendered under two separate "Re-exports" section headers instead of one.

This fix tracks the current section and only renders a new header when the section actually changes, consolidating items that belong to the same section under a single header.
2025-12-27 15:46:55 +01:00
AprilNEA
f29c5168b2
Add test for never type fallback in try blocks with Into<!>
Closes #125364

This test verifies that the never type fallback behavior
in try blocks with `Into<!>` bounds works correctly across
different editions:

- Edition 2021: Fallback to `()` causes type error
- Edition 2024: Fallback to `!` compiles successfully
2025-12-27 22:38:27 +08:00
bors
4c6706452c Auto merge of #150430 - JonathanBrouwer:rollup-seh9m66, r=JonathanBrouwer
Rollup of 2 pull requests

Successful merges:

 - rust-lang/rust#150393 (Document relative and absolute paths handling in `--remap-path-prefix`)
 - rust-lang/rust#150405 (Don't use `matches!` when `==` suffices)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-12-27 12:58:59 +00:00
Jonathan Brouwer
d63068b3b4
Rollup merge of #150405 - estebank:matches-could-be-equals, r=Kivooeo
Don't use `matches!` when `==` suffices

In the codebase we sometimes use `matches!` for values that can actually just be compared. Replace them with `==`.

Subset of rust-lang/rust#149933.
2025-12-27 13:42:01 +01:00
Jonathan Brouwer
b1fd0b3f2f
Rollup merge of #150393 - Urgau:remap-path-relative-doc, r=jieyouxu
Document relative and absolute paths handling in `--remap-path-prefix`

After what we have been through with https://github.com/rust-lang/rust/pull/150110 and https://github.com/rust-lang/rust/pull/150283 in the compiler, I think it would be good to document the user-facing parts of the relative and absolute paths handling in `--remap-path-prefix`.

r? `@jieyouxu`
2025-12-27 13:42:01 +01:00
Noratrieb
7898df42b9 Improve missing core error for tier 3 targets
Tier 3 targets can't be installed via rustup, so don't recommend that.
Additionally, do recommend build-std on stable because it's the
recommended way to use these targets, people should switch to nightly.
2025-12-27 13:17:28 +01:00
Ivan
ee9db30421
fix late night markdown 2025-12-27 10:59:21 +01:00
bors
0850949213 Auto merge of #149775 - WaffleLapkin:core-mem-maybe-dangling, r=Mark-Simulacrum
Add `MaybeDangling` to `core`

This is the library part of adding `MaybeDangling`. Note that it doesn't actually do anything described in its docs (yet), I'll make a separate PR for that.

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

r? libs
cc `@RalfJung`
2025-12-27 09:45:21 +00:00
Weihang Lo
f54274f957
Update cargo submodule 2025-12-27 01:31:25 -05:00
bors
c7aa99f36c Auto merge of #142881 - cjgillot:minimap, r=saethlin
JumpThreading: compute place and value indices on-demand

Profiling JumpThreading reveals that a large part of the runtime happens constructing the place and value `Map`. This is unfortunate, as jump-threading may end up not even doing anything.

The cause for this large up-front cost is following: `Map` attempts to create a `PlaceIndex` for each place that *may* hold a relevant value. This means all places that appear in MIR, but also all places whose value is accessed by a projection of a copy of a larger place.

This PR refactors the creation of `Map` to happen on-demand: place and value indices are created when threading computation happens.

The up-front mode is still relevant for DataflowConstProp, so is not touched.
2025-12-27 03:12:17 +00:00
bors
38ed7700e7 Auto merge of #150395 - GuillaumeGomez:fix-copy-code-example-with-line-numbers, r=yotamofek
Fix copy code example with line numbers

Fixes rust-lang/rust#150339.

Since the line numbers are now included in the actual highlighted code, we need to filter them out when we "copy" the code.

r? `@yotamofek`
2025-12-27 00:03:03 +00:00
Ivan
106e88e0ba
Document default SOCK_CLOEXEC flag on new UnixStream
Currently, the `std::os::unix::net::UnixStream` docs do not specify that
the SOCK_CLOEXEC flag is set on new sockets. This commit adds a note
clarifying that, in line with the note abuot the `MSG_NOSIGNAL` flag.
2025-12-26 23:25:32 +01:00
Waffle Lapkin
6b4f4f57e7
bless a mir-opt and a miri tests 2025-12-26 22:02:19 +01:00
Waffle Lapkin
d42f7ea7ca
fixup debugger files wrt to MaybeDangling
- fixup `BTreeMap` gdb provider
- fixup `ManuallyDrop` natvis thingy

Now that `MaybeUninit` contains `ManuallyDrop` which contains
`MaybeDangling` (tbc this is the addition), we need to unwrap one more
layer.
2025-12-26 22:02:17 +01:00
bors
1107bbac4b Auto merge of #150407 - JonathanBrouwer:rollup-1v99kga, r=JonathanBrouwer
Rollup of 2 pull requests

Successful merges:

 - rust-lang/rust#147717 (compiler/middle/lint: Suggest `#[expect(dead_code)]` instead of `#[allow(dead_code)]`)
 - rust-lang/rust#150236 (Port `#[rustc_must_implement_one_of]` to attribute parser)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-12-26 20:51:49 +00:00
Jonathan Brouwer
096bb5b615
Rollup merge of #150236 - Bryntet:parse_rustc_must_impl, r=JonathanBrouwer
Port `#[rustc_must_implement_one_of]` to attribute parser

Stumbled upon a weird (bug ?) behaviour while making this PR

it seems like it is possible to reach `check_attr.rs` checks without the attribute allowed target checks having already been finished, I added a comment about how to reproduce this in `check_attr.rs`

otherwise good to note is that a bunch of code was moved from `compiler/rustc_hir_analysis/src/collect.rs` to `check_attr.rs`

r? `@JonathanBrouwer`
2025-12-26 21:50:17 +01:00
Jonathan Brouwer
20d4bb924d
Rollup merge of #147717 - Turbo87:accept-to-expect, r=petrochenkov
compiler/middle/lint: Suggest `#[expect(dead_code)]` instead of `#[allow(dead_code)]`

Until now the compiler suggested

> help: to override `-W unused` add `#[allow(dead_code)]`

when encountering e.g. an unused function in the codebase.

This PR changes the suggestion to `#[expect(dead_code)]`, which will warn again once the code is being used somewhere. This is helpful because it lets the developer know that the attribute can now be removed again. Without this the codebase will eventually be littered with stray `#[allow(dead_code)]` attributes that are no longer serving any purpose.

This was suggested in https://bsky.app/profile/steveklabnik.com/post/3m2uh7pf6e225 and I agreed strongly enough to take a look and implement it 😆
2025-12-26 21:50:17 +01:00
Esteban Küber
9f566f2463 Don't use matches! when == suffices
In the codebase we sometimes use `matches!` for values that can actually just be compared. Replace them with `==`.
2025-12-26 20:28:19 +00:00
Guillaume Gomez
c054e52bc9 Add GUI test for copying code when line numbers are displayed in code examples 2025-12-26 20:24:50 +01:00
Guillaume Gomez
7f550f6f37 Fix "copy code" button 2025-12-26 20:24:50 +01:00
Edvin Bryntesson
94e16291e0
Port #[rustc_must_implement_one_of] to attribute parser 2025-12-26 19:08:21 +01:00
BioTomateHP
09f57eb96f
Update hir.rs: fix typo, conform to max_width 2025-12-26 18:05:59 +01:00
bors
82dd3cb008 Auto merge of #150380 - Kivooeo:add-match-for-constkidn, r=BoxyUwU
avoid recreating field_const vec

r? BoxyUwU

fixes https://github.com/rust-lang/rust/issues/150354
fixes https://github.com/rust-lang/rust/issues/150355
2025-12-26 16:59:44 +00:00
Urgau
90e80f5b81 Document relative and absolute paths handling in --remap-path-prefix 2025-12-26 16:38:46 +01:00
bors
8da80d36a3 Auto merge of #150388 - reddevilmidzy:hir-analysis, r=Kivooeo
Update links in compiler/rustc_hir_analysis/README.md for type checking

cc: https://github.com/rust-lang/rustc-dev-guide/pull/2662
2025-12-26 13:52:26 +00:00
Kivooeo
517411f143 add const kind match 2025-12-26 13:12:56 +00:00
bors
2e854a9344 Auto merge of #150357 - ZuseZ4:zusez4-stdarch-push, r=sayantan
stdarch subtree update

Subtree update of `stdarch` to 61119062fb.

Created using https://github.com/rust-lang/josh-sync.

r? `@sayantn`

My first josh sync, it lgtm, but let me know if I missed something.
I'm especially looking forward to the amd GPU module, which we want to use for the offload project.
2025-12-26 10:44:27 +00:00