Skip to content

Commit a3ce646

Browse files
authored
Merge pull request rust-lang#2388 from rust-lang/rustc-pull
Rustc pull update
2 parents d016ed8 + 1fd536c commit a3ce646

File tree

456 files changed

+4558
-2740
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

456 files changed

+4558
-2740
lines changed

Cargo.lock

+27-57
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,13 @@ version = 4
44

55
[[package]]
66
name = "addr2line"
7-
version = "0.21.0"
7+
version = "0.24.2"
88
source = "registry+https://github.com/rust-lang/crates.io-index"
9-
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
9+
checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
1010
dependencies = [
11-
"gimli 0.28.1",
11+
"gimli",
1212
]
1313

14-
[[package]]
15-
name = "adler"
16-
version = "1.0.2"
17-
source = "registry+https://github.com/rust-lang/crates.io-index"
18-
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
19-
2014
[[package]]
2115
name = "adler2"
2216
version = "2.0.0"
@@ -168,7 +162,7 @@ version = "0.4.2"
168162
source = "registry+https://github.com/rust-lang/crates.io-index"
169163
checksum = "01667f6f40216b9a0b2945e05fed5f1ad0ab6470e69cb9378001e37b1c0668e4"
170164
dependencies = [
171-
"object 0.36.7",
165+
"object",
172166
]
173167

174168
[[package]]
@@ -233,17 +227,17 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
233227

234228
[[package]]
235229
name = "backtrace"
236-
version = "0.3.71"
230+
version = "0.3.75"
237231
source = "registry+https://github.com/rust-lang/crates.io-index"
238-
checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
232+
checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002"
239233
dependencies = [
240234
"addr2line",
241-
"cc",
242235
"cfg-if",
243236
"libc",
244-
"miniz_oxide 0.7.4",
245-
"object 0.32.2",
237+
"miniz_oxide",
238+
"object",
246239
"rustc-demangle",
240+
"windows-targets 0.52.6",
247241
]
248242

249243
[[package]]
@@ -780,7 +774,7 @@ dependencies = [
780774
"itertools",
781775
"leb128",
782776
"md-5",
783-
"miniz_oxide 0.7.4",
777+
"miniz_oxide",
784778
"regex",
785779
"rustc-demangle",
786780
]
@@ -849,9 +843,9 @@ dependencies = [
849843

850844
[[package]]
851845
name = "ctrlc"
852-
version = "3.4.6"
846+
version = "3.4.7"
853847
source = "registry+https://github.com/rust-lang/crates.io-index"
854-
checksum = "697b5419f348fd5ae2478e8018cb016c00a5881c7f46c717de98ffd135a5651c"
848+
checksum = "46f93780a459b7d656ef7f071fe699c4d3d2cb201c4b24d085b6ddc505276e73"
855849
dependencies = [
856850
"nix",
857851
"windows-sys 0.59.0",
@@ -1220,7 +1214,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
12201214
checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece"
12211215
dependencies = [
12221216
"crc32fast",
1223-
"miniz_oxide 0.8.8",
1217+
"miniz_oxide",
12241218
]
12251219

12261220
[[package]]
@@ -1453,12 +1447,6 @@ dependencies = [
14531447
"wasi 0.14.2+wasi-0.2.4",
14541448
]
14551449

1456-
[[package]]
1457-
name = "gimli"
1458-
version = "0.28.1"
1459-
source = "registry+https://github.com/rust-lang/crates.io-index"
1460-
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
1461-
14621450
[[package]]
14631451
name = "gimli"
14641452
version = "0.31.1"
@@ -2064,12 +2052,12 @@ dependencies = [
20642052

20652053
[[package]]
20662054
name = "libloading"
2067-
version = "0.8.6"
2055+
version = "0.8.7"
20682056
source = "registry+https://github.com/rust-lang/crates.io-index"
2069-
checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
2057+
checksum = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c"
20702058
dependencies = [
20712059
"cfg-if",
2072-
"windows-targets 0.48.5",
2060+
"windows-targets 0.53.0",
20732061
]
20742062

20752063
[[package]]
@@ -2263,15 +2251,6 @@ version = "0.2.1"
22632251
source = "registry+https://github.com/rust-lang/crates.io-index"
22642252
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
22652253

2266-
[[package]]
2267-
name = "miniz_oxide"
2268-
version = "0.7.4"
2269-
source = "registry+https://github.com/rust-lang/crates.io-index"
2270-
checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
2271-
dependencies = [
2272-
"adler",
2273-
]
2274-
22752254
[[package]]
22762255
name = "miniz_oxide"
22772256
version = "0.8.8"
@@ -2327,9 +2306,9 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
23272306

23282307
[[package]]
23292308
name = "nix"
2330-
version = "0.29.0"
2309+
version = "0.30.1"
23312310
source = "registry+https://github.com/rust-lang/crates.io-index"
2332-
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
2311+
checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
23332312
dependencies = [
23342313
"bitflags",
23352314
"cfg-if",
@@ -2483,15 +2462,6 @@ dependencies = [
24832462
"objc2-core-foundation",
24842463
]
24852464

2486-
[[package]]
2487-
name = "object"
2488-
version = "0.32.2"
2489-
source = "registry+https://github.com/rust-lang/crates.io-index"
2490-
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
2491-
dependencies = [
2492-
"memchr",
2493-
]
2494-
24952465
[[package]]
24962466
name = "object"
24972467
version = "0.36.7"
@@ -2567,7 +2537,6 @@ dependencies = [
25672537
"humansize",
25682538
"humantime",
25692539
"log",
2570-
"serde",
25712540
"serde_json",
25722541
"sysinfo",
25732542
"tabled",
@@ -3094,9 +3063,9 @@ version = "0.2.0"
30943063
dependencies = [
30953064
"bstr",
30963065
"build_helper",
3097-
"gimli 0.31.1",
3066+
"gimli",
30983067
"libc",
3099-
"object 0.36.7",
3068+
"object",
31003069
"regex",
31013070
"serde_json",
31023071
"similar",
@@ -3403,11 +3372,11 @@ name = "rustc_codegen_llvm"
34033372
version = "0.0.0"
34043373
dependencies = [
34053374
"bitflags",
3406-
"gimli 0.31.1",
3375+
"gimli",
34073376
"itertools",
34083377
"libc",
34093378
"measureme",
3410-
"object 0.36.7",
3379+
"object",
34113380
"rustc-demangle",
34123381
"rustc_abi",
34133382
"rustc_ast",
@@ -3448,7 +3417,7 @@ dependencies = [
34483417
"either",
34493418
"itertools",
34503419
"libc",
3451-
"object 0.36.7",
3420+
"object",
34523421
"pathdiff",
34533422
"regex",
34543423
"rustc_abi",
@@ -4330,6 +4299,7 @@ dependencies = [
43304299
"rustc_arena",
43314300
"rustc_ast",
43324301
"rustc_ast_pretty",
4302+
"rustc_attr_data_structures",
43334303
"rustc_attr_parsing",
43344304
"rustc_data_structures",
43354305
"rustc_errors",
@@ -4465,7 +4435,7 @@ name = "rustc_target"
44654435
version = "0.0.0"
44664436
dependencies = [
44674437
"bitflags",
4468-
"object 0.36.7",
4438+
"object",
44694439
"rustc_abi",
44704440
"rustc_data_structures",
44714441
"rustc_fs_util",
@@ -5229,9 +5199,9 @@ version = "0.9.0"
52295199
source = "registry+https://github.com/rust-lang/crates.io-index"
52305200
checksum = "9e9c1e705f82a260173f3eec93f2ff6d7807f23ad5a8cc2e7316a891733ea7a1"
52315201
dependencies = [
5232-
"gimli 0.31.1",
5202+
"gimli",
52335203
"hashbrown",
5234-
"object 0.36.7",
5204+
"object",
52355205
"tracing",
52365206
]
52375207

RELEASES.md

+166
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,169 @@
1+
Version 1.87.0 (2025-05-15)
2+
==========================
3+
4+
<a id="1.87.0-Language"></a>
5+
6+
Language
7+
--------
8+
- [Stabilize `asm_goto` feature](https://github.com/rust-lang/rust/pull/133870)
9+
- [Allow parsing open beginning ranges (`..EXPR`) after unary operators `!`, `-`, and `*`](https://github.com/rust-lang/rust/pull/134900).
10+
- [Don't require method impls for methods with `Self: Sized` bounds in `impl`s for unsized types](https://github.com/rust-lang/rust/pull/135480)
11+
- [Stabilize `feature(precise_capturing_in_traits)` allowing `use<...>` bounds on return position `impl Trait` in `trait`s](https://github.com/rust-lang/rust/pull/138128)
12+
13+
<a id="1.87.0-Compiler"></a>
14+
15+
Compiler
16+
--------
17+
- [x86: make SSE2 required for i686 targets and use it to pass SIMD types](https://github.com/rust-lang/rust/pull/135408)
18+
19+
<a id="1.87.0-Platform-Support"></a>
20+
21+
Platform Support
22+
----------------
23+
- [Remove `i586-pc-windows-msvc` target](https://github.com/rust-lang/rust/pull/137957)
24+
25+
Refer to Rust's [platform support page][platform-support-doc]
26+
for more information on Rust's tiered platform support.
27+
28+
[platform-support-doc]: https://doc.rust-lang.org/rustc/platform-support.html
29+
30+
<a id="1.87.0-Libraries"></a>
31+
32+
Libraries
33+
---------
34+
- [Stabilize the anonymous pipe API](https://github.com/rust-lang/rust/issues/127154)
35+
- [Add support for unbounded left/right shift operations](https://github.com/rust-lang/rust/issues/129375)
36+
- [Print pointer metadata in `Debug` impl of raw pointers](https://github.com/rust-lang/rust/pull/135080)
37+
- [`Vec::with_capacity` guarantees it allocates with the amount requested, even if `Vec::capacity` returns a different number.](https://github.com/rust-lang/rust/pull/135933)
38+
- Most `std::arch` intrinsics which don't take pointer arguments can now be called from safe code if the caller has the appropriate target features already enabled (https://github.com/rust-lang/stdarch/pull/1714, https://github.com/rust-lang/stdarch/pull/1716, https://github.com/rust-lang/stdarch/pull/1717)
39+
- [Undeprecate `env::home_dir`](https://github.com/rust-lang/rust/pull/137327)
40+
- [Denote `ControlFlow` as `#[must_use]`](https://github.com/rust-lang/rust/pull/137449)
41+
- [Macros such as `assert_eq!` and `vec!` now support `const {...}` expressions](https://github.com/rust-lang/rust/pull/138162)
42+
43+
<a id="1.87.0-Stabilized-APIs"></a>
44+
45+
Stabilized APIs
46+
---------------
47+
48+
- [`Vec::extract_if`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.extract_if)
49+
- [`vec::ExtractIf`](https://doc.rust-lang.org/stable/std/vec/struct.ExtractIf.html)
50+
- [`LinkedList::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.LinkedList.html#method.extract_if)
51+
- [`linked_list::ExtractIf`](https://doc.rust-lang.org/stable/std/collections/linked_list/struct.ExtractIf.html)
52+
- [`<[T]>::split_off`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off)
53+
- [`<[T]>::split_off_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_mut)
54+
- [`<[T]>::split_off_first`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first)
55+
- [`<[T]>::split_off_first_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first_mut)
56+
- [`<[T]>::split_off_last`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last)
57+
- [`<[T]>::split_off_last_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last_mut)
58+
- [`String::extend_from_within`](https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.extend_from_within)
59+
- [`os_str::Display`](https://doc.rust-lang.org/stable/std/ffi/os_str/struct.Display.html)
60+
- [`OsString::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.display)
61+
- [`OsStr::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.display)
62+
- [`io::pipe`](https://doc.rust-lang.org/stable/std/io/fn.pipe.html)
63+
- [`io::PipeReader`](https://doc.rust-lang.org/stable/std/io/struct.PipeReader.html)
64+
- [`io::PipeWriter`](https://doc.rust-lang.org/stable/std/io/struct.PipeWriter.html)
65+
- [`impl From<PipeReader> for OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle)
66+
- [`impl From<PipeWriter> for OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle)
67+
- [`impl From<PipeReader> for Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html)
68+
- [`impl From<PipeWriter> for Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio)
69+
- [`impl From<PipeReader> for OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd)
70+
- [`impl From<PipeWriter> for OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd)
71+
- [`Box<MaybeUninit<T>>::write`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.write)
72+
- [`impl TryFrom<Vec<u8>> for String`](https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String)
73+
- [`<*const T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned)
74+
- [`<*const T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned)
75+
- [`<*mut T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned-1)
76+
- [`<*mut T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned-1)
77+
- [`NonNull::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.offset_from_unsigned)
78+
- [`NonNull::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned)
79+
- [`<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.cast_signed)
80+
- [`NonZero::<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_signed-5).
81+
- [`<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.cast_unsigned).
82+
- [`NonZero::<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_unsigned-5).
83+
- [`<uN>::is_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.is_multiple_of)
84+
- [`<uN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shl)
85+
- [`<uN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shr)
86+
- [`<iN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shl)
87+
- [`<iN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shr)
88+
- [`<iN>::midpoint`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.midpoint)
89+
- [`<str>::from_utf8`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8)
90+
- [`<str>::from_utf8_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_mut)
91+
- [`<str>::from_utf8_unchecked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked)
92+
- [`<str>::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked_mut)
93+
94+
These previously stable APIs are now stable in const contexts:
95+
96+
- [`core::str::from_utf8_mut`](https://doc.rust-lang.org/stable/std/str/fn.from_utf8_mut.html)
97+
- [`<[T]>::copy_from_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.copy_from_slice)
98+
- [`SocketAddr::set_ip`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_ip)
99+
- [`SocketAddr::set_port`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_port),
100+
- [`SocketAddrV4::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_ip)
101+
- [`SocketAddrV4::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_port),
102+
- [`SocketAddrV6::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_ip)
103+
- [`SocketAddrV6::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_port)
104+
- [`SocketAddrV6::set_flowinfo`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_flowinfo)
105+
- [`SocketAddrV6::set_scope_id`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_scope_id)
106+
- [`char::is_digit`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_digit)
107+
- [`char::is_whitespace`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_whitespace)
108+
- [`<[[T; N]]>::as_flattened`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened)
109+
- [`<[[T; N]]>::as_flattened_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened_mut)
110+
- [`String::into_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_bytes)
111+
- [`String::as_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_str)
112+
- [`String::capacity`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.capacity)
113+
- [`String::as_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_bytes)
114+
- [`String::len`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.len)
115+
- [`String::is_empty`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.is_empty)
116+
- [`String::as_mut_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_str)
117+
- [`String::as_mut_vec`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_vec)
118+
- [`Vec::as_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_ptr)
119+
- [`Vec::as_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_slice)
120+
- [`Vec::capacity`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.capacity)
121+
- [`Vec::len`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.len)
122+
- [`Vec::is_empty`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.is_empty)
123+
- [`Vec::as_mut_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_slice)
124+
- [`Vec::as_mut_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_ptr)
125+
126+
<a id="1.87.0-Cargo"></a>
127+
128+
Cargo
129+
-----
130+
- [Add terminal integration via ANSI OSC 9;4 sequences](https://github.com/rust-lang/cargo/pull/14615/)
131+
- [chore: bump openssl to v3](https://github.com/rust-lang/cargo/pull/15232/)
132+
- [feat(package): add --exclude-lockfile flag](https://github.com/rust-lang/cargo/pull/15234/)
133+
134+
<a id="1.87.0-Compatibility-Notes"></a>
135+
136+
Compatibility Notes
137+
-------------------
138+
- [Rust now raises an error for macro invocations inside the `#![crate_name]` attribute](https://github.com/rust-lang/rust/pull/127581)
139+
- [Unstable fields are now always considered to be inhabited](https://github.com/rust-lang/rust/pull/133889)
140+
- [Macro arguments of unary operators followed by open beginning ranges may now be matched differently](https://github.com/rust-lang/rust/pull/134900)
141+
- [Make `Debug` impl of raw pointers print metadata if present](https://github.com/rust-lang/rust/pull/135080)
142+
- [Warn against function pointers using unsupported ABI strings in dependencies](https://github.com/rust-lang/rust/pull/135767)
143+
- [Associated types on `dyn` types are no longer deduplicated](https://github.com/rust-lang/rust/pull/136458)
144+
- [Forbid attributes on `..` inside of struct patterns (`let Struct { #[attribute] .. }) =`](https://github.com/rust-lang/rust/pull/136490)
145+
- [Make `ptr_cast_add_auto_to_object` lint into hard error](https://github.com/rust-lang/rust/pull/136764)
146+
- Many `std::arch` intrinsics are now safe to call in some contexts, there may now be new `unused_unsafe` warnings in existing codebases.
147+
- [Limit `width` and `precision` formatting options to 16 bits on all targets](https://github.com/rust-lang/rust/pull/136932)
148+
- [Turn order dependent trait objects future incompat warning into a hard error](https://github.com/rust-lang/rust/pull/136968)
149+
- [Denote `ControlFlow` as `#[must_use]`](https://github.com/rust-lang/rust/pull/137449)
150+
- [Windows: The standard library no longer links `advapi32`, except on win7.](https://github.com/rust-lang/rust/pull/138233) Code such as C libraries that were relying on this assumption may need to explicitly link advapi32.
151+
- [Proc macros can no longer observe expanded `cfg(true)` attributes.](https://github.com/rust-lang/rust/pull/138844)
152+
- [Start changing the internal representation of pasted tokens](https://github.com/rust-lang/rust/pull/124141). Certain invalid declarative macros that were previously accepted in obscure circumstances are now correctly rejected by the compiler. Use of a `tt` fragment specifier can often fix these macros.
153+
- [Don't allow flattened format_args in const.](https://github.com/rust-lang/rust/pull/139624)
154+
155+
<a id="1.87.0-Internal-Changes"></a>
156+
157+
Internal Changes
158+
----------------
159+
160+
These changes do not affect any public interfaces of Rust, but they represent
161+
significant improvements to the performance or internals of rustc and related
162+
tools.
163+
164+
- [Update to LLVM 20](https://github.com/rust-lang/rust/pull/135763)
165+
166+
1167
Version 1.86.0 (2025-04-03)
2168
==========================
3169

0 commit comments

Comments
 (0)