pub(crate) struct Macros20NormalizedSyntaxContext(SyntaxContext);Expand description
A newtype around SyntaxContext that can only keep contexts produced by
SyntaxContext::normalize_to_macros_2_0.
Tuple Fields§
§0: SyntaxContextImplementations§
Source§impl Macros20NormalizedSyntaxContext
impl Macros20NormalizedSyntaxContext
pub(crate) fn new(ctxt: SyntaxContext) -> Macros20NormalizedSyntaxContext
pub(crate) fn new_adjusted( ctxt: SyntaxContext, expn_id: ExpnId, ) -> (Macros20NormalizedSyntaxContext, Option<ExpnId>)
pub(crate) fn new_unchecked( ctxt: SyntaxContext, ) -> Macros20NormalizedSyntaxContext
Sourcepub(crate) fn update_unchecked<R>(
&mut self,
f: impl FnOnce(&mut SyntaxContext) -> R,
) -> R
pub(crate) fn update_unchecked<R>( &mut self, f: impl FnOnce(&mut SyntaxContext) -> R, ) -> R
The passed closure must preserve the context’s normalized-ness.
Methods from Deref<Target = SyntaxContext>§
pub fn is_root(self) -> bool
Sourcepub fn apply_mark(
self,
expn_id: ExpnId,
transparency: Transparency,
) -> SyntaxContext
pub fn apply_mark( self, expn_id: ExpnId, transparency: Transparency, ) -> SyntaxContext
Extend a syntax context with a given expansion and transparency.
pub fn marks(self) -> Vec<(ExpnId, Transparency)>
pub fn hygienic_eq(self, other: SyntaxContext, expn_id: ExpnId) -> bool
pub fn normalize_to_macros_2_0(self) -> SyntaxContext
pub fn normalize_to_macro_rules(self) -> SyntaxContext
Sourcepub fn outer_expn(self) -> ExpnId
pub fn outer_expn(self) -> ExpnId
Sourcepub fn outer_expn_data(self) -> ExpnData
pub fn outer_expn_data(self) -> ExpnData
ctxt.outer_expn_data() is equivalent to but faster than
ctxt.outer_expn().expn_data().
pub fn edition(self) -> Edition
Sourcepub fn in_external_macro(self, sm: &SourceMap) -> bool
pub fn in_external_macro(self, sm: &SourceMap) -> bool
Returns whether this context originates in a foreign crate’s external macro.
This is used to test whether a lint should not even begin to figure out whether it should be reported on the current node.
Trait Implementations§
impl Copy for Macros20NormalizedSyntaxContext
impl Eq for Macros20NormalizedSyntaxContext
impl StructuralPartialEq for Macros20NormalizedSyntaxContext
Auto Trait Implementations§
impl DynSend for Macros20NormalizedSyntaxContext
impl DynSync for Macros20NormalizedSyntaxContext
impl Freeze for Macros20NormalizedSyntaxContext
impl RefUnwindSafe for Macros20NormalizedSyntaxContext
impl Send for Macros20NormalizedSyntaxContext
impl Sync for Macros20NormalizedSyntaxContext
impl Unpin for Macros20NormalizedSyntaxContext
impl UnsafeUnpin for Macros20NormalizedSyntaxContext
impl UnwindSafe for Macros20NormalizedSyntaxContext
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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> ⓘ
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> ⓘ
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
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: 4 bytes