Module rustc::middle::typeck::check[src]

Modules

_match
demand
method

Method lookup

regionck

The region check is a final pass that runs over the AST after we have inferred the type constraints but before we have actually finalized the types. Its purpose is to embed a variety of region constraints. Inserting these constraints as a separate pass is good because (1) it localizes the code that has to do with region inference and (2) often we cannot know what constraints are needed until the basic types have been inferred.

regionmanip
vtable
writeback

Structs

FnCtxt
FnStyleState
Inherited

Fields that are part of a FnCtxt which are inherited by closures defined within the function. For example:

Enums

DerefArgs
LvaluePreference

Functions

ast_expr_vstore_to_ty
autoderef

Executes an autoderef loop for the type t. At each step, invokes should_stop to decide whether to terminate the loop. Returns the final type and number of derefs that it performed.

check_block_no_value
check_bounds_are_used
check_const
check_const_with_ty
check_decl_initializer
check_decl_local
check_enum_variants
check_enum_variants_sized
check_expr_has_type
check_instantiable

Checks whether a type can be created without an instance of itself. This is similar but different from the question of whether a type can be represented. For example, the following type:

check_intrinsic_type
check_item
check_item_sized
check_item_types
check_representable

Checks whether a type can be represented in memory. In particular, it identifies types that contain themselves without indirection through a pointer, which would mean their size is unbounded. This is different from the question of whether a type can be instantiated. See the definition of check_instantiable.

check_simd
check_stmt
check_struct
impl_self_ty
instantiate_path
lookup_def
lookup_field_ty
may_break
polytype_for_def
require_integral
require_uint
structurally_resolved_type
structure_of
type_is_integral
type_is_uint
valid_range_bounds