Skip to content

Commit bb976bc

Browse files
authored
Merge pull request rust-lang#4353 from rust-lang/rustup-2025-05-28
Automatic Rustup
2 parents 98485a8 + 15f0fb0 commit bb976bc

File tree

331 files changed

+3702
-2926
lines changed

Some content is hidden

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

331 files changed

+3702
-2926
lines changed

.github/workflows/ci.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,8 @@ jobs:
7979
# This also ensures that PR CI (which doesn't get write access to S3) works, as it cannot
8080
# access the environment.
8181
#
82-
# We only enable the environment for the rust-lang/rust repository, so that rust-lang-ci/rust
83-
# CI works until we migrate off it (since that repository doesn't contain the environment).
84-
environment: ${{ ((github.repository == 'rust-lang/rust' && (github.ref == 'refs/heads/try' || github.ref == 'refs/heads/auto')) && 'bors') || '' }}
82+
# We only enable the environment for the rust-lang/rust repository, so that CI works on forks.
83+
environment: ${{ ((github.repository == 'rust-lang/rust' && (github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try-perf' || github.ref == 'refs/heads/auto')) && 'bors') || '' }}
8584
env:
8685
CI_JOB_NAME: ${{ matrix.name }}
8786
CI_JOB_DOC_URL: ${{ matrix.doc_url }}
@@ -234,8 +233,8 @@ jobs:
234233
fi
235234
exit ${STATUS}
236235
env:
237-
AWS_ACCESS_KEY_ID: ${{ (github.repository == 'rust-lang/rust' && secrets.CACHES_AWS_ACCESS_KEY_ID) || env.CACHES_AWS_ACCESS_KEY_ID }}
238-
AWS_SECRET_ACCESS_KEY: ${{ (github.repository == 'rust-lang/rust' && secrets.CACHES_AWS_SECRET_ACCESS_KEY) || secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}
236+
AWS_ACCESS_KEY_ID: ${{ secrets.CACHES_AWS_ACCESS_KEY_ID }}
237+
AWS_SECRET_ACCESS_KEY: ${{ secrets.CACHES_AWS_SECRET_ACCESS_KEY }}
239238

240239
- name: create github artifacts
241240
run: src/ci/scripts/create-doc-artifacts.sh
@@ -257,8 +256,8 @@ jobs:
257256
- name: upload artifacts to S3
258257
run: src/ci/scripts/upload-artifacts.sh
259258
env:
260-
AWS_ACCESS_KEY_ID: ${{ (github.repository == 'rust-lang/rust' && secrets.ARTIFACTS_AWS_ACCESS_KEY_ID) || env.ARTIFACTS_AWS_ACCESS_KEY_ID }}
261-
AWS_SECRET_ACCESS_KEY: ${{ (github.repository == 'rust-lang/rust' && secrets.ARTIFACTS_AWS_SECRET_ACCESS_KEY) || secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}
259+
AWS_ACCESS_KEY_ID: ${{ secrets.ARTIFACTS_AWS_ACCESS_KEY_ID }}
260+
AWS_SECRET_ACCESS_KEY: ${{ secrets.ARTIFACTS_AWS_SECRET_ACCESS_KEY }}
262261
# Adding a condition on DEPLOY=1 or DEPLOY_ALT=1 is not needed as all deploy
263262
# builders *should* have the AWS credentials available. Still, explicitly
264263
# adding the condition is helpful as this way CI will not silently skip

Cargo.lock

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,16 +1259,16 @@ dependencies = [
12591259

12601260
[[package]]
12611261
name = "fluent-bundle"
1262-
version = "0.15.3"
1262+
version = "0.16.0"
12631263
source = "registry+https://github.com/rust-lang/crates.io-index"
1264-
checksum = "7fe0a21ee80050c678013f82edf4b705fe2f26f1f9877593d13198612503f493"
1264+
checksum = "01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4"
12651265
dependencies = [
12661266
"fluent-langneg",
12671267
"fluent-syntax",
12681268
"intl-memoizer",
12691269
"intl_pluralrules",
1270-
"rustc-hash 1.1.0",
1271-
"self_cell 0.10.3",
1270+
"rustc-hash 2.1.1",
1271+
"self_cell",
12721272
"smallvec",
12731273
"unic-langid",
12741274
]
@@ -1284,11 +1284,12 @@ dependencies = [
12841284

12851285
[[package]]
12861286
name = "fluent-syntax"
1287-
version = "0.11.1"
1287+
version = "0.12.0"
12881288
source = "registry+https://github.com/rust-lang/crates.io-index"
1289-
checksum = "2a530c4694a6a8d528794ee9bbd8ba0122e779629ac908d15ad5a7ae7763a33d"
1289+
checksum = "54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198"
12901290
dependencies = [
1291-
"thiserror 1.0.69",
1291+
"memchr",
1292+
"thiserror 2.0.12",
12921293
]
12931294

12941295
[[package]]
@@ -1934,9 +1935,9 @@ dependencies = [
19341935

19351936
[[package]]
19361937
name = "intl-memoizer"
1937-
version = "0.5.2"
1938+
version = "0.5.3"
19381939
source = "registry+https://github.com/rust-lang/crates.io-index"
1939-
checksum = "fe22e020fce238ae18a6d5d8c502ee76a52a6e880d99477657e6acc30ec57bda"
1940+
checksum = "310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f"
19401941
dependencies = [
19411942
"type-map",
19421943
"unic-langid",
@@ -4832,15 +4833,6 @@ version = "1.2.0"
48324833
source = "registry+https://github.com/rust-lang/crates.io-index"
48334834
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
48344835

4835-
[[package]]
4836-
name = "self_cell"
4837-
version = "0.10.3"
4838-
source = "registry+https://github.com/rust-lang/crates.io-index"
4839-
checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d"
4840-
dependencies = [
4841-
"self_cell 1.2.0",
4842-
]
4843-
48444836
[[package]]
48454837
name = "self_cell"
48464838
version = "1.2.0"

compiler/rustc_ast/src/mut_visit.rs

Lines changed: 7 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,6 @@ pub trait MutVisitor: Sized {
4040
// fn flat_map_t(&mut self, t: T) -> SmallVec<[T; 1]>; // rare
4141
// fn filter_map_t(&mut self, t: T) -> Option<T>; // rarest
4242
//
43-
// Any additions to this trait should happen in form of a call to a public
44-
// `noop_*` function that only calls out to the visitor again, not other
45-
// `noop_*` functions. This is a necessary API workaround to the problem of
46-
// not being able to call out to the super default method in an overridden
47-
// default method.
48-
//
4943
// When writing these methods, it is better to use destructuring like this:
5044
//
5145
// fn visit_abc(&mut self, ABC { a, b, c: _ }: &mut ABC) {
@@ -179,7 +173,7 @@ pub trait MutVisitor: Sized {
179173
}
180174

181175
fn filter_map_expr(&mut self, e: P<Expr>) -> Option<P<Expr>> {
182-
noop_filter_map_expr(self, e)
176+
walk_filter_map_expr(self, e)
183177
}
184178

185179
fn visit_generic_arg(&mut self, arg: &mut GenericArg) {
@@ -306,10 +300,6 @@ pub trait MutVisitor: Sized {
306300
walk_precise_capturing_arg(self, arg);
307301
}
308302

309-
fn visit_mt(&mut self, mt: &mut MutTy) {
310-
walk_mt(self, mt);
311-
}
312-
313303
fn visit_expr_field(&mut self, f: &mut ExprField) {
314304
walk_expr_field(self, f);
315305
}
@@ -381,14 +371,11 @@ super::common_visitor_and_walkers!((mut) MutVisitor);
381371
/// Use a map-style function (`FnOnce(T) -> T`) to overwrite a `&mut T`. Useful
382372
/// when using a `flat_map_*` or `filter_map_*` method within a `visit_`
383373
/// method.
384-
//
385-
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
386374
pub fn visit_clobber<T: DummyAstNode>(t: &mut T, f: impl FnOnce(T) -> T) {
387375
let old_t = std::mem::replace(t, T::dummy());
388376
*t = f(old_t);
389377
}
390378

391-
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
392379
#[inline]
393380
fn visit_vec<T, F>(elems: &mut Vec<T>, mut visit_elem: F)
394381
where
@@ -399,7 +386,6 @@ where
399386
}
400387
}
401388

402-
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
403389
#[inline]
404390
fn visit_thin_vec<T, F>(elems: &mut ThinVec<T>, mut visit_elem: F)
405391
where
@@ -410,7 +396,6 @@ where
410396
}
411397
}
412398

413-
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
414399
#[inline]
415400
fn visit_opt<T, F>(opt: &mut Option<T>, mut visit_elem: F)
416401
where
@@ -421,25 +406,21 @@ where
421406
}
422407
}
423408

424-
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
425409
fn visit_attrs<T: MutVisitor>(vis: &mut T, attrs: &mut AttrVec) {
426410
for attr in attrs.iter_mut() {
427411
vis.visit_attribute(attr);
428412
}
429413
}
430414

431-
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
432415
#[allow(unused)]
433416
fn visit_exprs<T: MutVisitor>(vis: &mut T, exprs: &mut Vec<P<Expr>>) {
434417
exprs.flat_map_in_place(|expr| vis.filter_map_expr(expr))
435418
}
436419

437-
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
438420
fn visit_thin_exprs<T: MutVisitor>(vis: &mut T, exprs: &mut ThinVec<P<Expr>>) {
439421
exprs.flat_map_in_place(|expr| vis.filter_map_expr(expr))
440422
}
441423

442-
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
443424
fn visit_attr_args<T: MutVisitor>(vis: &mut T, args: &mut AttrArgs) {
444425
match args {
445426
AttrArgs::Empty => {}
@@ -451,7 +432,6 @@ fn visit_attr_args<T: MutVisitor>(vis: &mut T, args: &mut AttrArgs) {
451432
}
452433
}
453434

454-
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
455435
fn visit_delim_args<T: MutVisitor>(vis: &mut T, args: &mut DelimArgs) {
456436
let DelimArgs { dspan, delim: _, tokens: _ } = args;
457437
let DelimSpan { open, close } = dspan;
@@ -535,10 +515,10 @@ pub fn walk_ty<T: MutVisitor>(vis: &mut T, ty: &mut P<Ty>) {
535515
TyKind::Infer | TyKind::ImplicitSelf | TyKind::Dummy | TyKind::Never | TyKind::CVarArgs => {
536516
}
537517
TyKind::Slice(ty) => vis.visit_ty(ty),
538-
TyKind::Ptr(mt) => vis.visit_mt(mt),
539-
TyKind::Ref(lt, mt) | TyKind::PinnedRef(lt, mt) => {
518+
TyKind::Ptr(MutTy { ty, mutbl: _ }) => vis.visit_ty(ty),
519+
TyKind::Ref(lt, MutTy { ty, mutbl: _ }) | TyKind::PinnedRef(lt, MutTy { ty, mutbl: _ }) => {
540520
visit_opt(lt, |lt| vis.visit_lifetime(lt));
541-
vis.visit_mt(mt);
521+
vis.visit_ty(ty);
542522
}
543523
TyKind::BareFn(bft) => {
544524
let BareFnTy { safety, ext: _, generic_params, decl, decl_span } = bft.deref_mut();
@@ -1019,10 +999,6 @@ pub fn walk_flat_map_expr_field<T: MutVisitor>(
1019999
smallvec![f]
10201000
}
10211001

1022-
fn walk_mt<T: MutVisitor>(vis: &mut T, MutTy { ty, mutbl: _ }: &mut MutTy) {
1023-
vis.visit_ty(ty);
1024-
}
1025-
10261002
pub fn walk_block<T: MutVisitor>(vis: &mut T, block: &mut P<Block>) {
10271003
let Block { id, stmts, rules: _, span, tokens: _ } = block.deref_mut();
10281004
vis.visit_id(id);
@@ -1041,78 +1017,6 @@ pub fn walk_item_kind<K: WalkItemKind>(
10411017
kind.walk(span, id, visibility, ctxt, vis)
10421018
}
10431019

1044-
impl WalkItemKind for AssocItemKind {
1045-
type Ctxt = AssocCtxt;
1046-
fn walk<V: MutVisitor>(
1047-
&mut self,
1048-
span: Span,
1049-
id: NodeId,
1050-
visibility: &mut Visibility,
1051-
ctxt: Self::Ctxt,
1052-
visitor: &mut V,
1053-
) {
1054-
match self {
1055-
AssocItemKind::Const(item) => {
1056-
walk_const_item(visitor, item);
1057-
}
1058-
AssocItemKind::Fn(func) => {
1059-
visitor.visit_fn(FnKind::Fn(FnCtxt::Assoc(ctxt), visibility, &mut *func), span, id);
1060-
}
1061-
AssocItemKind::Type(box TyAlias {
1062-
defaultness,
1063-
ident,
1064-
generics,
1065-
where_clauses,
1066-
bounds,
1067-
ty,
1068-
}) => {
1069-
visit_defaultness(visitor, defaultness);
1070-
visitor.visit_ident(ident);
1071-
visitor.visit_generics(generics);
1072-
visit_bounds(visitor, bounds, BoundKind::Bound);
1073-
visit_opt(ty, |ty| visitor.visit_ty(ty));
1074-
walk_ty_alias_where_clauses(visitor, where_clauses);
1075-
}
1076-
AssocItemKind::MacCall(mac) => visitor.visit_mac_call(mac),
1077-
AssocItemKind::Delegation(box Delegation {
1078-
id,
1079-
qself,
1080-
path,
1081-
ident,
1082-
rename,
1083-
body,
1084-
from_glob: _,
1085-
}) => {
1086-
visitor.visit_id(id);
1087-
visitor.visit_qself(qself);
1088-
visitor.visit_path(path);
1089-
visitor.visit_ident(ident);
1090-
if let Some(rename) = rename {
1091-
visitor.visit_ident(rename);
1092-
}
1093-
if let Some(body) = body {
1094-
visitor.visit_block(body);
1095-
}
1096-
}
1097-
AssocItemKind::DelegationMac(box DelegationMac { qself, prefix, suffixes, body }) => {
1098-
visitor.visit_qself(qself);
1099-
visitor.visit_path(prefix);
1100-
if let Some(suffixes) = suffixes {
1101-
for (ident, rename) in suffixes {
1102-
visitor.visit_ident(ident);
1103-
if let Some(rename) = rename {
1104-
visitor.visit_ident(rename);
1105-
}
1106-
}
1107-
}
1108-
if let Some(body) = body {
1109-
visitor.visit_block(body);
1110-
}
1111-
}
1112-
}
1113-
}
1114-
}
1115-
11161020
pub fn walk_crate<T: MutVisitor>(vis: &mut T, krate: &mut Crate) {
11171021
let Crate { attrs, items, spans, id, is_placeholder: _ } = krate;
11181022
vis.visit_id(id);
@@ -1123,14 +1027,6 @@ pub fn walk_crate<T: MutVisitor>(vis: &mut T, krate: &mut Crate) {
11231027
vis.visit_span(inject_use_span);
11241028
}
11251029

1126-
pub fn walk_item(visitor: &mut impl MutVisitor, item: &mut P<Item<impl WalkItemKind<Ctxt = ()>>>) {
1127-
walk_item_ctxt(visitor, item, ())
1128-
}
1129-
1130-
pub fn walk_assoc_item(visitor: &mut impl MutVisitor, item: &mut P<AssocItem>, ctxt: AssocCtxt) {
1131-
walk_item_ctxt(visitor, item, ctxt)
1132-
}
1133-
11341030
pub fn walk_flat_map_item(vis: &mut impl MutVisitor, mut item: P<Item>) -> SmallVec<[P<Item>; 1]> {
11351031
vis.visit_item(&mut item);
11361032
smallvec![item]
@@ -1153,53 +1049,6 @@ pub fn walk_flat_map_assoc_item(
11531049
smallvec![item]
11541050
}
11551051

1156-
impl WalkItemKind for ForeignItemKind {
1157-
type Ctxt = ();
1158-
fn walk<V: MutVisitor>(
1159-
&mut self,
1160-
span: Span,
1161-
id: NodeId,
1162-
visibility: &mut Visibility,
1163-
_ctxt: Self::Ctxt,
1164-
visitor: &mut V,
1165-
) {
1166-
match self {
1167-
ForeignItemKind::Static(box StaticItem {
1168-
ident,
1169-
ty,
1170-
mutability: _,
1171-
expr,
1172-
safety: _,
1173-
define_opaque,
1174-
}) => {
1175-
visitor.visit_ident(ident);
1176-
visitor.visit_ty(ty);
1177-
visit_opt(expr, |expr| visitor.visit_expr(expr));
1178-
walk_define_opaques(visitor, define_opaque);
1179-
}
1180-
ForeignItemKind::Fn(func) => {
1181-
visitor.visit_fn(FnKind::Fn(FnCtxt::Foreign, visibility, &mut *func), span, id);
1182-
}
1183-
ForeignItemKind::TyAlias(box TyAlias {
1184-
defaultness,
1185-
ident,
1186-
generics,
1187-
where_clauses,
1188-
bounds,
1189-
ty,
1190-
}) => {
1191-
visit_defaultness(visitor, defaultness);
1192-
visitor.visit_ident(ident);
1193-
visitor.visit_generics(generics);
1194-
visit_bounds(visitor, bounds, BoundKind::Bound);
1195-
visit_opt(ty, |ty| visitor.visit_ty(ty));
1196-
walk_ty_alias_where_clauses(visitor, where_clauses);
1197-
}
1198-
ForeignItemKind::MacCall(mac) => visitor.visit_mac_call(mac),
1199-
}
1200-
}
1201-
}
1202-
12031052
pub fn walk_pat<T: MutVisitor>(vis: &mut T, pat: &mut P<Pat>) {
12041053
let Pat { id, kind, span, tokens: _ } = pat.deref_mut();
12051054
vis.visit_id(id);
@@ -1500,11 +1349,9 @@ pub fn walk_expr<T: MutVisitor>(vis: &mut T, Expr { kind, id, span, attrs, token
15001349
vis.visit_span(span);
15011350
}
15021351

1503-
pub fn noop_filter_map_expr<T: MutVisitor>(vis: &mut T, mut e: P<Expr>) -> Option<P<Expr>> {
1504-
Some({
1505-
vis.visit_expr(&mut e);
1506-
e
1507-
})
1352+
pub fn walk_filter_map_expr<T: MutVisitor>(vis: &mut T, mut e: P<Expr>) -> Option<P<Expr>> {
1353+
vis.visit_expr(&mut e);
1354+
Some(e)
15081355
}
15091356

15101357
pub fn walk_flat_map_stmt<T: MutVisitor>(

0 commit comments

Comments
 (0)