Skip to main content

Module base

Module base 

Source

Re-exportsΒ§

use std::any::Any; πŸ”’
use std::default::Default; πŸ”’
use std::default::Default; πŸ”’
use std::path::PathBuf; πŸ”’
use std::rc::Rc; πŸ”’
use std::sync::Arc; πŸ”’
use rustc_ast::attr::MarkedAttrs; πŸ”’
use rustc_ast::tokenstream::TokenStream; πŸ”’
use rustc_ast::visit::AssocCtxt; πŸ”’
use rustc_ast::visit::Visitor; πŸ”’
use rustc_ast as ast; πŸ”’
use rustc_ast::AttrVec; πŸ”’
use rustc_ast::Attribute; πŸ”’
use rustc_ast::HasAttrs; πŸ”’
use rustc_ast::Item; πŸ”’
use rustc_ast::NodeId; πŸ”’
use rustc_ast::PatKind; πŸ”’
use rustc_ast::Safety; πŸ”’
use rustc_attr_ir as attrs; πŸ”’
use rustc_attr_ir::CfgEntry; πŸ”’
use rustc_attr_ir::Deprecation; πŸ”’
use rustc_attr_ir::Stability; πŸ”’
use rustc_attr_ir::find_attr; πŸ”’
use rustc_data_structures::fx::FxHashMap; πŸ”’
use rustc_data_structures::fx::FxIndexMap; πŸ”’
use rustc_data_structures::sync; πŸ”’
use rustc_errors::BufferedEarlyLint; πŸ”’
use rustc_errors::DiagCtxtHandle; πŸ”’
use rustc_errors::ErrorGuaranteed; πŸ”’
use rustc_feature::Features; πŸ”’
use rustc_hir::def::MacroKinds; πŸ”’
use rustc_lint_defs::RegisteredTools; πŸ”’
use rustc_parse::MACRO_ARGUMENTS; πŸ”’
use rustc_parse::parser::Parser; πŸ”’
use rustc_session::Session; πŸ”’
use rustc_session::parse::ParseSess; πŸ”’
use rustc_span::def_id::CrateNum; πŸ”’
use rustc_span::def_id::DefId; πŸ”’
use rustc_span::def_id::LocalDefId; πŸ”’
use rustc_span::def_id::ModId; πŸ”’
use rustc_span::edition::Edition; πŸ”’
use rustc_span::hygiene::AstPass; πŸ”’
use rustc_span::hygiene::ExpnData; πŸ”’
use rustc_span::hygiene::ExpnKind; πŸ”’
use rustc_span::hygiene::LocalExpnId; πŸ”’
use rustc_span::hygiene::MacroKind; πŸ”’
use rustc_span::source_map::SourceMap; πŸ”’
use rustc_span::DUMMY_SP; πŸ”’
use rustc_span::Ident; πŸ”’
use rustc_span::Span; πŸ”’
use rustc_span::Symbol; πŸ”’
use rustc_structures::CollapseMacroDebuginfo; πŸ”’
use rustc_structures::Limit; πŸ”’
use smallvec::SmallVec; πŸ”’
use smallvec::smallvec; πŸ”’
use thin_vec::ThinVec; πŸ”’
use crate::diagnostics; πŸ”’
use crate::expand; πŸ”’
use crate::expand::AstFragment; πŸ”’
use crate::expand::Invocation; πŸ”’
use crate::mbe::macro_rules::ParserAnyMacro; πŸ”’
use crate::module::DirOwnership; πŸ”’
use crate::stats::MacroStat; πŸ”’

StructsΒ§

DeriveResolution
DummyResult
Fill-in macro expansion result, to allow compilation to continue after hitting errors.
ExpansionData
ExtCtxt
One of these is made during expansion and incrementally updated as we go; when a macro expansion occurs, the resulting nodes have the backtrace() -> expn_data of their expansion context stored into their span.
Indeterminate
Error type that denotes indeterminacy.
MacEager
MacResult implementation for the common case where you’ve already built each form of AST that you might return.
ModuleData
SyntaxExtension
A struct representing a macro definition in β€œlowered” form ready for expansion.

EnumsΒ§

Annotatable
This type encapsulates every AST node that can have attributes, i.e. those nodes with a non-trivial implementation of HasAttrs.
ExpandResult
Result of an expansion that may need to be retried. Consider using this for non-MultiItemModifier expanders as well.
SyntaxExtensionKind
A syntax extension kind.

TraitsΒ§

AttrProcMacro
BangProcMacro
GlobDelegationExpander
LintStoreExpand
MacResult
The result of a macro expansion. The return values of the various methods are spliced into the AST at the callsite of the macro.
MultiItemModifier
ResolverExpand
TTMacroExpander
Represents a thing that maps token trees to Macro Results

FunctionsΒ§

make_stmts_default πŸ”’

Type AliasesΒ§

LintStoreExpandDyn πŸ”’
MacroExpanderFn
MacroExpanderResult