Skip to content

Test pull sync - #2231

Draft
Kobzol wants to merge 39 commits into
rust-lang:mainfrom
Kobzol:sync
Draft

Kobzol wants to merge 39 commits into
rust-lang:mainfrom
Kobzol:sync

Conversation

@Kobzol

@Kobzol Kobzol commented Sep 21, 2026

Copy link
Copy Markdown
Member

Just testing if a local pull merge looks correct.

Shnatsel and others added 30 commits September 17, 2026 21:29
This updates the rust-version file to da5114692c9ebe46b869488c5f34f92eb10b98c1.
This updates the rust-version file to 32d94cc9be3f6e6c3fa1deaea9e0ab93c4980dba.
…4, r=RalfJung,folkertdev

stdarch subtree update

Subtree update of `stdarch` to rust-lang@dc2e2b1.

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

r? @ghost
…r=estebank

Simplify query stack printing

Currently it uses `eprintln!` for the "query stack during panic" header and "end of query stack" footer and
`struct_failure_note(..).with_span(..).emit()` for the stack frames. The difference is curious.

Looking more closely:
- failure notes lack a leading label (e.g. no "note: ");
- although the failure note is given a span, the span never renders because the `AnnotateSnippetEmitter` used for the query stack has an empty source map field;
- the JSON emitter is never involved here.

Therefore, the only difference between using `struct_failure_note` and `eprintln!` is that the former prints in bold. But boldness for frames isn't important; indeed, normal backtrace frames don't use bold.

So the commit changes query stack frame printing to use `eprintln!`, removes some now unnecessary `dcx` arguments, and also removes `struct_failure_note`. That leaves "For more information about an error, try `rustc --explain {}`" as the only use of `FailureNote`.

r? @estebank
…tations, r=JonathanBrouwer

fix: unfulfilled nested dead code lint

Fixes rust-lang/rust#160942

Dead code diagnostic being covered by parent's dead diagnostic resulting in false positives on expectations not being fulfilled. fixed by checking each child of a dead item for its own expectation now and fulfilling their expectation (if valid). Follows suite for manually fulfilling expect level diagnostics (copies mechanism from `LintContext::fulfill_expectation`.

UI tests fail as expected on main (without fix)

**Input**

```rust
// This struct is only used on windows.
#[cfg_attr(not(target_os = "windows"), expect(unused))]
struct Foo {
    // This field is never used regardless of whether on windows or other.
    #[expect(unused)]
    x: u32,
}
```

**Output**
Before
```
warning: this lint expectation is unfulfilled
 --> src/lib.rs:5:14
  |
5 |     #[expect(unused)]
  |              ^^^^^^
```

After: no output
…nwhite,lcnr

Normalize non-rigid aliases in ty_known_to_outlive

Fixes rust-lang/rust#161067

`ty_known_to_outlive` directly registers a TypeOutlives region obligation without normalization. With the next solver, we do not expect non-rigid aliases in lexical region solving.

Normalize non-rigid aliases before registering the obligation while avoiding trait solving for inputs that do not contain them.
Fix docs of make_ascii_lowercase/make_ascii_upercase

Currently the documentation (but the example) does not specify what happens to ascii characters that are not A-Z. This fixes the documentation to specify that all non A-Z characters are left untouched.
Add mentions to sync back `RELEASES.md` to the `main` branch

I think this can be useful, we had several times in the past incident where the releases notes where not in sync with the `main` branch, which delayed the GitHub releases.

One thing to note: triagebot mentions always runs on all the branches, so I had to make the message more generic than it could have been.
simplify `Target::GenericParam`

Primary motivation is that i've been greatly annoyed recently by  us having 3 enums all named `GenericParamKind`.

Small change in this PR: generic type parameters can now be marked stable/unstable without having a default, i.e.
```rust
struct X<#[unstable(feature = "name", reason = "...", issue = "1337")] T>{t: T}
```

but this is highly unstable so I don't think it matters
…=JonathanBrouwer

Tidy footnote in `platform-support.md`

Move the `win32-msvc-alignment` footnote to below the "Tier 1 without Host Tools" list as the first target to reference it has recently been moved to that section (this matches the convention used for the other footnotes). I've also removed two links that are unused (their usages were removed in rust-lang/rust#122094 and rust-lang/rust#132562).
…nthey

docs(num): add documentation for `NonZero::from_str`

Since `int::from_str` has its own documentation but `NonZero::from_str` does not, I added documentation for `NonZero::from_str` based on the documentation for `int::from_str`.

@rustbot label +A-docs
use u64 limbs in core::num::bignum

The code was totally written by myself without any llm.Last time I write description with the polish of llm,but this time I write the description on my own.
This pr use u64 limbs in core::num::bignum

Since the unlocking of u128 in rust-lang/rust#146277, a discussion happened in rust-lang/rust#137887. From which I know maybe I can help making a u64 digit path.

changes are as follows:

1.  total capacity of bignum remains the same, 1280bits. Big32x40=>Big64x20
2. add u64 entry to SMALL_POW5.
3. update the corresponding coretests to use Big64x20.

performance:

​	I ran benchmarks on my PC,use

```text
./x test library/coretests --test-args bignum
./x test library/coretests --test-args flt2dec
./x test tidy
```

​    results are as follows:

| Benchmark               | Big32x40 (ns/iter) | Big64x20 (ns/iter) | Speedup |
| ----------------------- | ------------------ | ------------------ | ------- |
| `bench_big_exact_inf`   | 33,568             | ~21,700            | 1.55x   |
| `bench_big_shortest`    | 2,913              | ~1,880             | 1.55x   |
| `bench_big_exact_12`    | 1,680              | ~1,030             | 1.63x   |
| `bench_big_exact_3`     | 878                | ~585               | 1.50x   |
| `bench_small_exact_inf` | 1,353              | ~1,425             | ~1.0x   |
| `bench_small_exact_12`  | 277                | ~220               | 1.26x   |
| `bench_small_exact_3`   | 170                | ~134               | 1.27x   |
| `bench_small_shortest`  | 320                | ~275               | 1.16x   |
…iper

PassWrapper: adapt to LLVM reading exception model from module flag

As with rust-lang/rust#162822, LLVM 24 [is now](llvm/llvm-project@73c8b54) reading exception model from the module flags instead of taking it as an extra parameter here.

@rustbot label: +llvm-main
…beetrees

c-variadic: add checks for windows i686

tracking issue: rust-lang/rust#44930

Turns out I missed these earlier. That's sort of OK because the clang implementation is not target-specific for types that we allow. But for `f128` some changes are needed to `va_arg` on x86 so I'd rather lock this all down.

The diff is easier to read as individual commits: a file got moved but that is not obvious from the global diff github shows.

r? tgross35 or @beetrees
…rgau

Move more `rustdoc-html` tests in the right location

Follow-up of rust-lang/rust#162372.

r? @Urgau
JonathanBrouwer and others added 9 commits September 18, 2026 23:05
An assortment of polonius tweaks

As discussed on zulip, r? @jackh726 this contains a couple tweaks:
- fixes the variance recording to be done at the expected two places instead of three (it should be idempotent, but as we saw with unexpected variance, better safe than sorry)
- cleans it up to also match with the deferred liveness work
- starts adding some features from my polonius mir dump prototypes (here, just some simple navigation QoL additions)
- improves the visuals slightly again (details in the commits; but mostly as you can see [in this example](https://gistpreview.github.io/?b8b9218f6565f3b13f91a63859ad776e) and [fixed here](https://gistpreview.github.io/?dadb54091b91f34578f58df067c7a77f), some lines in the MIR dump can be huge and that made the viewport scroll, etc)
Update unicode_data to Unicode version 18.0.0

Had to add an extra array to `L2Lut` to account for characters that change plane when case-mapped (so far, only U+1DF95 LATIN SMALL LIGATURE LONG S WITH DESCENDER S).

Also made `version()` defer to `ucd_parse::ucd_directory_version()`, which is more robust to minor changes in the ReadMe.txt format.
Use niche length type for strlen to guarantee `isize::MAX` bound

Alternative to rust-lang/rust#162912.

r? hanna-kruppe
cc @Darksonn
Guard types with unstable `Allocator` params ahead of partial stabilization

Guard APIs that allow the construction of `#[unstable] A: Allocator` param types with `A != Global`, that will not be stabilized by rust-lang/rust#156882
…uwer

Rollup of 19 pull requests

Successful merges:

 - rust-lang/rust#160401 (sparc: make ABI consistent with clang)
 - rust-lang/rust#162715 (don't calculate dtors if the self ty has impossible bounds)
 - rust-lang/rust#162740 (stdarch subtree update)
 - rust-lang/rust#162946 (Simplify query stack printing)
 - rust-lang/rust#161005 (fix: unfulfilled nested dead code lint)
 - rust-lang/rust#161246 (Normalize non-rigid aliases in ty_known_to_outlive)
 - rust-lang/rust#161803 (Fix docs of make_ascii_lowercase/make_ascii_upercase)
 - rust-lang/rust#162256 (Add mentions to sync back `RELEASES.md` to the `main` branch)
 - rust-lang/rust#162661 (simplify `Target::GenericParam`)
 - rust-lang/rust#162666 (Tidy footnote in `platform-support.md`)
 - rust-lang/rust#162803 (docs(num): add documentation for `NonZero::from_str`)
 - rust-lang/rust#162879 (use u64 limbs in core::num::bignum)
 - rust-lang/rust#162903 (PassWrapper: adapt to LLVM reading exception model from module flag)
 - rust-lang/rust#162905 (c-variadic: add checks for windows i686)
 - rust-lang/rust#162906 (Move more `rustdoc-html` tests in the right location)
 - rust-lang/rust#162922 (An assortment of polonius tweaks)
 - rust-lang/rust#162929 (Update unicode_data to Unicode version 18.0.0)
 - rust-lang/rust#162930 (Use niche length type for strlen to guarantee `isize::MAX` bound)
 - rust-lang/rust#162960 (Guard types with unstable `Allocator` params ahead of partial stabilization)
Remove usages of `Unique` from `RawVec`



See [zulip](https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/Can.20we.20nuke.20.60Unique.60.3F/with/624141418).

Probably needs a perf run, because it touches code that might be very sensitive to build times and debug mode

r? libs
even more cleanups for `rustc_builtin_macros`



Followup to rust-lang/rust#162234 with more cleanups and perf improvements.
This updates the rust-version file to 220b36c420c49c59923f54cd4a76634fac98a067.
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Previous upstream ref: rust-lang/rust@32d94cc
New upstream ref: rust-lang/rust@220b36c
Filtered ref: rust-lang/stdarch@a1fd5ae
Upstream diff: rust-lang/rust@32d94cc...220b36c

This merge was created using https://github.com/rust-lang/josh-sync.

# Conflicts:
#	rust-version

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants