Struct rustc_ap_rustc_span::symbol::IdentPrinter [−][src]
pub struct IdentPrinter { /* fields omitted */ }
Expand description
This is the most general way to print identifiers.
AST pretty-printer is used as a fallback for turning AST structures into token streams for
proc macros. Additionally, proc macros may stringify their input and expect it survive the
stringification (especially true for proc macro derives written between Rust 1.15 and 1.30).
So we need to somehow pretty-print $crate
in a way preserving at least some of its
hygiene data, most importantly name of the crate it refers to.
As a result we print $crate
as crate
if it refers to the local crate
and as ::other_crate_name
if it refers to some other crate.
Note, that this is only done if the ident token is printed from inside of AST pretty-pringing,
but not otherwise. Pretty-printing is the only way for proc macros to discover token contents,
so we should not perform this lossy conversion if the top level call to the pretty-printer was
done for a token stream or a single token.
Implementations
impl IdentPrinter
[src]
impl IdentPrinter
[src]pub fn new(
symbol: Symbol,
is_raw: bool,
convert_dollar_crate: Option<Span>
) -> IdentPrinter
[src]
pub fn new(
symbol: Symbol,
is_raw: bool,
convert_dollar_crate: Option<Span>
) -> IdentPrinter
[src]The most general IdentPrinter
constructor. Do not use this.
pub fn for_ast_ident(ident: Ident, is_raw: bool) -> IdentPrinter
[src]
pub fn for_ast_ident(ident: Ident, is_raw: bool) -> IdentPrinter
[src]This implementation is supposed to be used when printing identifiers as a part of pretty-printing for larger AST pieces. Do not use this either.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for IdentPrinter
impl !Send for IdentPrinter
impl !Sync for IdentPrinter
impl Unpin for IdentPrinter
impl UnwindSafe for IdentPrinter
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Instrument for T
[src]
impl<T> Instrument for T
[src]fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
fn in_current_span(self) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<'a, T> Captures<'a> for T where
T: ?Sized,
[src]
T: ?Sized,