[−][src]Module rustc_mir::monomorphize::polymorphize

Polymorphization Analysis

This module implements an analysis of functions, methods and closures to determine which generic parameters are unused (and eventually, in what ways generic parameters are used - only for their size, offset of a field, etc.).

Structs

HasUsedGenericParams

Visitor used to check if a generic parameter is used.

MarkUsedGenericParams

Visitor used to aggregate generic parameter uses.

Functions

emit_unused_generic_params_error

Emit errors for the function annotated by #[rustc_polymorphize_error], labelling each generic parameter which was unused.

mark_used_by_default_parameters

Some parameters are considered used-by-default, such as non-generic parameters and the dummy generic parameters from closures, this function marks them as used. leaf_is_closure should be true if the item that unused_generic_params was invoked on is a closure.

mark_used_by_predicates

Search the predicates on used generic parameters for any unused generic parameters, and mark those as used.

provide

Provide implementations of queries relating to polymorphization analysis.

unused_generic_params

Determine which generic parameters are used by the function/method/closure represented by def_id. Returns a bitset where bits representing unused parameters are set (is_empty indicates all parameters are used).