Enum rustc_trans::middle::infer::region_inference::RegionResolutionErrorUnstable [-] [+] [src]

pub enum RegionResolutionError<'tcx> {
    ConcreteFailure(SubregionOrigin<'tcx>, Region, Region),
    GenericBoundFailure(SubregionOrigin<'tcx>, GenericKind<'tcx>, Region, Vec<Region>),
    SubSupConflict(RegionVariableOrigin, SubregionOrigin<'tcx>, Region, SubregionOrigin<'tcx>, Region),
    SupSupConflict(RegionVariableOrigin, SubregionOrigin<'tcx>, Region, SubregionOrigin<'tcx>, Region),
    ProcessedErrors(Vec<RegionVariableOrigin>, Vec<(TypeTrace<'tcx>, type_err<'tcx>)>, Vec<SameRegions>),
}

Variants

ConcreteFailure

ConcreteFailure(o, a, b):

o requires that a <= b, but this does not hold

GenericBoundFailure

`GenericBoundFailure(p, s, a, bs)

The parameter/associated-type p must be known to outlive the lifetime a, but it is only known to outlive bs (and none of the regions in bs outlive a).

SubSupConflict

SubSupConflict(v, sub_origin, sub_r, sup_origin, sup_r):

Could not infer a value for v because sub_r <= v (due to sub_origin) but v <= sup_r (due to sup_origin) and sub_r <= sup_r does not hold.

SupSupConflict

SupSupConflict(v, origin1, r1, origin2, r2):

Could not infer a value for v because v <= r1 (due to origin1) and v <= r2 (due to origin2) and r1 and r2 have no intersection.

ProcessedErrors

For subsets of ConcreteFailure and SubSupConflict, we can derive more specific errors message by suggesting to the user where they should put a lifetime. In those cases we process and put those errors into ProcessedErrors before we do any reporting.

Trait Implementations

Derived Implementations

impl<'tcx> Debug for RegionResolutionError<'tcx>

fn fmt(&self, __arg_0: &mut Formatter) -> Result<(), Error>

impl<'tcx> Clone for RegionResolutionError<'tcx>

fn clone(&self) -> RegionResolutionError<'tcx>

fn clone_from(&mut self, source: &Self)