Skip to main content

Module expand

Module expand 

Source

Re-exportsΒ§

use std::path::PathBuf; πŸ”’
use std::rc::Rc; πŸ”’
use std::sync::Arc; πŸ”’
use std::iter; πŸ”’
use std::mem; πŸ”’
use std::slice; πŸ”’
use rustc_ast::tokenstream::TokenStream; πŸ”’
use rustc_ast::visit::AssocCtxt; πŸ”’
use rustc_ast::visit::Visitor; πŸ”’
use rustc_ast::visit::VisitorResult; πŸ”’
use rustc_ast::visit::try_visit; πŸ”’
use rustc_ast::visit::walk_list; πŸ”’
use rustc_ast as ast; πŸ”’
use rustc_ast::AssocItemKind; πŸ”’
use rustc_ast::AstNodeWrapper; πŸ”’
use rustc_ast::AttrArgs; πŸ”’
use rustc_ast::AttrKind; πŸ”’
use rustc_ast::AttrStyle; πŸ”’
use rustc_ast::AttrVec; πŸ”’
use rustc_ast::DUMMY_NODE_ID; πŸ”’
use rustc_ast::DelegationSource; πŸ”’
use rustc_ast::DelegationSuffixes; πŸ”’
use rustc_ast::ExprKind; πŸ”’
use rustc_ast::ForeignItemKind; πŸ”’
use rustc_ast::HasAttrs; πŸ”’
use rustc_ast::HasNodeId; πŸ”’
use rustc_ast::Inline; πŸ”’
use rustc_ast::ItemKind; πŸ”’
use rustc_ast::MacStmtStyle; πŸ”’
use rustc_ast::MetaItemInner; πŸ”’
use rustc_ast::MetaItemKind; πŸ”’
use rustc_ast::ModKind; πŸ”’
use rustc_ast::NodeId; πŸ”’
use rustc_ast::PatKind; πŸ”’
use rustc_ast::StmtKind; πŸ”’
use rustc_ast::SyntheticAttr; πŸ”’
use rustc_ast::TyKind; πŸ”’
use rustc_ast::token; πŸ”’
use rustc_ast_pretty::pprust; πŸ”’
use rustc_attr_ir::target::AstTarget; πŸ”’
use rustc_attr_ir::target::Target; πŸ”’
use rustc_attr_parsing::parser::AllowExprMetavar; πŸ”’
use rustc_attr_parsing::AttributeParser; πŸ”’
use rustc_attr_parsing::AttributeSafety; πŸ”’
use rustc_attr_parsing::CFG_TEMPLATE; πŸ”’
use rustc_attr_parsing::EvalConfigResult; πŸ”’
use rustc_attr_parsing::ShouldEmit; πŸ”’
use rustc_attr_parsing::eval_config_entry; πŸ”’
use rustc_attr_parsing::parse_cfg; πŸ”’
use rustc_attr_parsing::validate_attr; πŸ”’
use rustc_data_structures::flat_map_in_place::FlatMapInPlace; πŸ”’
use rustc_errors::PResult; πŸ”’
use rustc_feature::Features; πŸ”’
use rustc_hir::def::MacroKinds; πŸ”’
use rustc_lint_defs::builtin::UNUSED_ATTRIBUTES; πŸ”’
use rustc_lint_defs::builtin::UNUSED_DOC_COMMENTS; πŸ”’
use rustc_parse::parser::AllowConstBlockItems; πŸ”’
use rustc_parse::parser::AttemptLocalParseRecovery; πŸ”’
use rustc_parse::parser::CommaRecoveryMode; πŸ”’
use rustc_parse::parser::ForceCollect; πŸ”’
use rustc_parse::parser::Parser; πŸ”’
use rustc_parse::parser::RecoverColon; πŸ”’
use rustc_parse::parser::RecoverComma; πŸ”’
use rustc_parse::parser::Recovery; πŸ”’
use rustc_parse::parser::token_descr; πŸ”’
use rustc_session::diagnostics::feature_err; πŸ”’
use rustc_span::hygiene::SyntaxContext; πŸ”’
use rustc_span::ErrorGuaranteed; πŸ”’
use rustc_span::FileName; πŸ”’
use rustc_span::Ident; πŸ”’
use rustc_span::LocalExpnId; πŸ”’
use rustc_span::Span; πŸ”’
use rustc_span::Symbol; πŸ”’
use rustc_span::sym; πŸ”’
use rustc_structures::Limit; πŸ”’
use smallvec::SmallVec; πŸ”’
use crate::config::StripUnconfigured; πŸ”’
use crate::diagnostics::CfgNotSupportedInPosition; πŸ”’
use crate::diagnostics::EmptyDelegationMac; πŸ”’
use crate::diagnostics::GlobDelegationOutsideImpls; πŸ”’
use crate::diagnostics::GlobDelegationTraitlessQpath; πŸ”’
use crate::diagnostics::IncompleteParse; πŸ”’
use crate::diagnostics::RecursionLimitReached; πŸ”’
use crate::diagnostics::RemoveExprNotSupported; πŸ”’
use crate::diagnostics::UnsupportedKeyValue; πŸ”’
use crate::diagnostics::WrongFragmentKind; πŸ”’
use crate::mbe::diagnostics::annotate_err_with_kind; πŸ”’
use crate::module::DirOwnership; πŸ”’
use crate::module::ParsedExternalMod; πŸ”’
use crate::module::mod_dir_path; πŸ”’
use crate::module::mod_file_path_from_attr; πŸ”’
use crate::module::parse_external_mod; πŸ”’
use crate::placeholders::PlaceholderExpander; πŸ”’
use crate::placeholders::placeholder; πŸ”’
use rustc_ast::mut_visit::*; πŸ”’
use crate::base::*; πŸ”’
use crate::stats::*; πŸ”’

MacrosΒ§

assign_id πŸ”’
Wraps a call to walk_* / walk_flat_map_* for an AST node that supports attributes (see the Annotatable enum) This method assigns a NodeId, and sets that NodeId as our current β€˜lint node id’. If a macro call is found inside this AST node, we will use this AST node’s NodeId to emit lints associated with that macro (allowing #[allow] / #[deny] to be applied close to the macro invocation).
ast_fragments πŸ”’
declared_idents πŸ”’

StructsΒ§

ExpansionConfig
ImplItemTag πŸ”’
Invocation
InvocationCollector πŸ”’
MacroExpander
MethodReceiverTag πŸ”’
This struct is a hack to workaround unstable of stmt_expr_attributes. It can be removed once that feature is stabilized.
OptExprTag πŸ”’
TraitImplItemTag πŸ”’
TraitItemTag πŸ”’

EnumsΒ§

AddSemicolon πŸ”’
AstFragment
A fragment of AST that can be produced by a single macro expansion. Can also serve as an input and intermediate result for macro expansion operations.
AstFragmentKind
β€œDiscriminant” of an AST fragment.
InvocationKind
SupportsMacroExpansion

TraitsΒ§

DeclaredIdents
DummyAstNode πŸ”’
Required for visit_node obtained an owned Node from &mut Node.
InvocationCollectorNode πŸ”’
A trait implemented for all AstFragment nodes and providing all pieces of functionality used by InvocationCollector.

FunctionsΒ§

build_single_delegations πŸ”’
ensure_complete_parse πŸ”’
parse_ast_fragment