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

Expand description

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

Visitor used to check if a generic parameter is used.

Visitor used to aggregate generic parameter uses.

Functions

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

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.

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

Provide implementations of queries relating to polymorphization analysis.

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).