]> git.proxmox.com Git - rustc.git/blame - src/librustc_trait_selection/traits/query/type_op/subtype.rs
New upstream version 1.47.0+dfsg1
[rustc.git] / src / librustc_trait_selection / traits / query / type_op / subtype.rs
CommitLineData
e74abb32 1use crate::infer::canonical::{Canonicalized, CanonicalizedQueryResponse};
9fa01778 2use crate::traits::query::Fallible;
ba9703b0 3use rustc_middle::ty::{ParamEnvAnd, TyCtxt};
8faf50e0 4
ba9703b0 5pub use rustc_middle::traits::query::type_op::Subtype;
8faf50e0 6
dc9dc135 7impl<'tcx> super::QueryTypeOp<'tcx> for Subtype<'tcx> {
0bf4aa26 8 type QueryResponse = ();
8faf50e0 9
dc9dc135 10 fn try_fast_path(_tcx: TyCtxt<'tcx>, key: &ParamEnvAnd<'tcx, Self>) -> Option<()> {
dfeec247 11 if key.value.sub == key.value.sup { Some(()) } else { None }
8faf50e0
XL
12 }
13
14 fn perform_query(
dc9dc135
XL
15 tcx: TyCtxt<'tcx>,
16 canonicalized: Canonicalized<'tcx, ParamEnvAnd<'tcx, Self>>,
17 ) -> Fallible<CanonicalizedQueryResponse<'tcx, ()>> {
8faf50e0
XL
18 tcx.type_op_subtype(canonicalized)
19 }
8faf50e0 20}