Struct rustc::middle::ty::ParameterEnvironment[src]
pub struct ParameterEnvironment {
pub free_substs: Substs,
pub bounds: VecPerParamSpace<ParamBounds>,
}When type checking, we use the ParameterEnvironment to track
details about the type/lifetime parameters that are in scope.
It primarily stores the bounds information.
Note: This information might seem to be redundant with the data in
tcx.ty_param_defs, but it is not. That table contains the
parameter definitions from an "outside" perspective, but this
struct will contain the bounds for a parameter as seen from inside
the function body. Currently the only real distinction is that
bound lifetime parameters are replaced with free ones, but in the
future I hope to refine the representation of types so as to make
more distinctions clearer.
Fields
free_substs | A substitution that can be applied to move from the "outer" view of a type or method to the "inner" view. In general, this means converting from bound parameters to free parameters. Since we currently represent bound/free type parameters in the same way, this only has an affect on regions. |
bounds | Bounds on the various type parameters |