pub enum RestrictionKind {
Unrestricted,
Restricted(DefId, Span),
}Variants§
Implementations§
Source§impl RestrictionKind
impl RestrictionKind
Sourcepub fn is_allowed_in(self, module: DefId, tcx: TyCtxt<'_>) -> bool
pub fn is_allowed_in(self, module: DefId, tcx: TyCtxt<'_>) -> bool
Returns true if the behavior is allowed/unrestricted in the given module.
A value of false indicates that the behavior is prohibited.
Sourcepub fn expect_span(self) -> Span
pub fn expect_span(self) -> Span
Obtain the Span of the restriction. Panics if the restriction is unrestricted.
Sourcepub fn restriction_path(self, tcx: TyCtxt<'_>) -> String
pub fn restriction_path(self, tcx: TyCtxt<'_>) -> String
Obtain the path of the restriction. If unrestricted, an empty string is returned.
Sourcepub fn stricter_of(self, rhs: Self, tcx: TyCtxt<'_>) -> Self
pub fn stricter_of(self, rhs: Self, tcx: TyCtxt<'_>) -> Self
Obtain the stricter restriction between self and rhs.
Panics if the restrictions do not reference the same crate.
Trait Implementations§
Source§impl Clone for RestrictionKind
impl Clone for RestrictionKind
Source§fn clone(&self) -> RestrictionKind
fn clone(&self) -> RestrictionKind
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for RestrictionKind
Source§impl Debug for RestrictionKind
impl Debug for RestrictionKind
Source§impl<__D: SpanDecoder> Decodable<__D> for RestrictionKind
impl<__D: SpanDecoder> Decodable<__D> for RestrictionKind
Source§impl<__E: SpanEncoder> Encodable<__E> for RestrictionKind
impl<__E: SpanEncoder> Encodable<__E> for RestrictionKind
Source§impl PartialEq for RestrictionKind
impl PartialEq for RestrictionKind
Source§impl StableHash for RestrictionKind
impl StableHash for RestrictionKind
fn stable_hash<__Hcx: StableHashCtxt>( &self, __hcx: &mut __Hcx, __hasher: &mut StableHasher, )
impl StructuralPartialEq for RestrictionKind
Auto Trait Implementations§
impl DynSend for RestrictionKind
impl DynSync for RestrictionKind
impl Freeze for RestrictionKind
impl RefUnwindSafe for RestrictionKind
impl Send for RestrictionKind
impl Sync for RestrictionKind
impl Unpin for RestrictionKind
impl UnsafeUnpin for RestrictionKind
impl UnwindSafe for RestrictionKind
Blanket Implementations§
Source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut T
fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'tcx mut [T]
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<'tcx, T> DepNodeKey<'tcx> for Twhere
T: StableHash + Debug,
impl<'tcx, T> DepNodeKey<'tcx> for Twhere
T: StableHash + Debug,
default fn key_fingerprint_style() -> KeyFingerprintStyle
Source§default fn to_fingerprint(&self, tcx: TyCtxt<'tcx>) -> Fingerprint
default fn to_fingerprint(&self, tcx: TyCtxt<'tcx>) -> Fingerprint
This method turns a query key into an opaque
Fingerprint to be used
in DepNode.Source§default fn try_recover_key(_: TyCtxt<'tcx>, _: &DepNode) -> Option<T>
default fn try_recover_key(_: TyCtxt<'tcx>, _: &DepNode) -> Option<T>
This method tries to recover the query key from the given
DepNode,
something which is needed when forcing DepNodes during red-green
evaluation. The query system will only call this method if
fingerprint_style() is not FingerprintStyle::Opaque.
It is always valid to return None here, in which case incremental
compilation will treat the query as having changed instead of forcing it.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<K> IntoQueryKey<K> for K
impl<K> IntoQueryKey<K> for K
Source§fn into_query_key(self) -> K
fn into_query_key(self) -> K
Argument conversion from
Self to K.
This should always be a very cheap conversion, e.g. LocalDefId::to_def_id.Source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 16 bytes
Size for each variant:
Unrestricted: 0 bytesRestricted: 16 bytes