Module rustc::middle::typeck[src]

Modules

astconv

Conversion from AST representation of types to the ty.rs representation. The main routine here is ast_ty_to_ty(): each use is parameterized by an instance of AstConv and a RegionScope.

check
coherence
collect
infer

See doc.rs for documentation

rscope
variance

This file infers the variance of type and lifetime parameters. The algorithm is taken from Section 4 of the paper "Taming the Wildcards: Combining Definition- and Use-Site Variance" published in PLDI'11 and written by Altidor et al., and hereafter referred to as The Paper.

Structs

CrateCtxt
MethodCall

With method calls, we store some extra information in side tables (i.e method_map, vtable_map). We use MethodCall as a key to index into these tables instead of just directly using the expression's NodeId. The reason for this being that we may apply adjustments (coercions) with the resulting expression also needing to use the side tables. The problem with this is that we don't assign a separate NodeId to this new expression and so it would clash with the base expression if both needed to add to the side tables. Thus to disambiguate we also keep track of whether there's an adjustment in our key.

MethodCallee
MethodObject
MethodParam
TypeAndSubsts
param_index

Enums

ExprAdjustment
MethodOrigin
vtable_origin

Functions

check_crate
lookup_def_ccx
lookup_def_tcx
no_params
require_same_types
write_substs_to_tcx
write_ty_to_tcx

Type Definitions

MethodMap
impl_vtable_map
vtable_map
vtable_param_res
vtable_res