Skip to content

Commit 8bfc88f

Browse files
authored
Merge pull request #4319 from rust-lang/rustup-2025-05-12
Automatic Rustup
2 parents cbd4db0 + 7479482 commit 8bfc88f

File tree

176 files changed

+1688
-838
lines changed

Some content is hidden

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

176 files changed

+1688
-838
lines changed

Cargo.lock

Lines changed: 20 additions & 49 deletions
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
]
@@ -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"
@@ -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"
@@ -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"
@@ -3093,9 +3063,9 @@ version = "0.2.0"
30933063
dependencies = [
30943064
"bstr",
30953065
"build_helper",
3096-
"gimli 0.31.1",
3066+
"gimli",
30973067
"libc",
3098-
"object 0.36.7",
3068+
"object",
30993069
"regex",
31003070
"serde_json",
31013071
"similar",
@@ -3402,11 +3372,11 @@ name = "rustc_codegen_llvm"
34023372
version = "0.0.0"
34033373
dependencies = [
34043374
"bitflags",
3405-
"gimli 0.31.1",
3375+
"gimli",
34063376
"itertools",
34073377
"libc",
34083378
"measureme",
3409-
"object 0.36.7",
3379+
"object",
34103380
"rustc-demangle",
34113381
"rustc_abi",
34123382
"rustc_ast",
@@ -3447,7 +3417,7 @@ dependencies = [
34473417
"either",
34483418
"itertools",
34493419
"libc",
3450-
"object 0.36.7",
3420+
"object",
34513421
"pathdiff",
34523422
"regex",
34533423
"rustc_abi",
@@ -4329,6 +4299,7 @@ dependencies = [
43294299
"rustc_arena",
43304300
"rustc_ast",
43314301
"rustc_ast_pretty",
4302+
"rustc_attr_data_structures",
43324303
"rustc_attr_parsing",
43334304
"rustc_data_structures",
43344305
"rustc_errors",
@@ -4464,7 +4435,7 @@ name = "rustc_target"
44644435
version = "0.0.0"
44654436
dependencies = [
44664437
"bitflags",
4467-
"object 0.36.7",
4438+
"object",
44684439
"rustc_abi",
44694440
"rustc_data_structures",
44704441
"rustc_fs_util",
@@ -5228,9 +5199,9 @@ version = "0.9.0"
52285199
source = "registry+https://github.com/rust-lang/crates.io-index"
52295200
checksum = "9e9c1e705f82a260173f3eec93f2ff6d7807f23ad5a8cc2e7316a891733ea7a1"
52305201
dependencies = [
5231-
"gimli 0.31.1",
5202+
"gimli",
52325203
"hashbrown",
5233-
"object 0.36.7",
5204+
"object",
52345205
"tracing",
52355206
]
52365207

RELEASES.md

Lines changed: 77 additions & 77 deletions
Large diffs are not rendered by default.

compiler/rustc_ast/src/ast.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,6 @@ impl ParenthesizedArgs {
308308
}
309309
}
310310

311-
use crate::AstDeref;
312311
pub use crate::node_id::{CRATE_NODE_ID, DUMMY_NODE_ID, NodeId};
313312

314313
/// Modifiers on a trait bound like `~const`, `?` and `!`.
@@ -2349,7 +2348,7 @@ impl Ty {
23492348
pub fn is_maybe_parenthesised_infer(&self) -> bool {
23502349
match &self.kind {
23512350
TyKind::Infer => true,
2352-
TyKind::Paren(inner) => inner.ast_deref().is_maybe_parenthesised_infer(),
2351+
TyKind::Paren(inner) => inner.is_maybe_parenthesised_infer(),
23532352
_ => false,
23542353
}
23552354
}

compiler/rustc_ast/src/ast_traits.rs

Lines changed: 28 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -13,34 +13,6 @@ use crate::{
1313
Ty, Variant, Visibility, WherePredicate,
1414
};
1515

16-
/// A utility trait to reduce boilerplate.
17-
/// Standard `Deref(Mut)` cannot be reused due to coherence.
18-
pub trait AstDeref {
19-
type Target;
20-
fn ast_deref(&self) -> &Self::Target;
21-
fn ast_deref_mut(&mut self) -> &mut Self::Target;
22-
}
23-
24-
macro_rules! impl_not_ast_deref {
25-
($($T:ty),+ $(,)?) => {
26-
$(
27-
impl !AstDeref for $T {}
28-
)+
29-
};
30-
}
31-
32-
impl_not_ast_deref!(AssocItem, Expr, ForeignItem, Item, Stmt);
33-
34-
impl<T> AstDeref for P<T> {
35-
type Target = T;
36-
fn ast_deref(&self) -> &Self::Target {
37-
self
38-
}
39-
fn ast_deref_mut(&mut self) -> &mut Self::Target {
40-
self
41-
}
42-
}
43-
4416
/// A trait for AST nodes having an ID.
4517
pub trait HasNodeId {
4618
fn node_id(&self) -> NodeId;
@@ -81,12 +53,12 @@ impl_has_node_id!(
8153
WherePredicate,
8254
);
8355

84-
impl<T: AstDeref<Target: HasNodeId>> HasNodeId for T {
56+
impl<T: HasNodeId> HasNodeId for P<T> {
8557
fn node_id(&self) -> NodeId {
86-
self.ast_deref().node_id()
58+
(**self).node_id()
8759
}
8860
fn node_id_mut(&mut self) -> &mut NodeId {
89-
self.ast_deref_mut().node_id_mut()
61+
(**self).node_id_mut()
9062
}
9163
}
9264

@@ -138,21 +110,21 @@ impl_has_tokens_none!(
138110
WherePredicate
139111
);
140112

141-
impl<T: AstDeref<Target: HasTokens>> HasTokens for T {
113+
impl<T: HasTokens> HasTokens for Option<T> {
142114
fn tokens(&self) -> Option<&LazyAttrTokenStream> {
143-
self.ast_deref().tokens()
115+
self.as_ref().and_then(|inner| inner.tokens())
144116
}
145117
fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>> {
146-
self.ast_deref_mut().tokens_mut()
118+
self.as_mut().and_then(|inner| inner.tokens_mut())
147119
}
148120
}
149121

150-
impl<T: HasTokens> HasTokens for Option<T> {
122+
impl<T: HasTokens> HasTokens for P<T> {
151123
fn tokens(&self) -> Option<&LazyAttrTokenStream> {
152-
self.as_ref().and_then(|inner| inner.tokens())
124+
(**self).tokens()
153125
}
154126
fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>> {
155-
self.as_mut().and_then(|inner| inner.tokens_mut())
127+
(**self).tokens_mut()
156128
}
157129
}
158130

@@ -273,13 +245,13 @@ impl_has_attrs!(
273245
);
274246
impl_has_attrs_none!(Attribute, AttrItem, Block, Pat, Path, Ty, Visibility);
275247

276-
impl<T: AstDeref<Target: HasAttrs>> HasAttrs for T {
277-
const SUPPORTS_CUSTOM_INNER_ATTRS: bool = T::Target::SUPPORTS_CUSTOM_INNER_ATTRS;
248+
impl<T: HasAttrs> HasAttrs for P<T> {
249+
const SUPPORTS_CUSTOM_INNER_ATTRS: bool = T::SUPPORTS_CUSTOM_INNER_ATTRS;
278250
fn attrs(&self) -> &[Attribute] {
279-
self.ast_deref().attrs()
251+
(**self).attrs()
280252
}
281253
fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec)) {
282-
self.ast_deref_mut().visit_attrs(f)
254+
(**self).visit_attrs(f);
283255
}
284256
}
285257

@@ -343,13 +315,22 @@ impl<Wrapped, Tag> AstNodeWrapper<Wrapped, Tag> {
343315
}
344316
}
345317

346-
impl<Wrapped, Tag> AstDeref for AstNodeWrapper<Wrapped, Tag> {
347-
type Target = Wrapped;
348-
fn ast_deref(&self) -> &Self::Target {
349-
&self.wrapped
318+
impl<Wrapped: HasNodeId, Tag> HasNodeId for AstNodeWrapper<Wrapped, Tag> {
319+
fn node_id(&self) -> NodeId {
320+
self.wrapped.node_id()
321+
}
322+
fn node_id_mut(&mut self) -> &mut NodeId {
323+
self.wrapped.node_id_mut()
324+
}
325+
}
326+
327+
impl<Wrapped: HasAttrs, Tag> HasAttrs for AstNodeWrapper<Wrapped, Tag> {
328+
const SUPPORTS_CUSTOM_INNER_ATTRS: bool = Wrapped::SUPPORTS_CUSTOM_INNER_ATTRS;
329+
fn attrs(&self) -> &[Attribute] {
330+
self.wrapped.attrs()
350331
}
351-
fn ast_deref_mut(&mut self) -> &mut Self::Target {
352-
&mut self.wrapped
332+
fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec)) {
333+
self.wrapped.visit_attrs(f);
353334
}
354335
}
355336

compiler/rustc_ast/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ pub mod tokenstream;
4646
pub mod visit;
4747

4848
pub use self::ast::*;
49-
pub use self::ast_traits::{AstDeref, AstNodeWrapper, HasAttrs, HasNodeId, HasTokens};
49+
pub use self::ast_traits::{AstNodeWrapper, HasAttrs, HasNodeId, HasTokens};
5050

5151
/// Requirements for a `StableHashingContext` to be used in this crate.
5252
/// This is a hack to allow using the `HashStable_Generic` derive macro

compiler/rustc_builtin_macros/src/env.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::env::VarError;
88

99
use rustc_ast::token::{self, LitKind};
1010
use rustc_ast::tokenstream::TokenStream;
11-
use rustc_ast::{AstDeref, ExprKind, GenericArg, Mutability};
11+
use rustc_ast::{ExprKind, GenericArg, Mutability};
1212
use rustc_expand::base::{DummyResult, ExpandResult, ExtCtxt, MacEager, MacroExpanderResult};
1313
use rustc_span::{Ident, Span, Symbol, kw, sym};
1414
use thin_vec::thin_vec;
@@ -148,13 +148,13 @@ pub(crate) fn expand_env<'cx>(
148148
cx.dcx().emit_err(errors::EnvNotDefined::CargoEnvVar {
149149
span,
150150
var: *symbol,
151-
var_expr: var_expr.ast_deref(),
151+
var_expr: &var_expr,
152152
})
153153
} else {
154154
cx.dcx().emit_err(errors::EnvNotDefined::CustomEnvVar {
155155
span,
156156
var: *symbol,
157-
var_expr: var_expr.ast_deref(),
157+
var_expr: &var_expr,
158158
})
159159
}
160160
}

0 commit comments

Comments
 (0)