Crate rustc_resolve[][src]

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Re-exports

extern crate std;
extern crate log;
extern crate syntax;
extern crate syntax_pos;
extern crate rustc_errors as errors;
extern crate arena;
extern crate rustc;
extern crate rustc_data_structures;
use std::prelude::v1::*;
use self::TypeParameters::*;
use self::RibKind::*;
use rustc::hir::map::Definitions;
use rustc::hir::map::DefCollector;
use rustc::hir;
use rustc::hir::PrimTy;
use rustc::hir::TyBool;
use rustc::hir::TyChar;
use rustc::hir::TyFloat;
use rustc::hir::TyInt;
use rustc::hir::TyUint;
use rustc::hir::TyStr;
use rustc::middle::cstore::CrateStore;
use rustc::middle::cstore::CrateLoader;
use rustc::session::Session;
use rustc::lint;
use rustc::hir::def::*;
use rustc::hir::def::Namespace::*;
use rustc::hir::def_id::CRATE_DEF_INDEX;
use rustc::hir::def_id::LOCAL_CRATE;
use rustc::hir::def_id::DefId;
use rustc::ty;
use rustc::hir::Freevar;
use rustc::hir::FreevarMap;
use rustc::hir::TraitCandidate;
use rustc::hir::TraitMap;
use rustc::hir::GlobMap;
use rustc::util::nodemap::NodeMap;
use rustc::util::nodemap::NodeMap;
use rustc::util::nodemap::NodeSet;
use rustc::util::nodemap::NodeSet;
use rustc::util::nodemap::FxHashMap;
use rustc::util::nodemap::FxHashMap;
use rustc::util::nodemap::FxHashSet;
use rustc::util::nodemap::FxHashSet;
use rustc::util::nodemap::DefIdMap;
use rustc::util::nodemap::DefIdMap;
use syntax::codemap::CodeMap;
use syntax::ext::hygiene::Mark;
use syntax::ext::hygiene::MarkKind;
use syntax::ext::hygiene::SyntaxContext;
use syntax::ast;
use syntax::ast::Name;
use syntax::ast::NodeId;
use syntax::ast::Ident;
use syntax::ast::FloatTy;
use syntax::ast::IntTy;
use syntax::ast::UintTy;
use syntax::ext::base::SyntaxExtension;
use syntax::ext::base::Determinacy;
use syntax::ext::base::Determinacy::Determined;
use syntax::ext::base::Determinacy::Undetermined;
use syntax::ext::base::MacroKind;
use syntax::symbol::Symbol;
use syntax::symbol::keywords;
use syntax::util::lev_distance::find_best_match_for_name;
use syntax::visit;
use syntax::visit::FnKind;
use syntax::visit::Visitor;
use syntax::attr;
use syntax::ast::Arm;
use syntax::ast::BindingMode;
use syntax::ast::Block;
use syntax::ast::Crate;
use syntax::ast::Expr;
use syntax::ast::ExprKind;
use syntax::ast::FnDecl;
use syntax::ast::ForeignItem;
use syntax::ast::ForeignItemKind;
use syntax::ast::GenericParam;
use syntax::ast::Generics;
use syntax::ast::Item;
use syntax::ast::ItemKind;
use syntax::ast::ImplItem;
use syntax::ast::ImplItemKind;
use syntax::ast::Label;
use syntax::ast::Local;
use syntax::ast::Mutability;
use syntax::ast::Pat;
use syntax::ast::PatKind;
use syntax::ast::Path;
use syntax::ast::QSelf;
use syntax::ast::TraitItemKind;
use syntax::ast::TraitRef;
use syntax::ast::Ty;
use syntax::ast::TyKind;
use syntax::feature_gate::feature_err;
use syntax::feature_gate::GateIssue;
use syntax::ptr::P;
use syntax::ptr::P;
use syntax_pos::Span;
use syntax_pos::DUMMY_SP;
use syntax_pos::MultiSpan;
use errors::DiagnosticBuilder;
use errors::DiagnosticId;
use std::cell::Cell;
use std::cell::RefCell;
use std::cmp;
use std::collections::BTreeSet;
use std::fmt;
use std::iter;
use std::mem::replace;
use rustc_data_structures::sync::Lrc;
use resolve_imports::ImportDirective;
use resolve_imports::ImportDirectiveSubclass;
use resolve_imports::NameResolution;
use resolve_imports::ImportResolver;
use macros::InvocationData;
use macros::LegacyBinding;
use macros::LegacyScope;
use macros::MacroBinding;

Modules

build_reduced_graph [
Experimental
]

Reduced graph building

check_unused [
Experimental
]
diagnostics [
Experimental
]
macros [
Experimental
]
resolve_imports [
Experimental
]

Structs

AmbiguityError [
Experimental
]
BindingError [
Experimental
]
BindingInfo [
Experimental
]
ImportSuggestion [
Experimental
]

A free importable items suggested in case of resolution failure.

ModuleData [
Experimental
]

One node in the tree of modules.

NameBinding [
Experimental
]

Records a possibly-private value, type, or module definition.

PerNS [
Experimental
]

Just a helper ‒ separate structure for each namespace.

PrimitiveTypeTable [
Experimental
]

Interns the names of the primitive types.

PrivacyError [
Experimental
]
Resolver [
Experimental
]

The main resolver class.

ResolverArenas [
Experimental
]

Nothing really interesting here, it just provides memory for the rest of the crate.

Rib [
Experimental
]

One local scope.

UseError [
Experimental
]
UsePlacementFinder [
Experimental
]

Enums

AliasPossibility [
Experimental
]
AssocSuggestion [
Experimental
]

A field or associated item from self type suggested in case of resolution failure.

CrateLint [
Experimental
]
LexicalScopeBinding [
Experimental
]

An intermediate resolution result.

MakeGlobMap [
Experimental
]
ModuleKind [
Experimental
]
NameBindingKind [
Experimental
]
Namespace [
Experimental
]

Different kinds of symbols don't influence each other.

PathResult [
Experimental
]
PathSource [
Experimental
]
PatternSource [
Experimental
]
ResolutionError [
Experimental
]
RibKind [
Experimental
]

The rib kind controls the translation of local definitions (Def::Local) to upvars (Def::Upvar).

TypeParameters [
Experimental
]

Constants

DIAGNOSTICS [
Experimental
]

Traits

ToNameBinding [
Experimental
]

Functions

err_path_resolution [
Experimental
]
import_candidate_to_paths [
Experimental
]

Get the path for an enum and the variant from an ImportSuggestion for an enum variant.

is_self_type [
Experimental
]
is_self_value [
Experimental
]
module_to_string [
Experimental
]

A somewhat inefficient routine to obtain the name of a module.

names_to_string [
Experimental
]
path_names_to_string [
Experimental
]
reduce_impl_span_to_impl_keyword [
Experimental
]

Adjust the impl span so that just the impl keyword is taken by removing everything after < ("impl<T> Iterator for A<T> {}" -> "impl") and everything after the first whitespace ("impl Iterator for A" -> "impl")

resolve_error [
Experimental
]

Combines an error with provided span and emits it

resolve_struct_error [
Experimental
]
show_candidates [
Experimental
]

When an entity with a given name is not available in scope, we search for entities with that name in all crates. This method allows outputting the results of this search in a programmer-friendly way

Type Definitions

BindingMap [
Experimental
]

Map from the name in a pattern to its binding mode.

Module [
Experimental
]