split out AliasTy -> AliasTerm
This commit is contained in:
@@ -27,7 +27,7 @@ pub use self::engine::{TraitEngine, TraitEngineExt};
|
||||
pub use self::project::MismatchedProjectionTypes;
|
||||
pub(crate) use self::project::UndoLog;
|
||||
pub use self::project::{
|
||||
Normalized, NormalizedTy, ProjectionCache, ProjectionCacheEntry, ProjectionCacheKey,
|
||||
Normalized, NormalizedTerm, ProjectionCache, ProjectionCacheEntry, ProjectionCacheKey,
|
||||
ProjectionCacheStorage, Reveal,
|
||||
};
|
||||
pub use rustc_middle::traits::*;
|
||||
|
||||
@@ -8,7 +8,7 @@ use rustc_data_structures::{
|
||||
snapshot_map::{self, SnapshotMapRef, SnapshotMapStorage},
|
||||
undo_log::Rollback,
|
||||
};
|
||||
use rustc_middle::ty::{self, Ty};
|
||||
use rustc_middle::ty;
|
||||
|
||||
pub use rustc_middle::traits::{EvaluationResult, Reveal};
|
||||
|
||||
@@ -26,7 +26,7 @@ pub struct Normalized<'tcx, T> {
|
||||
pub obligations: Vec<PredicateObligation<'tcx>>,
|
||||
}
|
||||
|
||||
pub type NormalizedTy<'tcx> = Normalized<'tcx, Ty<'tcx>>;
|
||||
pub type NormalizedTerm<'tcx> = Normalized<'tcx, ty::Term<'tcx>>;
|
||||
|
||||
impl<'tcx, T> Normalized<'tcx, T> {
|
||||
pub fn with<U>(self, value: U) -> Normalized<'tcx, U> {
|
||||
@@ -77,13 +77,13 @@ pub struct ProjectionCacheStorage<'tcx> {
|
||||
|
||||
#[derive(Copy, Clone, Debug, Hash, PartialEq, Eq)]
|
||||
pub struct ProjectionCacheKey<'tcx> {
|
||||
ty: ty::AliasTy<'tcx>,
|
||||
term: ty::AliasTerm<'tcx>,
|
||||
param_env: ty::ParamEnv<'tcx>,
|
||||
}
|
||||
|
||||
impl<'tcx> ProjectionCacheKey<'tcx> {
|
||||
pub fn new(ty: ty::AliasTy<'tcx>, param_env: ty::ParamEnv<'tcx>) -> Self {
|
||||
Self { ty, param_env }
|
||||
pub fn new(term: ty::AliasTerm<'tcx>, param_env: ty::ParamEnv<'tcx>) -> Self {
|
||||
Self { term, param_env }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ pub enum ProjectionCacheEntry<'tcx> {
|
||||
Recur,
|
||||
Error,
|
||||
NormalizedTy {
|
||||
ty: Normalized<'tcx, ty::Term<'tcx>>,
|
||||
ty: NormalizedTerm<'tcx>,
|
||||
/// If we were able to successfully evaluate the
|
||||
/// corresponding cache entry key during predicate
|
||||
/// evaluation, then this field stores the final
|
||||
@@ -175,11 +175,7 @@ impl<'tcx> ProjectionCache<'_, 'tcx> {
|
||||
}
|
||||
|
||||
/// Indicates that `key` was normalized to `value`.
|
||||
pub fn insert_term(
|
||||
&mut self,
|
||||
key: ProjectionCacheKey<'tcx>,
|
||||
value: Normalized<'tcx, ty::Term<'tcx>>,
|
||||
) {
|
||||
pub fn insert_term(&mut self, key: ProjectionCacheKey<'tcx>, value: NormalizedTerm<'tcx>) {
|
||||
debug!(
|
||||
"ProjectionCacheEntry::insert_ty: adding cache entry: key={:?}, value={:?}",
|
||||
key, value
|
||||
|
||||
Reference in New Issue
Block a user