diff options
Diffstat (limited to 'compiler/rustc_trait_selection/src/solve/project_goals/weak_types.rs')
-rw-r--r-- | compiler/rustc_trait_selection/src/solve/project_goals/weak_types.rs | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/compiler/rustc_trait_selection/src/solve/project_goals/weak_types.rs b/compiler/rustc_trait_selection/src/solve/project_goals/weak_types.rs deleted file mode 100644 index 54de32cf6..000000000 --- a/compiler/rustc_trait_selection/src/solve/project_goals/weak_types.rs +++ /dev/null @@ -1,34 +0,0 @@ -//! Computes a normalizes-to (projection) goal for inherent associated types, -//! `#![feature(lazy_type_alias)]` and `#![feature(type_alias_impl_trait)]`. -//! -//! Since a weak alias is not ambiguous, this just computes the `type_of` of -//! the alias and registers the where-clauses of the type alias. -use rustc_middle::traits::solve::{Certainty, Goal, QueryResult}; -use rustc_middle::ty; - -use super::EvalCtxt; - -impl<'tcx> EvalCtxt<'_, 'tcx> { - pub(super) fn normalize_weak_type( - &mut self, - goal: Goal<'tcx, ty::ProjectionPredicate<'tcx>>, - ) -> QueryResult<'tcx> { - let tcx = self.tcx(); - let weak_ty = goal.predicate.projection_ty; - let expected = goal.predicate.term.ty().expect("no such thing as a const alias"); - - let actual = tcx.type_of(weak_ty.def_id).instantiate(tcx, weak_ty.args); - self.eq(goal.param_env, expected, actual)?; - - // Check where clauses - self.add_goals( - tcx.predicates_of(weak_ty.def_id) - .instantiate(tcx, weak_ty.args) - .predicates - .into_iter() - .map(|pred| goal.with(tcx, pred)), - ); - - self.evaluate_added_goals_and_make_canonical_response(Certainty::Yes) - } -} |