pub(crate) struct AcceptContext<'f, 'sess, S: Stage> {
pub(crate) shared: SharedContext<'f, 'sess, S>,
pub(crate) attr_span: Span,
pub(crate) template: &'f AttributeTemplate,
pub(crate) attr_path: AttrPath,
}
Expand description
Context given to every attribute parser when accepting
Gives AttributeParser
s enough information to create errors, for example.
Fields§
§attr_span: Span
The span of the attribute currently being parsed
template: &'f AttributeTemplate
The expected structure of the attribute.
Used in reporting errors to give a hint to users what the attribute should look like.
attr_path: AttrPath
The name of the attribute we’re currently accepting.
Implementations§
Source§impl<'f, 'sess: 'f, S: Stage> AcceptContext<'f, 'sess, S>
impl<'f, 'sess: 'f, S: Stage> AcceptContext<'f, 'sess, S>
pub(crate) fn unknown_key( &self, span: Span, found: String, options: &'static [&'static str], ) -> ErrorGuaranteed
Sourcepub(crate) fn expected_string_literal(
&self,
span: Span,
actual_literal: Option<&MetaItemLit>,
) -> ErrorGuaranteed
pub(crate) fn expected_string_literal( &self, span: Span, actual_literal: Option<&MetaItemLit>, ) -> ErrorGuaranteed
error that a string literal was expected.
You can optionally give the literal you did find (which you found not to be a string literal)
which can make better errors. For example, if the literal was a byte string it will suggest
removing the b
prefix.
pub(crate) fn expected_list(&self, span: Span) -> ErrorGuaranteed
pub(crate) fn expected_no_args(&self, args_span: Span) -> ErrorGuaranteed
Sourcepub(crate) fn expected_name_value(
&self,
span: Span,
name: Option<Symbol>,
) -> ErrorGuaranteed
pub(crate) fn expected_name_value( &self, span: Span, name: Option<Symbol>, ) -> ErrorGuaranteed
emit an error that a name = value
pair was expected at this span. The symbol can be given for
a nicer error message talking about the specific name that was found lacking a value.
Sourcepub(crate) fn duplicate_key(&self, span: Span, key: Symbol) -> ErrorGuaranteed
pub(crate) fn duplicate_key(&self, span: Span, key: Symbol) -> ErrorGuaranteed
emit an error that a name = value
pair was found where that name was already seen.
Sourcepub(crate) fn unexpected_literal(&self, span: Span) -> ErrorGuaranteed
pub(crate) fn unexpected_literal(&self, span: Span) -> ErrorGuaranteed
an error that should be emitted when a MetaItemOrLitParser
was expected not to be a literal, but instead a meta item.
pub(crate) fn expected_single_argument(&self, span: Span) -> ErrorGuaranteed
pub(crate) fn expected_at_least_one_argument( &self, span: Span, ) -> ErrorGuaranteed
pub(crate) fn expected_specific_argument( &self, span: Span, possibilities: Vec<&'static str>, ) -> ErrorGuaranteed
pub(crate) fn expected_specific_argument_strings( &self, span: Span, possibilities: Vec<&'static str>, ) -> ErrorGuaranteed
Methods from Deref<Target = SharedContext<'f, 'sess, S>>§
Methods from Deref<Target = AttributeParser<'sess, S>>§
pub(crate) fn sess(&self) -> &'sess Session
pub(crate) fn features(&self) -> &'sess Features
pub(crate) fn dcx(&self) -> DiagCtxtHandle<'sess>
Sourcepub fn parse_attribute_list(
&mut self,
attrs: &[Attribute],
target_span: Span,
target_id: S::Id,
omit_doc: OmitDoc,
lower_span: impl Copy + Fn(Span) -> Span,
emit_lint: impl FnMut(AttributeLint<S::Id>),
) -> Vec<Attribute>
pub fn parse_attribute_list( &mut self, attrs: &[Attribute], target_span: Span, target_id: S::Id, omit_doc: OmitDoc, lower_span: impl Copy + Fn(Span) -> Span, emit_lint: impl FnMut(AttributeLint<S::Id>), ) -> Vec<Attribute>
Parse a list of attributes.
target_span
is the span of the thing this list of attributes is applied to,
and when omit_doc
is set, doc attributes are filtered out.
fn lower_attr_args( &self, args: &AttrArgs, lower_span: impl Fn(Span) -> Span, ) -> AttrArgs
Trait Implementations§
Source§impl<'f, 'sess, S: Stage> Deref for AcceptContext<'f, 'sess, S>
impl<'f, 'sess, S: Stage> Deref for AcceptContext<'f, 'sess, S>
Auto Trait Implementations§
impl<'f, 'sess, S> !DynSend for AcceptContext<'f, 'sess, S>
impl<'f, 'sess, S> !DynSync for AcceptContext<'f, 'sess, S>
impl<'f, 'sess, S> Freeze for AcceptContext<'f, 'sess, S>
impl<'f, 'sess, S> !RefUnwindSafe for AcceptContext<'f, 'sess, S>
impl<'f, 'sess, S> !Send for AcceptContext<'f, 'sess, S>
impl<'f, 'sess, S> !Sync for AcceptContext<'f, 'sess, S>
impl<'f, 'sess, S> Unpin for AcceptContext<'f, 'sess, S>
impl<'f, 'sess, S> !UnwindSafe for AcceptContext<'f, 'sess, S>
Blanket Implementations§
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, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
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<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>
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.