Skip to main content

Module imports

Module imports 

Source
Expand description

A bunch of methods and structures more or less related to resolving imports.

Re-exportsΒ§

use std::cmp::Ordering; πŸ”’
use std::mem; πŸ”’
use rustc_ast::NodeId; πŸ”’
use rustc_data_structures::fx::FxHashSet; πŸ”’
use rustc_data_structures::fx::FxIndexSet; πŸ”’
use rustc_data_structures::intern::Interned; πŸ”’
use rustc_errors::Applicability; πŸ”’
use rustc_errors::BufferedEarlyLint; πŸ”’
use rustc_errors::Diagnostic; πŸ”’
use rustc_expand::base::SyntaxExtensionKind; πŸ”’
use rustc_hir::def; πŸ”’
use rustc_hir::def::DefKind; πŸ”’
use rustc_hir::def_id::DefId; πŸ”’
use rustc_hir::def_id::LocalDefId; πŸ”’
use rustc_hir::def_id::LocalDefIdMap; πŸ”’
use rustc_lint_defs::LintId; πŸ”’
use rustc_lint_defs::builtin::AMBIGUOUS_GLOB_REEXPORTS; πŸ”’
use rustc_lint_defs::builtin::EXPORTED_PRIVATE_DEPENDENCIES; πŸ”’
use rustc_lint_defs::builtin::HIDDEN_GLOB_REEXPORTS; πŸ”’
use rustc_lint_defs::builtin::PUB_USE_OF_PRIVATE_EXTERN_CRATE; πŸ”’
use rustc_lint_defs::builtin::REDUNDANT_IMPORTS; πŸ”’
use rustc_lint_defs::builtin::UNUSED_IMPORTS; πŸ”’
use rustc_middle::middle::resolve::AmbigModChild; πŸ”’
use rustc_middle::middle::resolve::ModChild; πŸ”’
use rustc_middle::middle::resolve::PartialRes; πŸ”’
use rustc_middle::middle::resolve::Reexport; πŸ”’
use rustc_middle::ty::Visibility; πŸ”’
use rustc_session::diagnostics::feature_err; πŸ”’
use rustc_span::edit_distance::find_best_match_for_name; πŸ”’
use rustc_span::hygiene::LocalExpnId; πŸ”’
use rustc_span::Ident; πŸ”’
use rustc_span::OrdSpan; πŸ”’
use rustc_span::Span; πŸ”’
use rustc_span::Symbol; πŸ”’
use rustc_span::kw; πŸ”’
use rustc_span::span_bug; πŸ”’
use rustc_span::sym; πŸ”’
use tracing::debug; πŸ”’
use crate::Namespace; πŸ”’
use crate::diagnostics::impls::OnUnknownData; πŸ”’
use crate::diagnostics::impls::Suggestion; πŸ”’
use crate::diagnostics; πŸ”’
use crate::diagnostics::CannotBeReexportedCratePublic; πŸ”’
use crate::diagnostics::CannotBeReexportedCratePublicNS; πŸ”’
use crate::diagnostics::CannotBeReexportedPrivate; πŸ”’
use crate::diagnostics::CannotBeReexportedPrivateNS; πŸ”’
use crate::diagnostics::CannotDetermineImportResolution; πŸ”’
use crate::diagnostics::CannotGlobImportAllCrates; πŸ”’
use crate::diagnostics::ConsiderAddingMacroExport; πŸ”’
use crate::diagnostics::ConsiderMarkingAsPub; πŸ”’
use crate::diagnostics::ConsiderMarkingAsPubCrate; πŸ”’
use crate::ref_mut::CmCell; πŸ”’
use crate::ref_mut::CmRefCell; πŸ”’
use crate::AmbiguityError; πŸ”’
use crate::BindingKey; πŸ”’
use crate::Decl; πŸ”’
use crate::DeclData; πŸ”’
use crate::DeclKind; πŸ”’
use crate::Determinacy; πŸ”’
use crate::Finalize; πŸ”’
use crate::IdentKey; πŸ”’
use crate::ImportSuggestion; πŸ”’
use crate::ImportSummary; πŸ”’
use crate::LocalModule; πŸ”’
use crate::ModuleOrUniformRoot; πŸ”’
use crate::ParentScope; πŸ”’
use crate::PathResult; πŸ”’
use crate::PerNS; πŸ”’
use crate::Res; πŸ”’
use crate::ResolutionError; πŸ”’
use crate::Resolver; πŸ”’
use crate::ScopeSet; πŸ”’
use crate::Segment; πŸ”’
use crate::Used; πŸ”’
use crate::module_to_string; πŸ”’
use crate::names_to_string; πŸ”’
use crate::Namespace::*; πŸ”’

ModulesΒ§

cycle_detection πŸ”’

StructsΒ§

ImportData πŸ”’
One import.
ImportResolution πŸ”’
NameResolution πŸ”’
Records information about the resolution of a name in a namespace of a module.
UnresolvedImportError πŸ”’
An error that may be transformed into a diagnostic later. Used to combine multiple unresolved import errors within the same use tree into a single diagnostic.

EnumsΒ§

ImportKind πŸ”’
Contains data for specific kinds of imports.
ImportResolutionKind πŸ”’
PendingDecl πŸ”’
A potential import declaration in the process of being planted into a module. Also used for lazily planting names from --extern flags to extern prelude.

FunctionsΒ§

import_kind_to_string πŸ”’
import_path_to_string πŸ”’
pub_use_of_private_extern_crate_hack πŸ”’
remove_same_import πŸ”’
Removes identical import layers from two declarations.

Type AliasesΒ§

Import πŸ”’
Interned is used because values of this type have β€œidentity” and compare as unequal even if they have the same contents.
NameResolutionRef πŸ”’
Interned is used because values of this type have β€œidentity” and compare as unequal even if they have the same contents.