Module rustc::ty::query[][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

use dep_graph::DepConstructor;
use dep_graph::DepNode;
use errors::DiagnosticBuilder;
use hir::def_id::CrateNum;
use hir::def_id::DefId;
use hir::def_id::DefIndex;
use hir::def::Def;
use hir::def::Export;
use hir;
use hir::TraitCandidate;
use hir::ItemLocalId;
use hir::CodegenFnAttrs;
use hir::svh::Svh;
use infer::canonical;
use infer::canonical::Canonical;
use lint;
use middle::borrowck::BorrowCheckResult;
use middle::cstore::ExternCrate;
use middle::cstore::LinkagePreference;
use middle::cstore::NativeLibrary;
use middle::cstore::ForeignModule;
use middle::cstore::NativeLibraryKind;
use middle::cstore::DepKind;
use middle::cstore::CrateSource;
use middle::privacy::AccessLevels;
use middle::reachable::ReachableSet;
use middle::region;
use middle::resolve_lifetime::ResolveLifetimes;
use middle::resolve_lifetime::Region;
use middle::resolve_lifetime::ObjectLifetimeDefault;
use middle::stability;
use middle::stability::DeprecationEntry;
use middle::lang_items::LanguageItems;
use middle::lang_items::LangItem;
use middle::exported_symbols::SymbolExportLevel;
use middle::exported_symbols::ExportedSymbol;
use middle::const_val::EvalResult;
use mir::mono::CodegenUnit;
use mir::mono::Stats;
use mir;
use mir::interpret::GlobalId;
use mir::interpret::Allocation;
use mir::interpret::ConstValue;
use session::CompileResult;
use session::CrateDisambiguator;
use session::config::OutputFilenames;
use traits;
use traits::Vtable;
use traits::query::CanonicalPredicateGoal;
use traits::query::CanonicalProjectionGoal;
use traits::query::CanonicalTyGoal;
use traits::query::NoSolution;
use traits::query::dropck_outlives::DtorckConstraint;
use traits::query::dropck_outlives::DropckOutlivesResult;
use traits::query::normalize::NormalizationResult;
use traits::specialization_graph;
use traits::Clauses;
use ty;
use ty::CrateInherentImpls;
use ty::ParamEnvAnd;
use ty::Ty;
use ty::TyCtxt;
use ty::steal::Steal;
use ty::subst::Substs;
use util::nodemap::DefIdSet;
use util::nodemap::DefIdSet;
use util::nodemap::DefIdMap;
use util::nodemap::DefIdMap;
use util::nodemap::ItemLocalSet;
use util::nodemap::ItemLocalSet;
use util::common::ErrorReported;
use rustc_data_structures::indexed_set::IdxSetBuf;
use rustc_target::spec::PanicStrategy;
use rustc_data_structures::indexed_vec::IndexVec;
use rustc_data_structures::fx::FxHashMap;
use rustc_data_structures::fx::FxHashMap;
use rustc_data_structures::fx::FxHashSet;
use rustc_data_structures::fx::FxHashSet;
use rustc_data_structures::stable_hasher::StableVec;
use std::ops::Deref;
use rustc_data_structures::sync::Lrc;
use std::sync::Arc;
use syntax_pos::Span;
use syntax_pos::DUMMY_SP;
use syntax_pos::symbol::InternedString;
use syntax::attr;
use syntax::ast;
use syntax::feature_gate;
use syntax::symbol::Symbol;
use self::plumbing::*;
use self::keys::Key;
use self::values::Value;
use self::config::QueryAccessors;
use self::config::QueryDescription;
use std::mem;
use rustc_data_structures::sync::Lock;
use rustc_data_structures::stable_hasher::HashStable;
use rustc_data_structures::stable_hasher::StableHasherResult;
use rustc_data_structures::stable_hasher::StableHasher;
use ich::StableHashingContext;

Modules

__query_compute [
Experimental
]
config [
Experimental
]
job [
Experimental
]
keys [
Experimental
]

Defines the set of legal keys that can be used in queries.

on_disk_cache [
Experimental
]
plumbing [
Experimental
]

The implementation of the query system itself. Defines the macros that generate the actual methods on tcx which find and execute the provider, manage the caches, and so forth.

queries [
Experimental
]
values [
Experimental
]

Structs

CycleError [
Experimental
]
OnDiskCache [
Experimental
]

OnDiskCache provides an interface to incr. comp. data cached from the previous compilation session. This data will eventually include the results of a few selected queries (like typeck_tables_of and mir_optimized) and any diagnostics that have been emitted during a query.

Providers [
Experimental
]
Queries [
Experimental
]
QueryInfo [
Experimental
]

A span and a query key

QueryJob [
Experimental
]

A object representing an active query job.

TyCtxtAt [
Experimental
]

Enums

Query [
Experimental
]

Traits

QueryConfig [
Experimental
]

Functions

all_crate_nums_node [
Experimental
]
all_traits_node [
Experimental
]
codegen_fn_attrs [
Experimental
]
collect_and_partition_mono_items_node [
Experimental
]
const_eval_dep_node [
Experimental
]
const_value_to_allocation [
Experimental
]
crate_inherent_impls_dep_node [
Experimental
]
crate_variances [
Experimental
]
erase_regions_ty [
Experimental
]
features_node [
Experimental
]
force_from_dep_node [
Experimental
]

The red/green evaluation system will try to mark a specific DepNode in the dependency graph as green by recursively trying to mark the dependencies of that DepNode as green. While doing so, it will sometimes encounter a DepNode where we don't know if it is red or green and we therefore actually have to recompute its value in order to find out. Since the only piece of information that we have at that point is the DepNode we are trying to re-evaluate, we need some way to re-run a query from just that. This is what force_from_dep_node() implements.

fulfill_obligation_dep_node [
Experimental
]
get_lang_items_node [
Experimental
]
implementations_of_trait_node [
Experimental
]
inherent_impls_overlap_check_dep_node [
Experimental
]
instance_def_size_estimate_dep_node [
Experimental
]
is_copy_dep_node [
Experimental
]
is_freeze_dep_node [
Experimental
]
is_sized_dep_node [
Experimental
]
layout_dep_node [
Experimental
]
link_args_node [
Experimental
]
lint_levels_node [
Experimental
]
maybe_unused_extern_crates_node [
Experimental
]
mir_keys [
Experimental
]
mir_shim_dep_node [
Experimental
]
needs_drop_dep_node [
Experimental
]
output_filenames_node [
Experimental
]
postorder_cnums_node [
Experimental
]
reachability_dep_node [
Experimental
]
specializes_node [
Experimental
]
stability_index_node [
Experimental
]
substitute_normalize_and_test_predicates_node [
Experimental
]
symbol_name_dep_node [
Experimental
]
target_features_whitelist_node [
Experimental
]
type_param_predicates [
Experimental
]
typeck_item_bodies_dep_node [
Experimental
]
visible_parent_map_node [
Experimental
]
vtable_methods_node [
Experimental
]