Skip to content

Commit b0a581d

Browse files
committed
rename the lower_ty and lower_ty_direct to lower_ty_and_alloc and
`lower_ty`
1 parent 4fa80a5 commit b0a581d

5 files changed

Lines changed: 70 additions & 53 deletions

File tree

compiler/rustc_ast_lowering/src/block.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
9898
// Let statements are allowed to have impl trait in bindings.
9999
let super_ = l.super_.map(|span| self.lower_span(span));
100100
let ty = l.ty.as_ref().map(|t| {
101-
self.lower_ty(t, self.impl_trait_in_bindings_ctxt(ImplTraitPosition::Variable))
101+
self.lower_ty_alloc(t, self.impl_trait_in_bindings_ctxt(ImplTraitPosition::Variable))
102102
});
103103
let init = l.kind.init().map(|init| self.lower_expr(init));
104104
let hir_id = self.lower_node_id(l.id);

compiler/rustc_ast_lowering/src/expr.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -158,14 +158,14 @@ impl<'hir> LoweringContext<'_, 'hir> {
158158
}
159159
ExprKind::Cast(expr, ty) => {
160160
let expr = self.lower_expr(expr);
161-
let ty =
162-
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::Cast));
161+
let ty = self
162+
.lower_ty_alloc(ty, ImplTraitContext::Disallowed(ImplTraitPosition::Cast));
163163
hir::ExprKind::Cast(expr, ty)
164164
}
165165
ExprKind::Type(expr, ty) => {
166166
let expr = self.lower_expr(expr);
167-
let ty =
168-
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::Cast));
167+
let ty = self
168+
.lower_ty_alloc(ty, ImplTraitContext::Disallowed(ImplTraitPosition::Cast));
169169
hir::ExprKind::Type(expr, ty)
170170
}
171171
ExprKind::AddrOf(k, m, ohs) => {
@@ -335,7 +335,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
335335
}
336336
ExprKind::FormatArgs(fmt) => self.lower_format_args(e.span, fmt),
337337
ExprKind::OffsetOf(container, fields) => hir::ExprKind::OffsetOf(
338-
self.lower_ty(
338+
self.lower_ty_alloc(
339339
container,
340340
ImplTraitContext::Disallowed(ImplTraitPosition::OffsetOf),
341341
),
@@ -371,7 +371,10 @@ impl<'hir> LoweringContext<'_, 'hir> {
371371
*kind,
372372
self.lower_expr(expr),
373373
ty.as_ref().map(|ty| {
374-
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::Cast))
374+
self.lower_ty_alloc(
375+
ty,
376+
ImplTraitContext::Disallowed(ImplTraitPosition::Cast),
377+
)
375378
}),
376379
),
377380

@@ -617,7 +620,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
617620
});
618621

619622
if let Some(ty) = opt_ty {
620-
let ty = self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::Path));
623+
let ty = self.lower_ty_alloc(ty, ImplTraitContext::Disallowed(ImplTraitPosition::Path));
621624
let block_expr = self.arena.alloc(self.expr_block(whole_block));
622625
hir::ExprKind::Type(block_expr, ty)
623626
} else {

compiler/rustc_ast_lowering/src/item.rs

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,8 @@ impl<'hir> LoweringContext<'_, 'hir> {
264264
define_opaque,
265265
}) => {
266266
let ident = self.lower_ident(*ident);
267-
let ty =
268-
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::StaticTy));
267+
let ty = self
268+
.lower_ty_alloc(ty, ImplTraitContext::Disallowed(ImplTraitPosition::StaticTy));
269269
let body_id = self.lower_const_body(span, e.as_deref());
270270
self.lower_define_opaque(hir_id, define_opaque);
271271
hir::ItemKind::Static(*m, ident, ty, body_id)
@@ -279,8 +279,10 @@ impl<'hir> LoweringContext<'_, 'hir> {
279279
id,
280280
ImplTraitContext::Disallowed(ImplTraitPosition::Generic),
281281
|this| {
282-
let ty = this
283-
.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::ConstTy));
282+
let ty = this.lower_ty_alloc(
283+
ty,
284+
ImplTraitContext::Disallowed(ImplTraitPosition::ConstTy),
285+
);
284286
let rhs = this.lower_const_item_rhs(attrs, rhs.as_ref(), span);
285287
(ty, rhs)
286288
},
@@ -379,7 +381,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
379381
);
380382
this.arena.alloc(this.ty(span, hir::TyKind::Err(guar)))
381383
}
382-
Some(ty) => this.lower_ty(
384+
Some(ty) => this.lower_ty_alloc(
383385
ty,
384386
ImplTraitContext::OpaqueTy {
385387
origin: hir::OpaqueTyOrigin::TyAlias {
@@ -453,7 +455,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
453455
.as_deref()
454456
.map(|of_trait| this.lower_trait_impl_header(of_trait));
455457

456-
let lowered_ty = this.lower_ty(
458+
let lowered_ty = this.lower_ty_alloc(
457459
ty,
458460
ImplTraitContext::Disallowed(ImplTraitPosition::ImplSelf),
459461
);
@@ -758,8 +760,8 @@ impl<'hir> LoweringContext<'_, 'hir> {
758760
safety,
759761
define_opaque,
760762
}) => {
761-
let ty =
762-
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::StaticTy));
763+
let ty = self
764+
.lower_ty_alloc(ty, ImplTraitContext::Disallowed(ImplTraitPosition::StaticTy));
763765
let safety = self.lower_safety(*safety, hir::Safety::Unsafe);
764766
if define_opaque.is_some() {
765767
self.dcx().span_err(i.span, "foreign statics cannot define opaque types");
@@ -870,7 +872,8 @@ impl<'hir> LoweringContext<'_, 'hir> {
870872
&mut self,
871873
(index, f): (usize, &FieldDef),
872874
) -> hir::FieldDef<'hir> {
873-
let ty = self.lower_ty(&f.ty, ImplTraitContext::Disallowed(ImplTraitPosition::FieldTy));
875+
let ty =
876+
self.lower_ty_alloc(&f.ty, ImplTraitContext::Disallowed(ImplTraitPosition::FieldTy));
874877
let hir_id = self.lower_node_id(f.id);
875878
self.lower_attrs(hir_id, &f.attrs, f.span, Target::Field);
876879
hir::FieldDef {
@@ -908,8 +911,10 @@ impl<'hir> LoweringContext<'_, 'hir> {
908911
i.id,
909912
ImplTraitContext::Disallowed(ImplTraitPosition::Generic),
910913
|this| {
911-
let ty = this
912-
.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::ConstTy));
914+
let ty = this.lower_ty_alloc(
915+
ty,
916+
ImplTraitContext::Disallowed(ImplTraitPosition::ConstTy),
917+
);
913918
let rhs = rhs
914919
.as_ref()
915920
.map(|rhs| this.lower_const_item_rhs(attrs, Some(rhs), i.span));
@@ -1008,7 +1013,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
10081013
ImplTraitContext::Disallowed(ImplTraitPosition::Generic),
10091014
|this| {
10101015
let ty = ty.as_ref().map(|x| {
1011-
this.lower_ty(
1016+
this.lower_ty_alloc(
10121017
x,
10131018
ImplTraitContext::Disallowed(ImplTraitPosition::AssocTy),
10141019
)
@@ -1120,8 +1125,10 @@ impl<'hir> LoweringContext<'_, 'hir> {
11201125
i.id,
11211126
ImplTraitContext::Disallowed(ImplTraitPosition::Generic),
11221127
|this| {
1123-
let ty = this
1124-
.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::ConstTy));
1128+
let ty = this.lower_ty_alloc(
1129+
ty,
1130+
ImplTraitContext::Disallowed(ImplTraitPosition::ConstTy),
1131+
);
11251132
this.lower_define_opaque(hir_id, &define_opaque);
11261133
let rhs = this.lower_const_item_rhs(attrs, rhs.as_ref(), i.span);
11271134
hir::ImplItemKind::Const(ty, rhs)
@@ -1180,7 +1187,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
11801187
hir::ImplItemKind::Type(ty)
11811188
}
11821189
Some(ty) => {
1183-
let ty = this.lower_ty(
1190+
let ty = this.lower_ty_alloc(
11841191
ty,
11851192
ImplTraitContext::OpaqueTy {
11861193
origin: hir::OpaqueTyOrigin::TyAlias {
@@ -1916,7 +1923,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
19161923
bound_generic_params,
19171924
hir::GenericParamSource::Binder,
19181925
),
1919-
bounded_ty: self.lower_ty(
1926+
bounded_ty: self.lower_ty_alloc(
19201927
bounded_ty,
19211928
ImplTraitContext::Disallowed(ImplTraitPosition::Bound),
19221929
),
@@ -1945,10 +1952,14 @@ impl<'hir> LoweringContext<'_, 'hir> {
19451952
}
19461953
WherePredicateKind::EqPredicate(WhereEqPredicate { lhs_ty, rhs_ty }) => {
19471954
hir::WherePredicateKind::EqPredicate(hir::WhereEqPredicate {
1948-
lhs_ty: self
1949-
.lower_ty(lhs_ty, ImplTraitContext::Disallowed(ImplTraitPosition::Bound)),
1950-
rhs_ty: self
1951-
.lower_ty(rhs_ty, ImplTraitContext::Disallowed(ImplTraitPosition::Bound)),
1955+
lhs_ty: self.lower_ty_alloc(
1956+
lhs_ty,
1957+
ImplTraitContext::Disallowed(ImplTraitPosition::Bound),
1958+
),
1959+
rhs_ty: self.lower_ty_alloc(
1960+
rhs_ty,
1961+
ImplTraitContext::Disallowed(ImplTraitPosition::Bound),
1962+
),
19521963
})
19531964
}
19541965
});

compiler/rustc_ast_lowering/src/lib.rs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,7 +1125,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
11251125
let kind = match &constraint.kind {
11261126
AssocItemConstraintKind::Equality { term } => {
11271127
let term = match term {
1128-
Term::Ty(ty) => self.lower_ty(ty, itctx).into(),
1128+
Term::Ty(ty) => self.lower_ty_alloc(ty, itctx).into(),
11291129
Term::Const(c) => self.lower_anon_const_to_const_arg(c).into(),
11301130
};
11311131
hir::AssocItemConstraintKind::Equality { term }
@@ -1250,7 +1250,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
12501250
}
12511251
_ => {}
12521252
}
1253-
GenericArg::Type(self.lower_ty(ty, itctx).try_as_ambig_ty().unwrap())
1253+
GenericArg::Type(self.lower_ty_alloc(ty, itctx).try_as_ambig_ty().unwrap())
12541254
}
12551255
ast::GenericArg::Const(ct) => {
12561256
GenericArg::Const(self.lower_anon_const_to_const_arg(ct).try_as_ambig_ct().unwrap())
@@ -1259,8 +1259,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
12591259
}
12601260

12611261
#[instrument(level = "debug", skip(self))]
1262-
fn lower_ty(&mut self, t: &Ty, itctx: ImplTraitContext) -> &'hir hir::Ty<'hir> {
1263-
self.arena.alloc(self.lower_ty_direct(t, itctx))
1262+
fn lower_ty_alloc(&mut self, t: &Ty, itctx: ImplTraitContext) -> &'hir hir::Ty<'hir> {
1263+
self.arena.alloc(self.lower_ty(t, itctx))
12641264
}
12651265

12661266
fn lower_path_ty(
@@ -1324,11 +1324,11 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
13241324
self.ty(span, hir::TyKind::Tup(tys))
13251325
}
13261326

1327-
fn lower_ty_direct(&mut self, t: &Ty, itctx: ImplTraitContext) -> hir::Ty<'hir> {
1327+
fn lower_ty(&mut self, t: &Ty, itctx: ImplTraitContext) -> hir::Ty<'hir> {
13281328
let kind = match &t.kind {
13291329
TyKind::Infer => hir::TyKind::Infer(()),
13301330
TyKind::Err(guar) => hir::TyKind::Err(*guar),
1331-
TyKind::Slice(ty) => hir::TyKind::Slice(self.lower_ty(ty, itctx)),
1331+
TyKind::Slice(ty) => hir::TyKind::Slice(self.lower_ty_alloc(ty, itctx)),
13321332
TyKind::Ptr(mt) => hir::TyKind::Ptr(self.lower_mt(mt, itctx)),
13331333
TyKind::Ref(region, mt) => {
13341334
let lifetime = self.lower_ty_direct_lifetime(t, *region);
@@ -1362,15 +1362,15 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
13621362
let generic_params = self.lower_lifetime_binder(t.id, &f.generic_params);
13631363
hir::TyKind::UnsafeBinder(self.arena.alloc(hir::UnsafeBinderTy {
13641364
generic_params,
1365-
inner_ty: self.lower_ty(&f.inner_ty, itctx),
1365+
inner_ty: self.lower_ty_alloc(&f.inner_ty, itctx),
13661366
}))
13671367
}
13681368
TyKind::Never => hir::TyKind::Never,
13691369
TyKind::Tup(tys) => hir::TyKind::Tup(
1370-
self.arena.alloc_from_iter(tys.iter().map(|ty| self.lower_ty_direct(ty, itctx))),
1370+
self.arena.alloc_from_iter(tys.iter().map(|ty| self.lower_ty(ty, itctx))),
13711371
),
13721372
TyKind::Paren(ty) => {
1373-
return self.lower_ty_direct(ty, itctx);
1373+
return self.lower_ty(ty, itctx);
13741374
}
13751375
TyKind::Path(qself, path) => {
13761376
return self.lower_path_ty(t, qself, path, ParamMode::Explicit, itctx);
@@ -1393,7 +1393,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
13931393
))
13941394
}
13951395
TyKind::Array(ty, length) => hir::TyKind::Array(
1396-
self.lower_ty(ty, itctx),
1396+
self.lower_ty_alloc(ty, itctx),
13971397
self.lower_array_length_to_const_arg(length),
13981398
),
13991399
TyKind::TraitObject(bounds, kind) => {
@@ -1493,7 +1493,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
14931493
}
14941494
}
14951495
TyKind::Pat(ty, pat) => {
1496-
hir::TyKind::Pat(self.lower_ty(ty, itctx), self.lower_ty_pat(pat, ty.span))
1496+
hir::TyKind::Pat(self.lower_ty_alloc(ty, itctx), self.lower_ty_pat(pat, ty.span))
14971497
}
14981498
TyKind::MacCall(_) => {
14991499
span_bug!(t.span, "`TyKind::MacCall` should have been expanded by now")
@@ -1693,7 +1693,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
16931693
ImplTraitContext::Disallowed(ImplTraitPosition::PointerParam)
16941694
}
16951695
};
1696-
self.lower_ty_direct(&param.ty, itctx)
1696+
self.lower_ty(&param.ty, itctx)
16971697
}));
16981698

16991699
let output = match coro {
@@ -1732,7 +1732,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
17321732
ImplTraitContext::Disallowed(ImplTraitPosition::PointerReturn)
17331733
}
17341734
};
1735-
hir::FnRetTy::Return(self.lower_ty(ty, itctx))
1735+
hir::FnRetTy::Return(self.lower_ty_alloc(ty, itctx))
17361736
}
17371737
FnRetTy::Default(span) => hir::FnRetTy::DefaultReturn(self.lower_span(*span)),
17381738
},
@@ -1843,7 +1843,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
18431843
// Not `OpaqueTyOrigin::AsyncFn`: that's only used for the
18441844
// `impl Future` opaque type that `async fn` implicitly
18451845
// generates.
1846-
self.lower_ty(ty, itctx)
1846+
self.lower_ty_alloc(ty, itctx)
18471847
}
18481848
FnRetTy::Default(ret_ty_span) => self.arena.alloc(self.ty_tup(*ret_ty_span, &[])),
18491849
};
@@ -2036,7 +2036,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
20362036
}
20372037
})
20382038
.map(|def| {
2039-
self.lower_ty(
2039+
self.lower_ty_alloc(
20402040
def,
20412041
ImplTraitContext::Disallowed(ImplTraitPosition::GenericDefault),
20422042
)
@@ -2047,8 +2047,10 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
20472047
(hir::ParamName::Plain(self.lower_ident(param.ident)), kind)
20482048
}
20492049
GenericParamKind::Const { ty, span: _, default } => {
2050-
let ty = self
2051-
.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::GenericDefault));
2050+
let ty = self.lower_ty_alloc(
2051+
ty,
2052+
ImplTraitContext::Disallowed(ImplTraitPosition::GenericDefault),
2053+
);
20522054

20532055
// Not only do we deny const param defaults in binders but we also map them to `None`
20542056
// since later compiler stages cannot handle them (and shouldn't need to be able to).
@@ -2198,7 +2200,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
21982200
}
21992201

22002202
fn lower_mt(&mut self, mt: &MutTy, itctx: ImplTraitContext) -> hir::MutTy<'hir> {
2201-
hir::MutTy { ty: self.lower_ty(&mt.ty, itctx), mutbl: mt.mutbl }
2203+
hir::MutTy { ty: self.lower_ty_alloc(&mt.ty, itctx), mutbl: mt.mutbl }
22022204
}
22032205

22042206
#[instrument(level = "debug", skip(self), ret)]

compiler/rustc_ast_lowering/src/path.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
3636
let qself = qself
3737
.as_ref()
3838
// Reject cases like `<impl Trait>::Assoc` and `<impl Trait as Trait>::Assoc`.
39-
.map(|q| self.lower_ty(&q.ty, ImplTraitContext::Disallowed(ImplTraitPosition::Path)));
39+
.map(|q| {
40+
self.lower_ty_alloc(&q.ty, ImplTraitContext::Disallowed(ImplTraitPosition::Path))
41+
});
4042

4143
let partial_res =
4244
self.resolver.get_partial_res(id).unwrap_or_else(|| PartialRes::new(Res::Err));
@@ -510,7 +512,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
510512
// we generally don't permit such things (see #51008).
511513
let ParenthesizedArgs { span, inputs, inputs_span, output } = data;
512514
let inputs = self.arena.alloc_from_iter(inputs.iter().map(|ty| {
513-
self.lower_ty_direct(ty, ImplTraitContext::Disallowed(ImplTraitPosition::FnTraitParam))
515+
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::FnTraitParam))
514516
}));
515517
let output_ty = match output {
516518
// Only allow `impl Trait` in return position. i.e.:
@@ -520,9 +522,9 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
520522
// ```
521523
FnRetTy::Ty(ty) if matches!(itctx, ImplTraitContext::OpaqueTy { .. }) => {
522524
if self.tcx.features().impl_trait_in_fn_trait_return() {
523-
self.lower_ty(ty, itctx)
525+
self.lower_ty_alloc(ty, itctx)
524526
} else {
525-
self.lower_ty(
527+
self.lower_ty_alloc(
526528
ty,
527529
ImplTraitContext::FeatureGated(
528530
ImplTraitPosition::FnTraitReturn,
@@ -531,9 +533,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
531533
)
532534
}
533535
}
534-
FnRetTy::Ty(ty) => {
535-
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::FnTraitReturn))
536-
}
536+
FnRetTy::Ty(ty) => self
537+
.lower_ty_alloc(ty, ImplTraitContext::Disallowed(ImplTraitPosition::FnTraitReturn)),
537538
FnRetTy::Default(_) => self.arena.alloc(self.ty_tup(*span, &[])),
538539
};
539540
let args = smallvec![GenericArg::Type(

0 commit comments

Comments
 (0)