[−][src]Struct rustc_middle::ty::Predicate
Fields
inner: &'tcx PredicateInner<'tcx>Implementations
impl<'tcx> Predicate<'tcx>[src]
pub fn kind(self) -> &'tcx PredicateKind<'tcx>[src]
pub fn skip_binders(self) -> PredicateAtom<'tcx>[src]
Returns the inner PredicateAtom.
The returned atom may contain unbound variables bound to binders skipped in this method. It is safe to reapply binders to the given atom.
Note that this method panics in case this predicate has unbound variables.
pub fn skip_binders_unchecked(self) -> PredicateAtom<'tcx>[src]
Returns the inner PredicateAtom.
Note that this method does not check if the predicate has unbound variables.
Rebinding the returned atom can causes the previously bound variables to end up at the wrong binding level.
pub fn bound_atom(self, tcx: TyCtxt<'tcx>) -> Binder<PredicateAtom<'tcx>>[src]
Allows using a Binder<PredicateAtom<'tcx>> even if the given predicate previously
contained unbound variables by shifting these variables outwards.
impl<'tcx> Predicate<'tcx>[src]
pub fn subst_supertrait(
self,
tcx: TyCtxt<'tcx>,
trait_ref: &PolyTraitRef<'tcx>
) -> Predicate<'tcx>[src]
self,
tcx: TyCtxt<'tcx>,
trait_ref: &PolyTraitRef<'tcx>
) -> Predicate<'tcx>
Performs a substitution suitable for going from a poly-trait-ref to supertraits that must hold if that poly-trait-ref holds. This is slightly different from a normal substitution in terms of what happens with bound regions. See lengthy comment below for details.
impl<'tcx> Predicate<'tcx>[src]
pub fn to_opt_poly_trait_ref(self) -> Option<PolyTraitRef<'tcx>>[src]
pub fn to_opt_type_outlives(self) -> Option<PolyTypeOutlivesPredicate<'tcx>>[src]
Trait Implementations
impl<'tcx> Clone for Predicate<'tcx>[src]
impl<'tcx> Copy for Predicate<'tcx>[src]
impl<'tcx> Debug for Predicate<'tcx>[src]
impl<'tcx, D: TyDecoder<'tcx>> Decodable<D> for Predicate<'tcx>[src]
impl<'tcx> Display for Predicate<'tcx>[src]
impl<'tcx, E: TyEncoder<'tcx>> Encodable<E> for Predicate<'tcx>[src]
impl<'tcx, E: TyEncoder<'tcx>> EncodableWithShorthand<'tcx, E> for Predicate<'tcx>[src]
type Variant = PredicateKind<'tcx>
fn variant(&self) -> &Self::Variant[src]
impl<'tcx> Eq for Predicate<'tcx>[src]
impl<'_> Hash for Predicate<'_>[src]
fn hash<H: Hasher>(&self, s: &mut H)[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
H: Hasher,
impl<'a, 'tcx> HashStable<StableHashingContext<'a>> for Predicate<'tcx>[src]
fn hash_stable(
&self,
hcx: &mut StableHashingContext<'a>,
hasher: &mut StableHasher
)[src]
&self,
hcx: &mut StableHashingContext<'a>,
hasher: &mut StableHasher
)
impl<'tcx, '__lifted> Lift<'__lifted> for Predicate<'tcx>[src]
type Lifted = Predicate<'__lifted>
fn lift_to_tcx(&self, __tcx: TyCtxt<'__lifted>) -> Option<Predicate<'__lifted>>[src]
impl<'tcx> PartialEq<Predicate<'tcx>> for Predicate<'tcx>[src]
impl<'tcx, P: PrettyPrinter<'tcx>> Print<'tcx, P> for Predicate<'tcx>[src]
impl<'tcx> TypeFoldable<'tcx> for Predicate<'tcx>[src]
fn super_fold_with<F: TypeFolder<'tcx>>(&self, folder: &mut F) -> Self[src]
fn super_visit_with<V: TypeVisitor<'tcx>>(&self, visitor: &mut V) -> bool[src]
fn visit_with<V: TypeVisitor<'tcx>>(&self, visitor: &mut V) -> bool[src]
fn has_vars_bound_at_or_above(&self, binder: DebruijnIndex) -> bool[src]
fn has_type_flags(&self, flags: TypeFlags) -> bool[src]
fn fold_with<F: TypeFolder<'tcx>>(&self, folder: &mut F) -> Self[src]
fn has_vars_bound_above(&self, binder: DebruijnIndex) -> bool[src]
fn has_escaping_bound_vars(&self) -> bool[src]
fn has_projections(&self) -> bool[src]
fn has_opaque_types(&self) -> bool[src]
fn references_error(&self) -> bool[src]
fn has_param_types_or_consts(&self) -> bool[src]
fn has_infer_regions(&self) -> bool[src]
fn has_infer_types(&self) -> bool[src]
fn has_infer_types_or_consts(&self) -> bool[src]
fn has_infer_consts(&self) -> bool[src]
fn needs_infer(&self) -> bool[src]
fn has_placeholders(&self) -> bool[src]
fn needs_subst(&self) -> bool[src]
fn has_re_placeholders(&self) -> bool[src]
fn has_free_regions(&self) -> bool[src]
fn has_erased_regions(&self) -> bool[src]
fn has_erasable_regions(&self) -> bool[src]
fn is_global(&self) -> bool[src]
fn has_late_bound_regions(&self) -> bool[src]
fn still_further_specializable(&self) -> bool[src]
fn visit_tys_shallow(&self, visit: impl FnMut(Ty<'tcx>) -> bool) -> bool[src]
Auto Trait Implementations
impl<'tcx> !RefUnwindSafe for Predicate<'tcx>
impl<'tcx> !Send for Predicate<'tcx>
impl<'tcx> !Sync for Predicate<'tcx>
impl<'tcx> Unpin for Predicate<'tcx>
impl<'tcx> !UnwindSafe for Predicate<'tcx>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
T: Copy, [src]
T: Copy,
fn allocate_on(Self, &'a Arena<'tcx>) -> &'a mut T[src]
fn allocate_from_iter(
&'a Arena<'tcx>,
impl IntoIterator<Item = T>
) -> &'a mut [T][src]
&'a Arena<'tcx>,
impl IntoIterator<Item = T>
) -> &'a mut [T]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,
impl<Ctxt, T> DepNodeParams<Ctxt> for T where
Ctxt: DepContext,
T: HashStable<<Ctxt as DepContext>::StableHashingContext> + Debug, [src]
Ctxt: DepContext,
T: HashStable<<Ctxt as DepContext>::StableHashingContext> + Debug,
default fn can_reconstruct_query_key() -> bool[src]
default fn to_fingerprint(&self, tcx: Ctxt) -> Fingerprint[src]
default fn to_debug_str(&self, Ctxt) -> String[src]
default fn recover(Ctxt, &DepNode<<Ctxt as DepContext>::DepKind>) -> Option<T>[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> MaybeResult<T> for T[src]
type Error = !
fn from(Result<T, <T as MaybeResult<T>>::Error>) -> T[src]
fn to_result(self) -> Result<T, <T as MaybeResult<T>>::Error>[src]
impl<'tcx, T> Subst<'tcx> for T where
T: TypeFoldable<'tcx>, [src]
T: TypeFoldable<'tcx>,
fn subst_spanned(&Self, TyCtxt<'tcx>, &[GenericArg<'tcx>], Option<Span>) -> T[src]
fn subst(&self, tcx: TyCtxt<'tcx>, substs: &[GenericArg<'tcx>]) -> Self[src]
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T> ToString for T where
T: Display + ?Sized, [src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.