Skip to content

Commit 5b8cf49

Browse files
committed
Auto merge of #98206 - eggyal:align-to-chalk-folding-api, r=jackh726
Split TypeVisitable from TypeFoldable Impl of rust-lang/compiler-team#520 following MCP approval. r? `@ghost`
2 parents f342bea + 4f0a647 commit 5b8cf49

File tree

171 files changed

+1481
-1306
lines changed

Some content is hidden

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

171 files changed

+1481
-1306
lines changed

compiler/rustc_borrowck/src/constraint_generation.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use rustc_middle::mir::{
55
BasicBlock, BasicBlockData, Body, Local, Location, Place, PlaceRef, ProjectionElem, Rvalue,
66
SourceInfo, Statement, StatementKind, Terminator, TerminatorKind, UserTypeProjection,
77
};
8-
use rustc_middle::ty::fold::TypeFoldable;
98
use rustc_middle::ty::subst::SubstsRef;
9+
use rustc_middle::ty::visit::TypeVisitable;
1010
use rustc_middle::ty::{self, RegionVid, Ty};
1111

1212
use crate::{
@@ -163,7 +163,7 @@ impl<'cx, 'cg, 'tcx> ConstraintGeneration<'cx, 'cg, 'tcx> {
163163
/// `location`.
164164
fn add_regular_live_constraint<T>(&mut self, live_ty: T, location: Location)
165165
where
166-
T: TypeFoldable<'tcx>,
166+
T: TypeVisitable<'tcx>,
167167
{
168168
debug!("add_regular_live_constraint(live_ty={:?}, location={:?})", live_ty, location);
169169

compiler/rustc_borrowck/src/region_infer/mod.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ use rustc_middle::mir::{
1919
};
2020
use rustc_middle::traits::ObligationCause;
2121
use rustc_middle::traits::ObligationCauseCode;
22-
use rustc_middle::ty::{self, subst::SubstsRef, RegionVid, Ty, TyCtxt, TypeFoldable};
22+
use rustc_middle::ty::{
23+
self, subst::SubstsRef, RegionVid, Ty, TyCtxt, TypeFoldable, TypeVisitable,
24+
};
2325
use rustc_span::Span;
2426

2527
use crate::{

compiler/rustc_borrowck/src/region_infer/opaque_types.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ use rustc_data_structures::vec_map::VecMap;
22
use rustc_hir::def_id::DefId;
33
use rustc_hir::OpaqueTyOrigin;
44
use rustc_infer::infer::InferCtxt;
5-
use rustc_middle::ty::{self, OpaqueHiddenType, OpaqueTypeKey, TyCtxt, TypeFoldable};
5+
use rustc_middle::ty::{
6+
self, OpaqueHiddenType, OpaqueTypeKey, TyCtxt, TypeFoldable, TypeVisitable,
7+
};
68
use rustc_trait_selection::opaque_types::InferCtxtExt;
79

810
use super::RegionInferenceContext;

compiler/rustc_borrowck/src/type_check/constraint_conversion.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use rustc_infer::infer::region_constraints::{GenericKind, VerifyBound};
66
use rustc_infer::infer::{self, InferCtxt, SubregionOrigin};
77
use rustc_middle::mir::ConstraintCategory;
88
use rustc_middle::ty::subst::GenericArgKind;
9-
use rustc_middle::ty::TypeFoldable;
9+
use rustc_middle::ty::TypeVisitable;
1010
use rustc_middle::ty::{self, TyCtxt};
1111
use rustc_span::{Span, DUMMY_SP};
1212

compiler/rustc_borrowck/src/type_check/liveness/trace.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use rustc_index::bit_set::HybridBitSet;
33
use rustc_index::interval::IntervalSet;
44
use rustc_infer::infer::canonical::QueryRegionConstraints;
55
use rustc_middle::mir::{BasicBlock, Body, ConstraintCategory, Local, Location};
6-
use rustc_middle::ty::{Ty, TypeFoldable};
6+
use rustc_middle::ty::{Ty, TypeVisitable};
77
use rustc_trait_selection::traits::query::dropck_outlives::DropckOutlivesResult;
88
use rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives;
99
use rustc_trait_selection::traits::query::type_op::{TypeOp, TypeOpOutput};
@@ -477,7 +477,7 @@ impl<'tcx> LivenessContext<'_, '_, '_, 'tcx> {
477477
/// points `live_at`.
478478
fn add_use_live_facts_for(
479479
&mut self,
480-
value: impl TypeFoldable<'tcx>,
480+
value: impl TypeVisitable<'tcx>,
481481
live_at: &IntervalSet<PointIndex>,
482482
) {
483483
debug!("add_use_live_facts_for(value={:?})", value);
@@ -542,7 +542,7 @@ impl<'tcx> LivenessContext<'_, '_, '_, 'tcx> {
542542
fn make_all_regions_live(
543543
elements: &RegionValueElements,
544544
typeck: &mut TypeChecker<'_, 'tcx>,
545-
value: impl TypeFoldable<'tcx>,
545+
value: impl TypeVisitable<'tcx>,
546546
live_at: &IntervalSet<PointIndex>,
547547
) {
548548
debug!("make_all_regions_live(value={:?})", value);

compiler/rustc_borrowck/src/type_check/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ use rustc_middle::mir::AssertKind;
2727
use rustc_middle::mir::*;
2828
use rustc_middle::ty::adjustment::PointerCast;
2929
use rustc_middle::ty::cast::CastTy;
30-
use rustc_middle::ty::fold::TypeFoldable;
3130
use rustc_middle::ty::subst::{GenericArgKind, SubstsRef, UserSubsts};
31+
use rustc_middle::ty::visit::TypeVisitable;
3232
use rustc_middle::ty::{
3333
self, CanonicalUserTypeAnnotation, CanonicalUserTypeAnnotations, OpaqueHiddenType,
3434
OpaqueTypeKey, RegionVid, ToPredicate, Ty, TyCtxt, UserType, UserTypeAnnotationIndex,

compiler/rustc_codegen_cranelift/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ mod prelude {
7979
pub(crate) use rustc_middle::ty::layout::{self, LayoutOf, TyAndLayout};
8080
pub(crate) use rustc_middle::ty::{
8181
self, FloatTy, Instance, InstanceDef, IntTy, ParamEnv, Ty, TyCtxt, TypeAndMut,
82-
TypeFoldable, UintTy,
82+
TypeFoldable, TypeVisitable, UintTy,
8383
};
8484
pub(crate) use rustc_target::abi::{Abi, Scalar, Size, VariantIdx};
8585

compiler/rustc_codegen_gcc/src/callee.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use gccjit::{FunctionType, RValue};
22
use rustc_codegen_ssa::traits::BaseTypeMethods;
3-
use rustc_middle::ty::{self, Instance, TypeFoldable};
3+
use rustc_middle::ty::{self, Instance, TypeVisitable};
44
use rustc_middle::ty::layout::{FnAbiOf, HasTyCtxt};
55

66
use crate::abi::FnAbiGccExt;

compiler/rustc_codegen_gcc/src/mono_item.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use rustc_codegen_ssa::traits::PreDefineMethods;
22
use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags;
33
use rustc_middle::mir::mono::{Linkage, Visibility};
4-
use rustc_middle::ty::{self, Instance, TypeFoldable};
4+
use rustc_middle::ty::{self, Instance, TypeVisitable};
55
use rustc_middle::ty::layout::{FnAbiOf, LayoutOf};
66
use rustc_span::def_id::DefId;
77

compiler/rustc_codegen_gcc/src/type_of.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::fmt::Write;
33
use gccjit::{Struct, Type};
44
use crate::rustc_codegen_ssa::traits::{BaseTypeMethods, DerivedTypeMethods, LayoutTypeMethods};
55
use rustc_middle::bug;
6-
use rustc_middle::ty::{self, Ty, TypeFoldable};
6+
use rustc_middle::ty::{self, Ty, TypeVisitable};
77
use rustc_middle::ty::layout::{FnAbiOf, LayoutOf, TyAndLayout};
88
use rustc_middle::ty::print::with_no_trimmed_paths;
99
use rustc_target::abi::{self, Abi, F32, F64, FieldsShape, Int, Integer, Pointer, PointeeInfo, Size, TyAbiInterface, Variants};

compiler/rustc_codegen_llvm/src/callee.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use rustc_codegen_ssa::traits::*;
1313
use tracing::debug;
1414

1515
use rustc_middle::ty::layout::{FnAbiOf, HasTyCtxt};
16-
use rustc_middle::ty::{self, Instance, TypeFoldable};
16+
use rustc_middle::ty::{self, Instance, TypeVisitable};
1717

1818
/// Codegens a reference to a fn/method item, monomorphizing and
1919
/// inlining as it goes.

compiler/rustc_codegen_llvm/src/debuginfo/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use rustc_index::vec::IndexVec;
2727
use rustc_middle::mir;
2828
use rustc_middle::ty::layout::LayoutOf;
2929
use rustc_middle::ty::subst::{GenericArgKind, SubstsRef};
30-
use rustc_middle::ty::{self, Instance, ParamEnv, Ty, TypeFoldable};
30+
use rustc_middle::ty::{self, Instance, ParamEnv, Ty, TypeVisitable};
3131
use rustc_session::config::{self, DebugInfo};
3232
use rustc_session::Session;
3333
use rustc_span::symbol::Symbol;

compiler/rustc_codegen_llvm/src/mono_item.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use rustc_hir::def_id::{DefId, LOCAL_CRATE};
88
pub use rustc_middle::mir::mono::MonoItem;
99
use rustc_middle::mir::mono::{Linkage, Visibility};
1010
use rustc_middle::ty::layout::{FnAbiOf, LayoutOf};
11-
use rustc_middle::ty::{self, Instance, TypeFoldable};
11+
use rustc_middle::ty::{self, Instance, TypeVisitable};
1212
use rustc_session::config::CrateType;
1313
use rustc_target::spec::RelocModel;
1414
use tracing::debug;

compiler/rustc_codegen_llvm/src/type_of.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use rustc_codegen_ssa::traits::*;
66
use rustc_middle::bug;
77
use rustc_middle::ty::layout::{FnAbiOf, LayoutOf, TyAndLayout};
88
use rustc_middle::ty::print::{with_no_trimmed_paths, with_no_visible_paths};
9-
use rustc_middle::ty::{self, Ty, TypeFoldable};
9+
use rustc_middle::ty::{self, Ty, TypeVisitable};
1010
use rustc_target::abi::{Abi, AddressSpace, Align, FieldsShape};
1111
use rustc_target::abi::{Int, Pointer, F32, F64};
1212
use rustc_target::abi::{PointeeInfo, Scalar, Size, TyAbiInterface, Variants};

compiler/rustc_codegen_ssa/src/mir/block.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use rustc_middle::mir::AssertKind;
1717
use rustc_middle::mir::{self, SwitchTargets};
1818
use rustc_middle::ty::layout::{HasTyCtxt, LayoutOf};
1919
use rustc_middle::ty::print::{with_no_trimmed_paths, with_no_visible_paths};
20-
use rustc_middle::ty::{self, Instance, Ty, TypeFoldable};
20+
use rustc_middle::ty::{self, Instance, Ty, TypeVisitable};
2121
use rustc_span::source_map::Span;
2222
use rustc_span::{sym, Symbol};
2323
use rustc_symbol_mangling::typeid_for_fnabi;

compiler/rustc_codegen_ssa/src/mir/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::traits::*;
22
use rustc_middle::mir;
33
use rustc_middle::mir::interpret::ErrorHandled;
44
use rustc_middle::ty::layout::{FnAbiOf, HasTyCtxt, TyAndLayout};
5-
use rustc_middle::ty::{self, Instance, Ty, TypeFoldable};
5+
use rustc_middle::ty::{self, Instance, Ty, TypeFoldable, TypeVisitable};
66
use rustc_symbol_mangling::typeid_for_fnabi;
77
use rustc_target::abi::call::{FnAbi, PassMode};
88

compiler/rustc_const_eval/src/interpret/util.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use rustc_middle::mir::interpret::InterpResult;
2-
use rustc_middle::ty::{self, Ty, TyCtxt, TypeFoldable, TypeSuperFoldable, TypeVisitor};
2+
use rustc_middle::ty::{self, Ty, TyCtxt, TypeSuperVisitable, TypeVisitable, TypeVisitor};
33
use std::convert::TryInto;
44
use std::ops::ControlFlow;
55

@@ -10,7 +10,7 @@ use std::ops::ControlFlow;
1010
/// case these parameters are unused.
1111
pub(crate) fn ensure_monomorphic_enough<'tcx, T>(tcx: TyCtxt<'tcx>, ty: T) -> InterpResult<'tcx>
1212
where
13-
T: TypeFoldable<'tcx>,
13+
T: TypeVisitable<'tcx>,
1414
{
1515
debug!("ensure_monomorphic_enough: ty={:?}", ty);
1616
if !ty.needs_subst() {

compiler/rustc_const_eval/src/transform/check_consts/check.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use rustc_middle::mir::visit::{MutatingUseContext, NonMutatingUseContext, PlaceC
1010
use rustc_middle::mir::*;
1111
use rustc_middle::ty::subst::{GenericArgKind, InternalSubsts};
1212
use rustc_middle::ty::{self, adjustment::PointerCast, Instance, InstanceDef, Ty, TyCtxt};
13-
use rustc_middle::ty::{Binder, TraitPredicate, TraitRef, TypeFoldable};
13+
use rustc_middle::ty::{Binder, TraitPredicate, TraitRef, TypeVisitable};
1414
use rustc_mir_dataflow::{self, Analysis};
1515
use rustc_span::{sym, Span, Symbol};
1616
use rustc_trait_selection::traits::error_reporting::InferCtxtExt;

compiler/rustc_const_eval/src/transform/promote_consts.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use rustc_middle::mir::traversal::ReversePostorderIter;
1717
use rustc_middle::mir::visit::{MutVisitor, MutatingUseContext, PlaceContext, Visitor};
1818
use rustc_middle::mir::*;
1919
use rustc_middle::ty::subst::InternalSubsts;
20-
use rustc_middle::ty::{self, List, TyCtxt, TypeFoldable};
20+
use rustc_middle::ty::{self, List, TyCtxt, TypeVisitable};
2121
use rustc_span::Span;
2222

2323
use rustc_index::vec::{Idx, IndexVec};

compiler/rustc_const_eval/src/transform/validate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use rustc_middle::mir::{
1212
Statement, StatementKind, Terminator, TerminatorKind, UnOp, START_BLOCK,
1313
};
1414
use rustc_middle::ty::fold::BottomUpFolder;
15-
use rustc_middle::ty::{self, InstanceDef, ParamEnv, Ty, TyCtxt, TypeFoldable};
15+
use rustc_middle::ty::{self, InstanceDef, ParamEnv, Ty, TyCtxt, TypeFoldable, TypeVisitable};
1616
use rustc_mir_dataflow::impls::MaybeStorageLive;
1717
use rustc_mir_dataflow::storage::always_live_locals;
1818
use rustc_mir_dataflow::{Analysis, ResultsCursor};

compiler/rustc_infer/src/infer/combine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use rustc_middle::traits::ObligationCause;
3737
use rustc_middle::ty::error::{ExpectedFound, TypeError};
3838
use rustc_middle::ty::relate::{self, Relate, RelateResult, TypeRelation};
3939
use rustc_middle::ty::subst::SubstsRef;
40-
use rustc_middle::ty::{self, InferConst, ToPredicate, Ty, TyCtxt, TypeFoldable};
40+
use rustc_middle::ty::{self, InferConst, ToPredicate, Ty, TyCtxt, TypeVisitable};
4141
use rustc_middle::ty::{IntType, UintType};
4242
use rustc_span::{Span, DUMMY_SP};
4343

compiler/rustc_infer/src/infer/error_reporting/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ use rustc_middle::dep_graph::DepContext;
6868
use rustc_middle::ty::print::with_no_trimmed_paths;
6969
use rustc_middle::ty::{
7070
self, error::TypeError, Binder, List, Region, Subst, Ty, TyCtxt, TypeFoldable,
71-
TypeSuperFoldable,
71+
TypeSuperVisitable, TypeVisitable,
7272
};
7373
use rustc_span::{sym, symbol::kw, BytePos, DesugaringKind, Pos, Span};
7474
use rustc_target::spec::abi;
@@ -1540,7 +1540,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
15401540
}
15411541
}
15421542

1543-
impl<'tcx> ty::fold::TypeVisitor<'tcx> for OpaqueTypesVisitor<'tcx> {
1543+
impl<'tcx> ty::visit::TypeVisitor<'tcx> for OpaqueTypesVisitor<'tcx> {
15441544
fn visit_ty(&mut self, t: Ty<'tcx>) -> ControlFlow<Self::BreakTy> {
15451545
if let Some((kind, def_id)) = TyCategory::from_ty(self.tcx, t) {
15461546
let span = self.tcx.def_span(def_id);

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/static_impl_trait.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use rustc_hir::def_id::DefId;
1010
use rustc_hir::intravisit::{walk_ty, Visitor};
1111
use rustc_hir::{self as hir, GenericBound, Item, ItemKind, Lifetime, LifetimeName, Node, TyKind};
1212
use rustc_middle::ty::{
13-
self, AssocItemContainer, StaticLifetimeVisitor, Ty, TyCtxt, TypeSuperFoldable, TypeVisitor,
13+
self, AssocItemContainer, StaticLifetimeVisitor, Ty, TyCtxt, TypeSuperVisitable, TypeVisitor,
1414
};
1515
use rustc_span::symbol::Ident;
1616
use rustc_span::Span;

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/trait_impl_difference.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use rustc_hir::def_id::{DefId, LocalDefId};
1111
use rustc_hir::intravisit::Visitor;
1212
use rustc_middle::hir::nested_filter;
1313
use rustc_middle::ty::print::RegionHighlightMode;
14-
use rustc_middle::ty::{self, Ty, TyCtxt, TypeSuperFoldable, TypeVisitor};
14+
use rustc_middle::ty::{self, Ty, TyCtxt, TypeSuperVisitable, TypeVisitor};
1515
use rustc_span::{Span, Symbol};
1616

1717
use std::ops::ControlFlow;
@@ -88,7 +88,7 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
8888
}
8989
}
9090

91-
impl<'tcx> ty::fold::TypeVisitor<'tcx> for HighlightBuilder<'tcx> {
91+
impl<'tcx> ty::visit::TypeVisitor<'tcx> for HighlightBuilder<'tcx> {
9292
fn visit_region(&mut self, r: ty::Region<'tcx>) -> ControlFlow<Self::BreakTy> {
9393
if !r.has_name() && self.counter <= 3 {
9494
self.highlight.highlighting_region(r, self.counter);

compiler/rustc_infer/src/infer/error_reporting/nice_region_error/util.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::infer::error_reporting::nice_region_error::NiceRegionError;
55
use crate::infer::TyCtxt;
66
use rustc_hir as hir;
77
use rustc_hir::def_id::LocalDefId;
8-
use rustc_middle::ty::{self, Binder, DefIdTree, Region, Ty, TypeFoldable};
8+
use rustc_middle::ty::{self, Binder, DefIdTree, Region, Ty, TypeVisitable};
99
use rustc_span::Span;
1010

1111
/// Information about the anonymous region we are searching for.
@@ -142,7 +142,7 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
142142

143143
fn includes_region(
144144
&self,
145-
ty: Binder<'tcx, impl TypeFoldable<'tcx>>,
145+
ty: Binder<'tcx, impl TypeVisitable<'tcx>>,
146146
region: ty::BoundRegionKind,
147147
) -> bool {
148148
let late_bound_regions = self.tcx().collect_referenced_late_bound_regions(&ty);

compiler/rustc_infer/src/infer/freshen.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use super::InferCtxt;
3434
use rustc_data_structures::fx::FxHashMap;
3535
use rustc_middle::infer::unify_key::ToType;
3636
use rustc_middle::ty::fold::TypeFolder;
37-
use rustc_middle::ty::{self, Ty, TyCtxt, TypeFoldable, TypeSuperFoldable};
37+
use rustc_middle::ty::{self, Ty, TyCtxt, TypeFoldable, TypeSuperFoldable, TypeVisitable};
3838
use std::collections::hash_map::Entry;
3939

4040
pub struct TypeFreshener<'a, 'tcx> {

compiler/rustc_infer/src/infer/mod.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use rustc_middle::ty::error::{ExpectedFound, TypeError};
2525
use rustc_middle::ty::fold::{TypeFoldable, TypeFolder, TypeSuperFoldable};
2626
use rustc_middle::ty::relate::RelateResult;
2727
use rustc_middle::ty::subst::{GenericArg, GenericArgKind, InternalSubsts, SubstsRef};
28+
use rustc_middle::ty::visit::TypeVisitable;
2829
pub use rustc_middle::ty::IntVarValue;
2930
use rustc_middle::ty::{self, GenericParamDefKind, InferConst, Ty, TyCtxt};
3031
use rustc_middle::ty::{ConstVid, FloatVid, IntVid, TyVid};
@@ -318,7 +319,7 @@ pub struct InferCtxt<'a, 'tcx> {
318319
}
319320

320321
/// See the `error_reporting` module for more details.
321-
#[derive(Clone, Copy, Debug, PartialEq, Eq, TypeFoldable)]
322+
#[derive(Clone, Copy, Debug, PartialEq, Eq, TypeFoldable, TypeVisitable)]
322323
pub enum ValuePairs<'tcx> {
323324
Regions(ExpectedFound<ty::Region<'tcx>>),
324325
Terms(ExpectedFound<ty::Term<'tcx>>),
@@ -1438,7 +1439,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
14381439
/// `resolve_vars_if_possible()`.
14391440
pub fn unresolved_type_vars<T>(&self, value: &T) -> Option<(Ty<'tcx>, Option<Span>)>
14401441
where
1441-
T: TypeFoldable<'tcx>,
1442+
T: TypeVisitable<'tcx>,
14421443
{
14431444
value.visit_with(&mut resolve::UnresolvedTypeFinder::new(self)).break_value()
14441445
}

compiler/rustc_infer/src/infer/nll_relate/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ use crate::infer::{ConstVarValue, ConstVariableValue};
2727
use crate::infer::{TypeVariableOrigin, TypeVariableOriginKind};
2828
use rustc_data_structures::fx::FxHashMap;
2929
use rustc_middle::ty::error::TypeError;
30-
use rustc_middle::ty::fold::{TypeFoldable, TypeSuperFoldable, TypeVisitor};
3130
use rustc_middle::ty::relate::{self, Relate, RelateResult, TypeRelation};
31+
use rustc_middle::ty::visit::{TypeSuperVisitable, TypeVisitable, TypeVisitor};
3232
use rustc_middle::ty::{self, InferConst, Ty, TyCtxt};
3333
use rustc_span::Span;
3434
use std::fmt::Debug;
@@ -810,7 +810,7 @@ struct ScopeInstantiator<'me, 'tcx> {
810810
}
811811

812812
impl<'me, 'tcx> TypeVisitor<'tcx> for ScopeInstantiator<'me, 'tcx> {
813-
fn visit_binder<T: TypeFoldable<'tcx>>(
813+
fn visit_binder<T: TypeVisitable<'tcx>>(
814814
&mut self,
815815
t: &ty::Binder<'tcx, T>,
816816
) -> ControlFlow<Self::BreakTy> {

compiler/rustc_infer/src/infer/opaque_types.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ use rustc_middle::traits::ObligationCause;
99
use rustc_middle::ty::fold::BottomUpFolder;
1010
use rustc_middle::ty::subst::{GenericArgKind, Subst};
1111
use rustc_middle::ty::{
12-
self, OpaqueHiddenType, OpaqueTypeKey, Ty, TyCtxt, TypeFoldable, TypeSuperFoldable, TypeVisitor,
12+
self, OpaqueHiddenType, OpaqueTypeKey, Ty, TyCtxt, TypeFoldable, TypeSuperVisitable,
13+
TypeVisitable, TypeVisitor,
1314
};
1415
use rustc_span::Span;
1516

@@ -461,7 +462,7 @@ impl<'tcx, OP> TypeVisitor<'tcx> for ConstrainOpaqueTypeRegionVisitor<OP>
461462
where
462463
OP: FnMut(ty::Region<'tcx>),
463464
{
464-
fn visit_binder<T: TypeFoldable<'tcx>>(
465+
fn visit_binder<T: TypeVisitable<'tcx>>(
465466
&mut self,
466467
t: &ty::Binder<'tcx, T>,
467468
) -> ControlFlow<Self::BreakTy> {

compiler/rustc_infer/src/infer/outlives/components.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use rustc_data_structures::sso::SsoHashSet;
66
use rustc_middle::ty::subst::{GenericArg, GenericArgKind};
7-
use rustc_middle::ty::{self, Ty, TyCtxt, TypeFoldable};
7+
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitable};
88
use smallvec::{smallvec, SmallVec};
99

1010
#[derive(Debug)]

compiler/rustc_infer/src/infer/outlives/obligations.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ use crate::infer::{
6969
use crate::traits::{ObligationCause, ObligationCauseCode};
7070
use rustc_data_structures::undo_log::UndoLogs;
7171
use rustc_middle::ty::subst::GenericArgKind;
72-
use rustc_middle::ty::{self, Region, Ty, TyCtxt, TypeFoldable};
72+
use rustc_middle::ty::{self, Region, Ty, TyCtxt, TypeVisitable};
7373
use smallvec::smallvec;
7474

7575
impl<'cx, 'tcx> InferCtxt<'cx, 'tcx> {

compiler/rustc_infer/src/infer/outlives/test_type_match.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::collections::hash_map::Entry;
22

33
use rustc_data_structures::fx::FxHashMap;
4-
use rustc_middle::ty::TypeFoldable;
4+
use rustc_middle::ty::TypeVisitable;
55
use rustc_middle::ty::{
66
self,
77
error::TypeError,

0 commit comments

Comments
 (0)