Skip to content

Commit 8f2fe0f

Browse files
committed
Revert to previous type folding behaviour in an attempt to fix a perf regression
1 parent 0ee5a1a commit 8f2fe0f

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

Diff for: compiler/rustc_middle/src/infer/canonical.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ pub type CanonicalVarInfos<'tcx> = &'tcx List<CanonicalVarInfo<'tcx>>;
4747
impl<'tcx> ty::TypeFoldable<'tcx> for CanonicalVarInfos<'tcx> {
4848
fn try_fold_with<F: ty::FallibleTypeFolder<'tcx>>(
4949
self,
50-
folder: &mut F,
50+
_folder: &mut F,
5151
) -> Result<Self, F::Error> {
52-
ty::util::fold_list(self, folder, |tcx, v| tcx.intern_canonical_var_infos(v))
52+
Ok(self)
5353
}
5454
}
5555

@@ -99,7 +99,6 @@ impl<'tcx> Default for OriginalQueryValues<'tcx> {
9999
/// a copy of the canonical value in some other inference context,
100100
/// with fresh inference variables replacing the canonical values.
101101
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, TyDecodable, TyEncodable, HashStable)]
102-
#[derive(TypeFoldable, TypeVisitable)]
103102
pub struct CanonicalVarInfo<'tcx> {
104103
pub kind: CanonicalVarKind<'tcx>,
105104
}
@@ -125,7 +124,6 @@ impl<'tcx> CanonicalVarInfo<'tcx> {
125124
/// in the type-theory sense of the term -- i.e., a "meta" type system
126125
/// that analyzes type-like values.
127126
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, TyDecodable, TyEncodable, HashStable)]
128-
#[derive(TypeFoldable, TypeVisitable)]
129127
pub enum CanonicalVarKind<'tcx> {
130128
/// Some kind of type inference variable.
131129
Ty(CanonicalTyVarKind),
@@ -310,7 +308,8 @@ pub type QueryOutlivesConstraint<'tcx> = (
310308
TrivialTypeTraversalAndLiftImpls! {
311309
for <'tcx> {
312310
crate::infer::canonical::Certainty,
313-
crate::infer::canonical::CanonicalTyVarKind,
311+
crate::infer::canonical::CanonicalVarInfo<'tcx>,
312+
crate::infer::canonical::CanonicalVarKind<'tcx>,
314313
}
315314
}
316315

0 commit comments

Comments
 (0)