Expand description
HIR pretty-printing is layered on top of AST pretty-printing. A number of
the definitions in this file have equivalents in rustc_ast_pretty.
Re-exportsΒ§
pub(crate) use std::cell::Cell;πpub(crate) use std::vec;πpub(crate) use std::vec;πpub(crate) use rustc_abi::ExternAbi;πpub(crate) use rustc_ast as ast;πpub(crate) use parser;πpub(crate) use ExprPrecedence;πpub(crate) use Fixity;πpub(crate) use DUMMY_NODE_ID;πpub(crate) use DelimArgs;πpub(crate) use Consistent;πpub(crate) use Inconsistent;πpub(crate) use pp;πpub(crate) use BoxMarker;πpub(crate) use Breaks;πpub(crate) use rustc_ast_pretty::pprust::state::MacHeader;πpub(crate) use Comments;πpub(crate) use PrintState;πpub(crate) use AttrArgs;πpub(crate) use AttrItem;πpub(crate) use Attribute;πpub(crate) use AttributeKind;πpub(crate) use PrintAttribute;πpub(crate) use rustc_hir as hir;πpub(crate) use BindingMode;πpub(crate) use ByRef;πpub(crate) use ConstArg;πpub(crate) use ConstArgExprField;πpub(crate) use ConstArgKind;πpub(crate) use GenericArg;πpub(crate) use GenericBound;πpub(crate) use GenericParam;πpub(crate) use GenericParamKind;πpub(crate) use HirId;πpub(crate) use ImplicitSelfKind;πpub(crate) use LifetimeParamKind;πpub(crate) use Node;πpub(crate) use PatKind;πpub(crate) use PreciseCapturingArg;πpub(crate) use RangeEnd;πpub(crate) use Term;πpub(crate) use TyFieldPath;πpub(crate) use TyPatKind;πpub(crate) use rustc_span::source_map::SourceMap;πpub(crate) use DUMMY_SP;πpub(crate) use FileName;πpub(crate) use Ident;πpub(crate) use Span;πpub(crate) use Spanned;πpub(crate) use Symbol;πpub(crate) use kw;πpub(crate) use sym;π
StructsΒ§
EnumsΒ§
ConstantsΒ§
- INDENT_
UNIT π
TraitsΒ§
FunctionsΒ§
- attribute_
to_ string - attritem_
to_ string - contains_
exterior_ πstruct_ lit - Expressions that syntactically contain an βexteriorβ struct literal, i.e., not surrounded by any
parens or other delimiters, e.g.,
X { y: 1 },X { y: 1 }.method(),foo == X { y: 1 }andX { y: 1 } == fooall do, but(X { y: 1 }) == foodoes not. - expr_
requires_ πsemi_ to_ be_ stmt - Does this expression require a semicolon to be treated as a statement? The negation of this: βcan this expression be used as a statement without a semicolonβ β is used as an early-bail-out in the parser so that, for instance, if true {β¦} else {β¦} |x| 5 isnβt parsed as (if true {β¦} else {β¦} | x) | 5
- expr_
to_ string - id_
to_ string - item_
to_ string - pat_
to_ string - print_
crate - Requires you to pass an input filename and reader so that it can scan the input text for comments to copy forward.
- qpath_
to_ string - stmt_
ends_ πwith_ semi - This statement requires a semicolon after it. note that in one case (stmt_semi), weβve already seen the semicolon, and thus donβt need another.
- to_
string π - ty_
to_ string