Skip to content

Commit 2e6a9d6

Browse files
committed
Rename AstConv to HIR ty lowering
1 parent 6122397 commit 2e6a9d6

34 files changed

+291
-317
lines changed

compiler/rustc_hir_analysis/src/astconv/bounds.rs

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ use rustc_span::{ErrorGuaranteed, Span};
99
use rustc_trait_selection::traits;
1010
use smallvec::SmallVec;
1111

12-
use crate::astconv::{AstConv, OnlySelfBounds, PredicateFilter};
12+
use crate::astconv::{HirTyLowerer, OnlySelfBounds, PredicateFilter};
1313
use crate::bounds::Bounds;
1414
use crate::errors;
1515

16-
impl<'tcx> dyn AstConv<'tcx> + '_ {
16+
impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
1717
/// Sets `implicitly_sized` to true on `Bounds` if necessary
18-
pub(crate) fn add_implicitly_sized(
18+
pub(crate) fn add_implicit_sized_bound(
1919
&self,
2020
bounds: &mut Bounds<'tcx>,
2121
self_ty: Ty<'tcx>,
@@ -114,7 +114,7 @@ impl<'tcx> dyn AstConv<'tcx> + '_ {
114114
/// `param_ty` and `ast_bounds`. See `instantiate_poly_trait_ref`
115115
/// for more details.
116116
#[instrument(level = "debug", skip(self, ast_bounds, bounds))]
117-
pub(crate) fn add_bounds<'hir, I: Iterator<Item = &'hir hir::GenericBound<'tcx>>>(
117+
pub(crate) fn lower_bounds<'hir, I: Iterator<Item = &'hir hir::GenericBound<'tcx>>>(
118118
&self,
119119
param_ty: Ty<'tcx>,
120120
ast_bounds: I,
@@ -142,7 +142,7 @@ impl<'tcx> dyn AstConv<'tcx> + '_ {
142142
}
143143
hir::TraitBoundModifier::Maybe => continue,
144144
};
145-
let _ = self.instantiate_poly_trait_ref(
145+
let _ = self.lower_poly_trait_ref(
146146
&poly_trait_ref.trait_ref,
147147
poly_trait_ref.span,
148148
constness,
@@ -154,7 +154,7 @@ impl<'tcx> dyn AstConv<'tcx> + '_ {
154154
);
155155
}
156156
hir::GenericBound::Outlives(lifetime) => {
157-
let region = self.ast_region_to_region(lifetime, None);
157+
let region = self.lower_region(lifetime, None);
158158
bounds.push_region_bound(
159159
self.tcx(),
160160
ty::Binder::bind_with_vars(
@@ -199,7 +199,7 @@ impl<'tcx> dyn AstConv<'tcx> + '_ {
199199
PredicateFilter::SelfOnly | PredicateFilter::SelfThatDefines(_) => OnlySelfBounds(true),
200200
};
201201

202-
self.add_bounds(
202+
self.lower_bounds(
203203
param_ty,
204204
ast_bounds.iter().filter(|bound| match filter {
205205
PredicateFilter::All
@@ -232,7 +232,7 @@ impl<'tcx> dyn AstConv<'tcx> + '_ {
232232
/// `trait_ref` here will be `for<'a> T: Iterator`. The `binding` data however is from *inside*
233233
/// the binder (e.g., `&'a u32`) and hence may reference bound regions.
234234
#[instrument(level = "debug", skip(self, bounds, speculative, dup_bindings, path_span))]
235-
pub(super) fn add_predicates_for_ast_type_binding(
235+
pub(super) fn lower_assoc_item_binding(
236236
&self,
237237
hir_ref_id: hir::HirId,
238238
trait_ref: ty::PolyTraitRef<'tcx>,
@@ -271,26 +271,23 @@ impl<'tcx> dyn AstConv<'tcx> + '_ {
271271
ty::AssocKind::Type
272272
};
273273

274-
let candidate = if self.trait_defines_associated_item_named(
275-
trait_ref.def_id(),
276-
assoc_kind,
277-
binding.ident,
278-
) {
279-
// Simple case: The assoc item is defined in the current trait.
280-
trait_ref
281-
} else {
282-
// Otherwise, we have to walk through the supertraits to find
283-
// one that does define it.
284-
self.one_bound_for_assoc_item(
285-
|| traits::supertraits(tcx, trait_ref),
286-
trait_ref.skip_binder().print_only_trait_name(),
287-
None,
288-
assoc_kind,
289-
binding.ident,
290-
path_span,
291-
Some(binding),
292-
)?
293-
};
274+
let candidate =
275+
if self.trait_defines_assoc_item_named(trait_ref.def_id(), assoc_kind, binding.ident) {
276+
// Simple case: The assoc item is defined in the current trait.
277+
trait_ref
278+
} else {
279+
// Otherwise, we have to walk through the supertraits to find
280+
// one that does define it.
281+
self.find_single_bound_for_assoc_item(
282+
|| traits::supertraits(tcx, trait_ref),
283+
trait_ref.skip_binder().print_only_trait_name(),
284+
None,
285+
assoc_kind,
286+
binding.ident,
287+
path_span,
288+
Some(binding),
289+
)?
290+
};
294291

295292
let (assoc_ident, def_scope) =
296293
tcx.adjust_ident_and_get_scope(binding.ident, candidate.def_id(), hir_ref_id);
@@ -418,7 +415,7 @@ impl<'tcx> dyn AstConv<'tcx> + '_ {
418415
infer_args: false,
419416
};
420417

421-
let alias_args = self.create_args_for_associated_item(
418+
let alias_args = self.lower_args_for_assoc_item(
422419
path_span,
423420
assoc_item.def_id,
424421
&item_segment,
@@ -441,7 +438,7 @@ impl<'tcx> dyn AstConv<'tcx> + '_ {
441438
}
442439
hir::TypeBindingKind::Equality { term } => {
443440
let term = match term {
444-
hir::Term::Ty(ty) => self.ast_ty_to_ty(ty).into(),
441+
hir::Term::Ty(ty) => self.lower_ty(ty).into(),
445442
hir::Term::Const(ct) => ty::Const::from_anon_const(tcx, ct.def_id).into(),
446443
};
447444

@@ -506,7 +503,7 @@ impl<'tcx> dyn AstConv<'tcx> + '_ {
506503
// for the `Self` type.
507504
if !only_self_bounds.0 {
508505
let param_ty = Ty::new_alias(tcx, ty::Projection, projection_ty.skip_binder());
509-
self.add_bounds(
506+
self.lower_bounds(
510507
param_ty,
511508
ast_bounds.iter(),
512509
bounds,

compiler/rustc_hir_analysis/src/astconv/errors.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::astconv::AstConv;
1+
use crate::astconv::HirTyLowerer;
22
use crate::errors::{
33
self, AssocTypeBindingNotAllowed, ManualImplementation, MissingTypeParams,
44
ParenthesizedFnTraitExpansion,
@@ -22,7 +22,7 @@ use rustc_span::symbol::{sym, Ident};
2222
use rustc_span::{Span, Symbol, DUMMY_SP};
2323
use rustc_trait_selection::traits::object_safety_violations_for_assoc_item;
2424

25-
impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
25+
impl<'o, 'tcx> dyn HirTyLowerer<'tcx> + 'o {
2626
/// On missing type parameters, emit an E0393 error and provide a structured suggestion using
2727
/// the type parameter's name as a placeholder.
2828
pub(crate) fn complain_about_missing_type_params(
@@ -311,7 +311,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
311311
// FIXME(associated_const_equality): This has quite a few false positives and negatives.
312312
let wrap_in_braces_sugg = if let Some(binding) = binding
313313
&& let hir::TypeBindingKind::Equality { term: hir::Term::Ty(hir_ty) } = binding.kind
314-
&& let ty = self.ast_ty_to_ty(hir_ty)
314+
&& let ty = self.lower_ty(hir_ty)
315315
&& (ty.is_enum() || ty.references_error())
316316
&& tcx.features().associated_const_equality
317317
{
@@ -918,7 +918,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
918918
}
919919

920920
/// Emits an error regarding forbidden type binding associations
921-
pub fn prohibit_assoc_ty_binding(
921+
pub fn prohibit_assoc_item_binding(
922922
tcx: TyCtxt<'_>,
923923
span: Span,
924924
segment: Option<(&hir::PathSegment<'_>, Span)>,

compiler/rustc_hir_analysis/src/astconv/generics.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::IsMethodCall;
22
use crate::astconv::{
3-
errors::prohibit_assoc_ty_binding, CreateInstantiationsForGenericArgsCtxt, ExplicitLateBound,
4-
GenericArgCountMismatch, GenericArgCountResult, GenericArgPosition,
3+
errors::prohibit_assoc_item_binding, ExplicitLateBound, GenericArgCountMismatch,
4+
GenericArgCountResult, GenericArgPosition, GenericArgsLowerer,
55
};
66
use crate::structured_errors::{GenericArgsInfo, StructuredDiagnostic, WrongNumberOfGenericArgs};
77
use rustc_ast::ast::ParamKindOrd;
@@ -177,7 +177,7 @@ pub fn create_args_for_parent_generic_args<'tcx: 'a, 'a>(
177177
has_self: bool,
178178
self_ty: Option<Ty<'tcx>>,
179179
arg_count: &GenericArgCountResult,
180-
ctx: &mut impl CreateInstantiationsForGenericArgsCtxt<'a, 'tcx>,
180+
ctx: &mut impl GenericArgsLowerer<'a, 'tcx>,
181181
) -> GenericArgsRef<'tcx> {
182182
// Collect the segments of the path; we need to instantiate arguments
183183
// for parameters throughout the entire path (wherever there are
@@ -458,7 +458,7 @@ pub(crate) fn check_generic_arg_count(
458458
if gen_pos != GenericArgPosition::Type
459459
&& let Some(b) = gen_args.bindings.first()
460460
{
461-
prohibit_assoc_ty_binding(tcx, b.span, None);
461+
prohibit_assoc_item_binding(tcx, b.span, None);
462462
}
463463

464464
let explicit_late_bound =

compiler/rustc_hir_analysis/src/astconv/lint.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ use rustc_lint_defs::{builtin::BARE_TRAIT_OBJECTS, Applicability};
66
use rustc_span::Span;
77
use rustc_trait_selection::traits::error_reporting::suggestions::NextTypeParamName;
88

9-
use super::AstConv;
9+
use super::HirTyLowerer;
1010

11-
impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
11+
impl<'o, 'tcx> dyn HirTyLowerer<'tcx> + 'o {
1212
/// Make sure that we are in the condition to suggest the blanket implementation.
1313
pub(super) fn maybe_lint_blanket_trait_impl(
1414
&self,

0 commit comments

Comments
 (0)