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

Generalized type relating mechanism. A type relation R relates a pair of values (A, B). A and B are usually types or regions but can be other things. Examples of type relations are subtyping, type equality, etc.

Re-exports

use hir::def_id::DefId;
use middle::const_val::ConstVal;
use ty::subst::Kind;
use ty::subst::UnpackedKind;
use ty::subst::Substs;
use ty;
use ty::Ty;
use ty::TyCtxt;
use ty::TypeFoldable;
use ty::error::ExpectedFound;
use ty::error::TypeError;
use mir::interpret::GlobalId;
use mir::interpret::Value;
use mir::interpret::PrimVal;
use util::common::ErrorReported;
use std::rc::Rc;
use std::iter;
use rustc_target::spec::abi;
use hir as ast;
use rustc_data_structures::accumulate_vec::AccumulateVec;

Structs

GeneratorWitness [
Experimental
]

Enums

Cause [
Experimental
]

Traits

Relate [
Experimental
]
TypeRelation [
Experimental
]

Functions

expected_found [
Experimental
]
expected_found_bool [
Experimental
]
relate_substs [
Experimental
]
super_relate_tys [
Experimental
]

The main "type relation" routine. Note that this does not handle inference artifacts, so you should filter those out before calling it.

Type Definitions

RelateResult [
Experimental
]