Struct rustc_ap_rustc_parse::parser::AttrWrapper [−][src]
pub struct AttrWrapper { /* fields omitted */ }Expand description
A wrapper type to ensure that the parser handles outer attributes correctly. When we parse outer attributes, we need to ensure that we capture tokens for the attribute target. This allows us to perform cfg-expansion on a token stream before we invoke a derive proc-macro.
This wrapper prevents direct access to the underlying Vec<ast::Attribute>.
Parsing code can only get access to the underlying attributes
by passing an AttrWrapper to collect_tokens_trailing_tokens.
This makes it difficult to accidentally construct an AST node
(which stores a Vec<ast::Attribute>) without first collecting tokens.
This struct has its own module, to ensure that the parser code
cannot directly access the attrs field
Implementations
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for AttrWrapperimpl !Send for AttrWrapperimpl !Sync for AttrWrapperimpl Unpin for AttrWrapperimpl !UnwindSafe for AttrWrapperBlanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
type Output = T
type Output = TShould always be Self
pub fn vzip(self) -> V