mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-27 14:24:08 +00:00
Rollup merge of #106389 - compiler-errors:no-canonicalized, r=lcnr
Simplify some canonical type alias names * delete the `Canonicalized<'tcx>` type alias in favor for `Canonical<'tcx>` * `CanonicalizedQueryResponse` -> `CanonicalQueryResponse` I don't particularly care about the latter, but it should be consistent. We could alternatively delete the first alias and rename the struct to `Canonicalized`, and then keep the name of `CanonicalizedQueryResponse` untouched.
This commit is contained in:
commit
f8319bb403
@ -6,8 +6,7 @@
|
|||||||
//! [c]: https://rust-lang.github.io/chalk/book/canonical_queries/canonicalization.html
|
//! [c]: https://rust-lang.github.io/chalk/book/canonical_queries/canonicalization.html
|
||||||
|
|
||||||
use crate::infer::canonical::{
|
use crate::infer::canonical::{
|
||||||
Canonical, CanonicalTyVarKind, CanonicalVarInfo, CanonicalVarKind, Canonicalized,
|
Canonical, CanonicalTyVarKind, CanonicalVarInfo, CanonicalVarKind, OriginalQueryValues,
|
||||||
OriginalQueryValues,
|
|
||||||
};
|
};
|
||||||
use crate::infer::InferCtxt;
|
use crate::infer::InferCtxt;
|
||||||
use rustc_middle::ty::flags::FlagComputation;
|
use rustc_middle::ty::flags::FlagComputation;
|
||||||
@ -40,7 +39,7 @@ impl<'tcx> InferCtxt<'tcx> {
|
|||||||
&self,
|
&self,
|
||||||
value: V,
|
value: V,
|
||||||
query_state: &mut OriginalQueryValues<'tcx>,
|
query_state: &mut OriginalQueryValues<'tcx>,
|
||||||
) -> Canonicalized<'tcx, V>
|
) -> Canonical<'tcx, V>
|
||||||
where
|
where
|
||||||
V: TypeFoldable<'tcx>,
|
V: TypeFoldable<'tcx>,
|
||||||
{
|
{
|
||||||
@ -59,7 +58,7 @@ impl<'tcx> InferCtxt<'tcx> {
|
|||||||
&self,
|
&self,
|
||||||
value: V,
|
value: V,
|
||||||
query_state: &mut OriginalQueryValues<'tcx>,
|
query_state: &mut OriginalQueryValues<'tcx>,
|
||||||
) -> Canonicalized<'tcx, V>
|
) -> Canonical<'tcx, V>
|
||||||
where
|
where
|
||||||
V: TypeFoldable<'tcx>,
|
V: TypeFoldable<'tcx>,
|
||||||
{
|
{
|
||||||
@ -99,7 +98,7 @@ impl<'tcx> InferCtxt<'tcx> {
|
|||||||
/// out the [chapter in the rustc dev guide][c].
|
/// out the [chapter in the rustc dev guide][c].
|
||||||
///
|
///
|
||||||
/// [c]: https://rust-lang.github.io/chalk/book/canonical_queries/canonicalization.html#canonicalizing-the-query-result
|
/// [c]: https://rust-lang.github.io/chalk/book/canonical_queries/canonicalization.html#canonicalizing-the-query-result
|
||||||
pub fn canonicalize_response<V>(&self, value: V) -> Canonicalized<'tcx, V>
|
pub fn canonicalize_response<V>(&self, value: V) -> Canonical<'tcx, V>
|
||||||
where
|
where
|
||||||
V: TypeFoldable<'tcx>,
|
V: TypeFoldable<'tcx>,
|
||||||
{
|
{
|
||||||
@ -113,7 +112,7 @@ impl<'tcx> InferCtxt<'tcx> {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn canonicalize_user_type_annotation<V>(&self, value: V) -> Canonicalized<'tcx, V>
|
pub fn canonicalize_user_type_annotation<V>(&self, value: V) -> Canonical<'tcx, V>
|
||||||
where
|
where
|
||||||
V: TypeFoldable<'tcx>,
|
V: TypeFoldable<'tcx>,
|
||||||
{
|
{
|
||||||
@ -135,7 +134,7 @@ impl<'tcx> InferCtxt<'tcx> {
|
|||||||
&self,
|
&self,
|
||||||
value: V,
|
value: V,
|
||||||
query_state: &mut OriginalQueryValues<'tcx>,
|
query_state: &mut OriginalQueryValues<'tcx>,
|
||||||
) -> Canonicalized<'tcx, V>
|
) -> Canonical<'tcx, V>
|
||||||
where
|
where
|
||||||
V: TypeFoldable<'tcx>,
|
V: TypeFoldable<'tcx>,
|
||||||
{
|
{
|
||||||
@ -524,7 +523,7 @@ impl<'cx, 'tcx> Canonicalizer<'cx, 'tcx> {
|
|||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalize_region_mode: &dyn CanonicalizeMode,
|
canonicalize_region_mode: &dyn CanonicalizeMode,
|
||||||
query_state: &mut OriginalQueryValues<'tcx>,
|
query_state: &mut OriginalQueryValues<'tcx>,
|
||||||
) -> Canonicalized<'tcx, V>
|
) -> Canonical<'tcx, V>
|
||||||
where
|
where
|
||||||
V: TypeFoldable<'tcx>,
|
V: TypeFoldable<'tcx>,
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
use crate::infer::canonical::substitute::{substitute_value, CanonicalExt};
|
use crate::infer::canonical::substitute::{substitute_value, CanonicalExt};
|
||||||
use crate::infer::canonical::{
|
use crate::infer::canonical::{
|
||||||
Canonical, CanonicalVarValues, CanonicalizedQueryResponse, Certainty, OriginalQueryValues,
|
Canonical, CanonicalQueryResponse, CanonicalVarValues, Certainty, OriginalQueryValues,
|
||||||
QueryOutlivesConstraint, QueryRegionConstraints, QueryResponse,
|
QueryOutlivesConstraint, QueryRegionConstraints, QueryResponse,
|
||||||
};
|
};
|
||||||
use crate::infer::nll_relate::{NormalizationStrategy, TypeRelating, TypeRelatingDelegate};
|
use crate::infer::nll_relate::{NormalizationStrategy, TypeRelating, TypeRelatingDelegate};
|
||||||
@ -57,7 +57,7 @@ impl<'tcx> InferCtxt<'tcx> {
|
|||||||
inference_vars: CanonicalVarValues<'tcx>,
|
inference_vars: CanonicalVarValues<'tcx>,
|
||||||
answer: T,
|
answer: T,
|
||||||
fulfill_cx: &mut dyn TraitEngine<'tcx>,
|
fulfill_cx: &mut dyn TraitEngine<'tcx>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, T>>
|
) -> Fallible<CanonicalQueryResponse<'tcx, T>>
|
||||||
where
|
where
|
||||||
T: Debug + TypeFoldable<'tcx>,
|
T: Debug + TypeFoldable<'tcx>,
|
||||||
Canonical<'tcx, QueryResponse<'tcx, T>>: ArenaAllocatable<'tcx>,
|
Canonical<'tcx, QueryResponse<'tcx, T>>: ArenaAllocatable<'tcx>,
|
||||||
|
@ -213,9 +213,7 @@ impl QueryRegionConstraints<'_> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub type Canonicalized<'tcx, V> = Canonical<'tcx, V>;
|
pub type CanonicalQueryResponse<'tcx, T> = &'tcx Canonical<'tcx, QueryResponse<'tcx, T>>;
|
||||||
|
|
||||||
pub type CanonicalizedQueryResponse<'tcx, T> = &'tcx Canonical<'tcx, QueryResponse<'tcx, T>>;
|
|
||||||
|
|
||||||
/// Indicates whether or not we were able to prove the query to be
|
/// Indicates whether or not we were able to prove the query to be
|
||||||
/// true.
|
/// true.
|
||||||
|
@ -626,7 +626,7 @@ pub struct CanonicalUserTypeAnnotation<'tcx> {
|
|||||||
pub inferred_ty: Ty<'tcx>,
|
pub inferred_ty: Ty<'tcx>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Canonicalized user type annotation.
|
/// Canonical user type annotation.
|
||||||
pub type CanonicalUserType<'tcx> = Canonical<'tcx, UserType<'tcx>>;
|
pub type CanonicalUserType<'tcx> = Canonical<'tcx, UserType<'tcx>>;
|
||||||
|
|
||||||
impl<'tcx> CanonicalUserType<'tcx> {
|
impl<'tcx> CanonicalUserType<'tcx> {
|
||||||
|
@ -4,7 +4,7 @@ use crate::traits::{self, ObligationCtxt};
|
|||||||
use rustc_hir::def_id::DefId;
|
use rustc_hir::def_id::DefId;
|
||||||
use rustc_hir::lang_items::LangItem;
|
use rustc_hir::lang_items::LangItem;
|
||||||
use rustc_middle::arena::ArenaAllocatable;
|
use rustc_middle::arena::ArenaAllocatable;
|
||||||
use rustc_middle::infer::canonical::{Canonical, CanonicalizedQueryResponse, QueryResponse};
|
use rustc_middle::infer::canonical::{Canonical, CanonicalQueryResponse, QueryResponse};
|
||||||
use rustc_middle::traits::query::Fallible;
|
use rustc_middle::traits::query::Fallible;
|
||||||
use rustc_middle::ty::{self, Ty, TypeFoldable, TypeVisitable};
|
use rustc_middle::ty::{self, Ty, TypeFoldable, TypeVisitable};
|
||||||
use rustc_middle::ty::{GenericArg, ToPredicate};
|
use rustc_middle::ty::{GenericArg, ToPredicate};
|
||||||
@ -102,7 +102,7 @@ pub trait InferCtxtBuilderExt<'tcx> {
|
|||||||
&mut self,
|
&mut self,
|
||||||
canonical_key: &Canonical<'tcx, K>,
|
canonical_key: &Canonical<'tcx, K>,
|
||||||
operation: impl FnOnce(&ObligationCtxt<'_, 'tcx>, K) -> Fallible<R>,
|
operation: impl FnOnce(&ObligationCtxt<'_, 'tcx>, K) -> Fallible<R>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, R>>
|
) -> Fallible<CanonicalQueryResponse<'tcx, R>>
|
||||||
where
|
where
|
||||||
K: TypeFoldable<'tcx>,
|
K: TypeFoldable<'tcx>,
|
||||||
R: Debug + TypeFoldable<'tcx>,
|
R: Debug + TypeFoldable<'tcx>,
|
||||||
@ -130,7 +130,7 @@ impl<'tcx> InferCtxtBuilderExt<'tcx> for InferCtxtBuilder<'tcx> {
|
|||||||
&mut self,
|
&mut self,
|
||||||
canonical_key: &Canonical<'tcx, K>,
|
canonical_key: &Canonical<'tcx, K>,
|
||||||
operation: impl FnOnce(&ObligationCtxt<'_, 'tcx>, K) -> Fallible<R>,
|
operation: impl FnOnce(&ObligationCtxt<'_, 'tcx>, K) -> Fallible<R>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, R>>
|
) -> Fallible<CanonicalQueryResponse<'tcx, R>>
|
||||||
where
|
where
|
||||||
K: TypeFoldable<'tcx>,
|
K: TypeFoldable<'tcx>,
|
||||||
R: Debug + TypeFoldable<'tcx>,
|
R: Debug + TypeFoldable<'tcx>,
|
||||||
|
@ -9,7 +9,7 @@ use rustc_data_structures::fx::FxIndexSet;
|
|||||||
use rustc_hir::def_id::{DefId, LocalDefId};
|
use rustc_hir::def_id::{DefId, LocalDefId};
|
||||||
use rustc_infer::infer::at::ToTrace;
|
use rustc_infer::infer::at::ToTrace;
|
||||||
use rustc_infer::infer::canonical::{
|
use rustc_infer::infer::canonical::{
|
||||||
Canonical, CanonicalVarValues, CanonicalizedQueryResponse, QueryResponse,
|
Canonical, CanonicalQueryResponse, CanonicalVarValues, QueryResponse,
|
||||||
};
|
};
|
||||||
use rustc_infer::infer::{InferCtxt, InferOk};
|
use rustc_infer::infer::{InferCtxt, InferOk};
|
||||||
use rustc_infer::traits::query::Fallible;
|
use rustc_infer::traits::query::Fallible;
|
||||||
@ -215,7 +215,7 @@ impl<'a, 'tcx> ObligationCtxt<'a, 'tcx> {
|
|||||||
&self,
|
&self,
|
||||||
inference_vars: CanonicalVarValues<'tcx>,
|
inference_vars: CanonicalVarValues<'tcx>,
|
||||||
answer: T,
|
answer: T,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, T>>
|
) -> Fallible<CanonicalQueryResponse<'tcx, T>>
|
||||||
where
|
where
|
||||||
T: Debug + TypeFoldable<'tcx>,
|
T: Debug + TypeFoldable<'tcx>,
|
||||||
Canonical<'tcx, QueryResponse<'tcx, T>>: ArenaAllocatable<'tcx>,
|
Canonical<'tcx, QueryResponse<'tcx, T>>: ArenaAllocatable<'tcx>,
|
||||||
|
@ -102,7 +102,7 @@ pub enum TraitQueryMode {
|
|||||||
/// spans etc. passed in and hence can do reasonable
|
/// spans etc. passed in and hence can do reasonable
|
||||||
/// error reporting on their own.
|
/// error reporting on their own.
|
||||||
Standard,
|
Standard,
|
||||||
/// Canonicalized queries get dummy spans and hence
|
/// Canonical queries get dummy spans and hence
|
||||||
/// must generally propagate errors to
|
/// must generally propagate errors to
|
||||||
/// pre-canonicalization callsites.
|
/// pre-canonicalization callsites.
|
||||||
Canonical,
|
Canonical,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse};
|
use crate::infer::canonical::{Canonical, CanonicalQueryResponse};
|
||||||
use crate::traits::query::Fallible;
|
use crate::traits::query::Fallible;
|
||||||
use rustc_middle::ty::{ParamEnvAnd, TyCtxt};
|
use rustc_middle::ty::{ParamEnvAnd, TyCtxt};
|
||||||
|
|
||||||
@ -16,8 +16,8 @@ impl<'tcx> super::QueryTypeOp<'tcx> for AscribeUserType<'tcx> {
|
|||||||
|
|
||||||
fn perform_query(
|
fn perform_query(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Self>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Self>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, ()>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, ()>> {
|
||||||
tcx.type_op_ascribe_user_type(canonicalized)
|
tcx.type_op_ascribe_user_type(canonicalized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse};
|
use crate::infer::canonical::{Canonical, CanonicalQueryResponse};
|
||||||
use crate::traits::query::Fallible;
|
use crate::traits::query::Fallible;
|
||||||
use rustc_middle::ty::{ParamEnvAnd, TyCtxt};
|
use rustc_middle::ty::{ParamEnvAnd, TyCtxt};
|
||||||
|
|
||||||
@ -16,8 +16,8 @@ impl<'tcx> super::QueryTypeOp<'tcx> for Eq<'tcx> {
|
|||||||
|
|
||||||
fn perform_query(
|
fn perform_query(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Self>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Self>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, ()>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, ()>> {
|
||||||
tcx.type_op_eq(canonicalized)
|
tcx.type_op_eq(canonicalized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse};
|
use crate::infer::canonical::{Canonical, CanonicalQueryResponse};
|
||||||
use crate::traits::query::Fallible;
|
use crate::traits::query::Fallible;
|
||||||
use rustc_infer::traits::query::OutlivesBound;
|
use rustc_infer::traits::query::OutlivesBound;
|
||||||
use rustc_middle::ty::{self, ParamEnvAnd, Ty, TyCtxt};
|
use rustc_middle::ty::{self, ParamEnvAnd, Ty, TyCtxt};
|
||||||
@ -27,8 +27,8 @@ impl<'tcx> super::QueryTypeOp<'tcx> for ImpliedOutlivesBounds<'tcx> {
|
|||||||
|
|
||||||
fn perform_query(
|
fn perform_query(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Self>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Self>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, Self::QueryResponse>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, Self::QueryResponse>> {
|
||||||
// FIXME this `unchecked_map` is only necessary because the
|
// FIXME this `unchecked_map` is only necessary because the
|
||||||
// query is defined as taking a `ParamEnvAnd<Ty>`; it should
|
// query is defined as taking a `ParamEnvAnd<Ty>`; it should
|
||||||
// take an `ImpliedOutlivesBounds` instead
|
// take an `ImpliedOutlivesBounds` instead
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
use crate::infer::canonical::{
|
use crate::infer::canonical::{
|
||||||
Canonicalized, CanonicalizedQueryResponse, OriginalQueryValues, QueryRegionConstraints,
|
Canonical, CanonicalQueryResponse, OriginalQueryValues, QueryRegionConstraints,
|
||||||
};
|
};
|
||||||
use crate::infer::{InferCtxt, InferOk};
|
use crate::infer::{InferCtxt, InferOk};
|
||||||
use crate::traits::query::Fallible;
|
use crate::traits::query::Fallible;
|
||||||
use crate::traits::ObligationCause;
|
use crate::traits::ObligationCause;
|
||||||
use rustc_infer::infer::canonical::{Canonical, Certainty};
|
use rustc_infer::infer::canonical::Certainty;
|
||||||
use rustc_infer::traits::query::NoSolution;
|
use rustc_infer::traits::query::NoSolution;
|
||||||
use rustc_infer::traits::PredicateObligations;
|
use rustc_infer::traits::PredicateObligations;
|
||||||
use rustc_middle::ty::fold::TypeFoldable;
|
use rustc_middle::ty::fold::TypeFoldable;
|
||||||
@ -73,8 +73,8 @@ pub trait QueryTypeOp<'tcx>: fmt::Debug + Copy + TypeFoldable<'tcx> + 'tcx {
|
|||||||
/// not captured in the return value.
|
/// not captured in the return value.
|
||||||
fn perform_query(
|
fn perform_query(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Self>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Self>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, Self::QueryResponse>>;
|
) -> Fallible<CanonicalQueryResponse<'tcx, Self::QueryResponse>>;
|
||||||
|
|
||||||
fn fully_perform_into(
|
fn fully_perform_into(
|
||||||
query_key: ParamEnvAnd<'tcx, Self>,
|
query_key: ParamEnvAnd<'tcx, Self>,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse};
|
use crate::infer::canonical::{Canonical, CanonicalQueryResponse};
|
||||||
use crate::traits::query::Fallible;
|
use crate::traits::query::Fallible;
|
||||||
use rustc_middle::ty::fold::TypeFoldable;
|
use rustc_middle::ty::fold::TypeFoldable;
|
||||||
use rustc_middle::ty::{self, Lift, ParamEnvAnd, Ty, TyCtxt};
|
use rustc_middle::ty::{self, Lift, ParamEnvAnd, Ty, TyCtxt};
|
||||||
@ -18,8 +18,8 @@ where
|
|||||||
|
|
||||||
fn perform_query(
|
fn perform_query(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Self>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Self>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, Self::QueryResponse>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, Self::QueryResponse>> {
|
||||||
T::type_op_method(tcx, canonicalized)
|
T::type_op_method(tcx, canonicalized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -27,15 +27,15 @@ where
|
|||||||
pub trait Normalizable<'tcx>: fmt::Debug + TypeFoldable<'tcx> + Lift<'tcx> + Copy {
|
pub trait Normalizable<'tcx>: fmt::Debug + TypeFoldable<'tcx> + Lift<'tcx> + Copy {
|
||||||
fn type_op_method(
|
fn type_op_method(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, Self>>;
|
) -> Fallible<CanonicalQueryResponse<'tcx, Self>>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> Normalizable<'tcx> for Ty<'tcx> {
|
impl<'tcx> Normalizable<'tcx> for Ty<'tcx> {
|
||||||
fn type_op_method(
|
fn type_op_method(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, Self>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, Self>> {
|
||||||
tcx.type_op_normalize_ty(canonicalized)
|
tcx.type_op_normalize_ty(canonicalized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -43,8 +43,8 @@ impl<'tcx> Normalizable<'tcx> for Ty<'tcx> {
|
|||||||
impl<'tcx> Normalizable<'tcx> for ty::Predicate<'tcx> {
|
impl<'tcx> Normalizable<'tcx> for ty::Predicate<'tcx> {
|
||||||
fn type_op_method(
|
fn type_op_method(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, Self>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, Self>> {
|
||||||
tcx.type_op_normalize_predicate(canonicalized)
|
tcx.type_op_normalize_predicate(canonicalized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -52,8 +52,8 @@ impl<'tcx> Normalizable<'tcx> for ty::Predicate<'tcx> {
|
|||||||
impl<'tcx> Normalizable<'tcx> for ty::PolyFnSig<'tcx> {
|
impl<'tcx> Normalizable<'tcx> for ty::PolyFnSig<'tcx> {
|
||||||
fn type_op_method(
|
fn type_op_method(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, Self>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, Self>> {
|
||||||
tcx.type_op_normalize_poly_fn_sig(canonicalized)
|
tcx.type_op_normalize_poly_fn_sig(canonicalized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -61,8 +61,8 @@ impl<'tcx> Normalizable<'tcx> for ty::PolyFnSig<'tcx> {
|
|||||||
impl<'tcx> Normalizable<'tcx> for ty::FnSig<'tcx> {
|
impl<'tcx> Normalizable<'tcx> for ty::FnSig<'tcx> {
|
||||||
fn type_op_method(
|
fn type_op_method(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Normalize<Self>>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, Self>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, Self>> {
|
||||||
tcx.type_op_normalize_fn_sig(canonicalized)
|
tcx.type_op_normalize_fn_sig(canonicalized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse};
|
use crate::infer::canonical::{Canonical, CanonicalQueryResponse};
|
||||||
use crate::traits::query::dropck_outlives::{trivial_dropck_outlives, DropckOutlivesResult};
|
use crate::traits::query::dropck_outlives::{trivial_dropck_outlives, DropckOutlivesResult};
|
||||||
use crate::traits::query::Fallible;
|
use crate::traits::query::Fallible;
|
||||||
use rustc_middle::ty::{ParamEnvAnd, Ty, TyCtxt};
|
use rustc_middle::ty::{ParamEnvAnd, Ty, TyCtxt};
|
||||||
@ -30,8 +30,8 @@ impl<'tcx> super::QueryTypeOp<'tcx> for DropckOutlives<'tcx> {
|
|||||||
|
|
||||||
fn perform_query(
|
fn perform_query(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Self>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Self>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, Self::QueryResponse>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, Self::QueryResponse>> {
|
||||||
// Subtle: note that we are not invoking
|
// Subtle: note that we are not invoking
|
||||||
// `infcx.at(...).dropck_outlives(...)` here, but rather the
|
// `infcx.at(...).dropck_outlives(...)` here, but rather the
|
||||||
// underlying `dropck_outlives` query. This same underlying
|
// underlying `dropck_outlives` query. This same underlying
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse};
|
use crate::infer::canonical::{Canonical, CanonicalQueryResponse};
|
||||||
use crate::traits::query::Fallible;
|
use crate::traits::query::Fallible;
|
||||||
use rustc_middle::ty::{self, ParamEnvAnd, TyCtxt};
|
use rustc_middle::ty::{self, ParamEnvAnd, TyCtxt};
|
||||||
|
|
||||||
@ -32,8 +32,8 @@ impl<'tcx> super::QueryTypeOp<'tcx> for ProvePredicate<'tcx> {
|
|||||||
|
|
||||||
fn perform_query(
|
fn perform_query(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
mut canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Self>>,
|
mut canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Self>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, ()>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, ()>> {
|
||||||
match canonicalized.value.value.predicate.kind().skip_binder() {
|
match canonicalized.value.value.predicate.kind().skip_binder() {
|
||||||
ty::PredicateKind::Clause(ty::Clause::Trait(pred)) => {
|
ty::PredicateKind::Clause(ty::Clause::Trait(pred)) => {
|
||||||
canonicalized.value.param_env.remap_constness_with(pred.constness);
|
canonicalized.value.param_env.remap_constness_with(pred.constness);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse};
|
use crate::infer::canonical::{Canonical, CanonicalQueryResponse};
|
||||||
use crate::traits::query::Fallible;
|
use crate::traits::query::Fallible;
|
||||||
use rustc_middle::ty::{ParamEnvAnd, TyCtxt};
|
use rustc_middle::ty::{ParamEnvAnd, TyCtxt};
|
||||||
|
|
||||||
@ -13,8 +13,8 @@ impl<'tcx> super::QueryTypeOp<'tcx> for Subtype<'tcx> {
|
|||||||
|
|
||||||
fn perform_query(
|
fn perform_query(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Self>>,
|
canonicalized: Canonical<'tcx, ParamEnvAnd<'tcx, Self>>,
|
||||||
) -> Fallible<CanonicalizedQueryResponse<'tcx, ()>> {
|
) -> Fallible<CanonicalQueryResponse<'tcx, ()>> {
|
||||||
tcx.type_op_subtype(canonicalized)
|
tcx.type_op_subtype(canonicalized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user