Skip to main content

Module build_reduced_graph

Module build_reduced_graph 

Source
Expand description

After we obtain a fresh AST fragment from a macro, code in this module helps to integrate that fragment into the module structures that are already partially built.

Items from the fragment are placed into modules, unexpanded macros in the fragment are visited and registered. Imports are also considered items and placed into modules here, but not resolved yet.

Re-exportsยง

use std::sync::Arc; ๐Ÿ”’
use rustc_ast::visit; ๐Ÿ”’
use rustc_ast::visit::AssocCtxt; ๐Ÿ”’
use rustc_ast::visit::Visitor; ๐Ÿ”’
use rustc_ast::visit::WalkItemKind; ๐Ÿ”’
use rustc_ast as ast; ๐Ÿ”’
use rustc_ast::AssocItem; ๐Ÿ”’
use rustc_ast::AssocItemKind; ๐Ÿ”’
use rustc_ast::Block; ๐Ÿ”’
use rustc_ast::ConstItem; ๐Ÿ”’
use rustc_ast::DUMMY_NODE_ID; ๐Ÿ”’
use rustc_ast::Delegation; ๐Ÿ”’
use rustc_ast::DelegationSource; ๐Ÿ”’
use rustc_ast::Fn; ๐Ÿ”’
use rustc_ast::ForeignItem; ๐Ÿ”’
use rustc_ast::ForeignItemKind; ๐Ÿ”’
use rustc_ast::Inline; ๐Ÿ”’
use rustc_ast::Item; ๐Ÿ”’
use rustc_ast::ItemKind; ๐Ÿ”’
use rustc_ast::NodeId; ๐Ÿ”’
use rustc_ast::StaticItem; ๐Ÿ”’
use rustc_ast::StmtKind; ๐Ÿ”’
use rustc_ast::TraitAlias; ๐Ÿ”’
use rustc_ast::TyAlias; ๐Ÿ”’
use rustc_attr_ir::Attribute; ๐Ÿ”’
use rustc_attr_ir::AttributeKind; ๐Ÿ”’
use rustc_attr_ir::MacroUseArgs; ๐Ÿ”’
use rustc_attr_parsing::AttributeParser; ๐Ÿ”’
use rustc_data_structures::fx::FxIndexMap; ๐Ÿ”’
use rustc_data_structures::sync::WriteGuard; ๐Ÿ”’
use rustc_expand::base::ResolverExpand; ๐Ÿ”’
use rustc_expand::base::SyntaxExtension; ๐Ÿ”’
use rustc_expand::base::SyntaxExtensionKind; ๐Ÿ”’
use rustc_hir::def; ๐Ÿ”’
use rustc_hir::def_id::DefId; ๐Ÿ”’
use rustc_hir::def_id::LocalDefId; ๐Ÿ”’
use rustc_index::bit_set::DenseBitSet; ๐Ÿ”’
use rustc_metadata::creader::LoadedMacro; ๐Ÿ”’
use rustc_middle::middle::resolve::ModChild; ๐Ÿ”’
use rustc_middle::middle::resolve::PartialRes; ๐Ÿ”’
use rustc_middle::middle::resolve::Reexport; ๐Ÿ”’
use rustc_middle::ty::TyCtxtFeed; ๐Ÿ”’
use rustc_middle::ty::Visibility; ๐Ÿ”’
use rustc_span::def_id::CRATE_MOD_ID; ๐Ÿ”’
use rustc_span::def_id::ModId; ๐Ÿ”’
use rustc_span::hygiene::ExpnId; ๐Ÿ”’
use rustc_span::hygiene::LocalExpnId; ๐Ÿ”’
use rustc_span::hygiene::MacroKind; ๐Ÿ”’
use rustc_span::Ident; ๐Ÿ”’
use rustc_span::Span; ๐Ÿ”’
use rustc_span::Symbol; ๐Ÿ”’
use rustc_span::bug; ๐Ÿ”’
use rustc_span::kw; ๐Ÿ”’
use rustc_span::span_bug; ๐Ÿ”’
use rustc_span::sym; ๐Ÿ”’
use thin_vec::ThinVec; ๐Ÿ”’
use tracing::debug; ๐Ÿ”’
use crate::Namespace::MacroNS; ๐Ÿ”’
use crate::Namespace::TypeNS; ๐Ÿ”’
use crate::Namespace::ValueNS; ๐Ÿ”’
use crate::def_collector::DefCollector; ๐Ÿ”’
use crate::diagnostics::impls::OnUnknownData; ๐Ÿ”’
use crate::diagnostics::impls::StructCtor; ๐Ÿ”’
use crate::imports::ImportData; ๐Ÿ”’
use crate::imports::ImportKind; ๐Ÿ”’
use crate::imports::NameResolution; ๐Ÿ”’
use crate::imports::NameResolutionRef; ๐Ÿ”’
use crate::macros::MacroRulesDecl; ๐Ÿ”’
use crate::macros::MacroRulesScope; ๐Ÿ”’
use crate::macros::MacroRulesScopeRef; ๐Ÿ”’
use crate::ref_mut::CmCell; ๐Ÿ”’
use crate::BindingKey; ๐Ÿ”’
use crate::Decl; ๐Ÿ”’
use crate::DeclData; ๐Ÿ”’
use crate::DeclKind; ๐Ÿ”’
use crate::DelayedVisResolutionError; ๐Ÿ”’
use crate::ExternModule; ๐Ÿ”’
use crate::ExternPreludeEntry; ๐Ÿ”’
use crate::Finalize; ๐Ÿ”’
use crate::IdentKey; ๐Ÿ”’
use crate::LocalModule; ๐Ÿ”’
use crate::Module; ๐Ÿ”’
use crate::ModuleKind; ๐Ÿ”’
use crate::ModuleOrUniformRoot; ๐Ÿ”’
use crate::ParentScope; ๐Ÿ”’
use crate::PathResult; ๐Ÿ”’
use crate::Res; ๐Ÿ”’
use crate::ResolutionTable; ๐Ÿ”’
use crate::Resolver; ๐Ÿ”’
use crate::Segment; ๐Ÿ”’
use crate::Used; ๐Ÿ”’
use crate::VisResolutionError; ๐Ÿ”’
use crate::diagnostics; ๐Ÿ”’
use rustc_hir::def::*; ๐Ÿ”’