Skip to content

Commit 0d22b2e

Browse files
authored
Rollup merge of #145009 - jackh726:ra-next-solver-changes, r=compiler-errors
A couple small changes for rust-analyzer next-solver work Originally written by `@flodiebold`
2 parents 562222b + 29799c2 commit 0d22b2e

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed

compiler/rustc_middle/src/ty/predicate.rs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ use rustc_macros::{HashStable, extension};
66
use rustc_type_ir as ir;
77

88
use crate::ty::{
9-
self, DebruijnIndex, EarlyBinder, PredicatePolarity, Ty, TyCtxt, TypeFlags, Upcast, UpcastFrom,
10-
WithCachedTypeInfo,
9+
self, DebruijnIndex, EarlyBinder, Ty, TyCtxt, TypeFlags, Upcast, UpcastFrom, WithCachedTypeInfo,
1110
};
1211

1312
pub type TraitRef<'tcx> = ir::TraitRef<TyCtxt<'tcx>>;
@@ -536,15 +535,6 @@ impl<'tcx> UpcastFrom<TyCtxt<'tcx>, ty::Binder<'tcx, TraitRef<'tcx>>> for Clause
536535
}
537536
}
538537

539-
impl<'tcx> UpcastFrom<TyCtxt<'tcx>, ty::Binder<'tcx, TraitRef<'tcx>>> for PolyTraitPredicate<'tcx> {
540-
fn upcast_from(from: ty::Binder<'tcx, TraitRef<'tcx>>, _tcx: TyCtxt<'tcx>) -> Self {
541-
from.map_bound(|trait_ref| TraitPredicate {
542-
trait_ref,
543-
polarity: PredicatePolarity::Positive,
544-
})
545-
}
546-
}
547-
548538
impl<'tcx> UpcastFrom<TyCtxt<'tcx>, TraitPredicate<'tcx>> for Predicate<'tcx> {
549539
fn upcast_from(from: TraitPredicate<'tcx>, tcx: TyCtxt<'tcx>) -> Self {
550540
PredicateKind::Clause(ClauseKind::Trait(from)).upcast(tcx)

compiler/rustc_type_ir/src/const_kind.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,15 @@ rustc_index::newtype_index! {
9292

9393
/// An inference variable for a const, for use in const generics.
9494
#[derive(Copy, Clone, Eq, PartialEq, PartialOrd, Ord, Hash)]
95+
#[derive(TypeVisitable_Generic, TypeFoldable_Generic)]
9596
#[cfg_attr(feature = "nightly", derive(Encodable_NoContext, Decodable_NoContext))]
9697
pub enum InferConst {
9798
/// Infer the value of the const.
98-
Var(ConstVid),
99+
Var(
100+
#[type_foldable(identity)]
101+
#[type_visitable(ignore)]
102+
ConstVid,
103+
),
99104
/// A fresh const variable. See `infer::freshen` for more details.
100105
Fresh(u32),
101106
}

compiler/rustc_type_ir/src/predicate.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,15 @@ impl<I: Interner> UpcastFrom<I, TraitRef<I>> for TraitPredicate<I> {
184184
}
185185
}
186186

187+
impl<I: Interner> UpcastFrom<I, ty::Binder<I, TraitRef<I>>> for ty::Binder<I, TraitPredicate<I>> {
188+
fn upcast_from(from: ty::Binder<I, TraitRef<I>>, _tcx: I) -> Self {
189+
from.map_bound(|trait_ref| TraitPredicate {
190+
trait_ref,
191+
polarity: PredicatePolarity::Positive,
192+
})
193+
}
194+
}
195+
187196
impl<I: Interner> fmt::Debug for TraitPredicate<I> {
188197
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
189198
write!(f, "TraitPredicate({:?}, polarity:{:?})", self.trait_ref, self.polarity)

0 commit comments

Comments
 (0)