struct LexicalResolver<'cx, 'tcx> {
    param_env: ParamEnv<'tcx>,
    region_rels: &'cx RegionRelations<'cx, 'tcx>,
    var_infos: VarInfos,
    data: RegionConstraintData<'tcx>,
}

Fields§

§param_env: ParamEnv<'tcx>§region_rels: &'cx RegionRelations<'cx, 'tcx>§var_infos: VarInfos§data: RegionConstraintData<'tcx>

Implementations§

Initially, the value for all variables is set to 'empty, the empty region. The expansion phase will grow this larger.

Gets the LUb of a given region and the empty region

Expands the value of the region represented with b_vid with current value b_data to the lub of b_data and a_region. The corresponds with the constraint '?b: 'a ('a <: '?b), where 'a is some known region and '?b is some region variable.

True if a <= b.

True if a <= b, but not defined over inference variables.

Returns the least-upper-bound of a and b; i.e., the smallest region c such that a <= c and b <= c.

Neither a nor b may be an inference variable (hence the term “concrete regions”).

After expansion is complete, go and check upper bounds (i.e., cases where the region cannot grow larger than a fixed point) and check that they are satisfied.

Go over the variables that were declared to be error variables and create a RegionResolutionError for each of them.

Collects all regions that “bound” the variable orig_node_idx in the given direction.

If dup_vec is Some it’s used to track duplicates between successive calls of this function.

The return tuple fields are:

  • a list of all concrete regions bounding the given region.
  • the set of all region variables bounding the given region.
  • a bool that’s true if the returned region variables overlap with those returned by a previous call for another region.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.

Size: 168 bytes