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

This module contains TypeVariants and its major components

Structs

Binder [
Experimental
]

Binder is a binder for higher-ranked lifetimes. It is part of the compiler's representation for things like for<'a> Fn(&'a isize) (which would be represented by the type PolyTraitRef == Binder<TraitRef>). Note that when we skolemize, instantiate, erase, or otherwise "discharge" these bound regions, we change the type from Binder<T> to just T (see e.g. liberate_late_bound_regions).

CanonicalVar [
Experimental
]
ClosureSubsts [
Experimental
]

A closure can be modeled as a struct that looks like:

Const [
Experimental
]

Typed constant value.

DebruijnIndex [
Experimental
]
EarlyBoundRegion [
Experimental
]
ExistentialProjection [
Experimental
]

A ProjectionPredicate for an ExistentialTraitRef.

ExistentialTraitRef [
Experimental
]

An existential reference to a trait, where Self is erased. For example, the trait object Trait<'a, 'b, X, Y> is:

FloatVid [
Experimental
]
FnSig [
Experimental
]

Signature of a function type, which I have arbitrarily decided to use to refer to the input/output types.

FreeRegion [
Experimental
]

A "free" region fr can be interpreted as "some region at least as big as the scope fr.scope".

GenSig [
Experimental
]
GeneratorSubsts [
Experimental
]
IntVid [
Experimental
]
ParamTy [
Experimental
]
ProjectionTy [
Experimental
]

Represents the projection of an associated type. In explicit UFCS form this would be written <T as Trait<..>>::N.

RegionVid [
Experimental
]
SplitClosureSubsts [
Experimental
]

Struct returned by split(). Note that these are subslices of the parent slice and not canonical substs themselves.

SplitGeneratorSubsts [
Experimental
]
TraitRef [
Experimental
]

A complete reference to a trait. These take numerous guises in syntax, but perhaps the most recognizable form is in a where clause:

TyVid [
Experimental
]
TypeAndMut [
Experimental
]

Enums

BoundRegion [
Experimental
]
ExistentialPredicate [
Experimental
]
InferTy [
Experimental
]
RegionKind [
Experimental
]

Representation of regions.

TypeVariants [
Experimental
]

NB: If you change this, you'll probably want to change the corresponding AST structure in libsyntax/ast.rs as well.

UpvarSubsts [
Experimental
]

Constants

INNERMOST [
Experimental
]

Type Definitions

PolyExistentialProjection [
Experimental
]
PolyExistentialTraitRef [
Experimental
]
PolyFnSig [
Experimental
]
PolyGenSig [
Experimental
]
PolyTraitRef [
Experimental
]
Region [
Experimental
]

Existentials

[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]
[
Experimental
]