[][src]Struct rustc_ap_rustc_span::symbol::IdentPrinter

pub struct IdentPrinter { /* fields omitted */ }

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]

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]

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

impl Display for IdentPrinter[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

impl<T> Erased for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<E> SpecializationError for E[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.