summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_trait_selection/src/solve/project_goals/weak_types.rs
diff options
context:
space:
mode:
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.rs34
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)
- }
-}