values.values.iter_mut().for_each(|v| match *v {
VarValue::Value(ref mut r) => *r = re_erased,
- VarValue::ErrorValue(_) => {}
+ VarValue::ErrorValue => {}
});
(values, errors)
}
#[derive(Copy, Clone, Debug)]
enum VarValue<'tcx> {
Value(Region<'tcx>),
- ErrorValue(RegionVid),
+ ErrorValue,
}
#[derive(Clone, Debug)]
(None, a_region, b_vid, b_data)
}
Constraint::VarSubVar(a_vid, b_vid) => match *var_values.value(a_vid) {
- VarValue::ErrorValue(_) => continue,
+ VarValue::ErrorValue => continue,
VarValue::Value(a_region) => {
let b_data = var_values.value_mut(b_vid);
(Some(a_vid), a_region, b_vid, b_data)
}
if let Some(a_vid) = a_vid {
match *b_data {
- VarValue::Value(ReStatic) | VarValue::ErrorValue(_) => (),
+ VarValue::Value(ReStatic) | VarValue::ErrorValue => (),
_ => {
constraints[a_vid].push((a_vid, b_vid));
constraints[b_vid].push((a_vid, b_vid));
while let Some(vid) = changes.pop() {
constraints[vid].retain(|&(a_vid, b_vid)| {
let a_region = match *var_values.value(a_vid) {
- VarValue::ErrorValue(_) => return false,
+ VarValue::ErrorValue => return false,
VarValue::Value(a_region) => a_region,
};
let b_data = var_values.value_mut(b_vid);
if self.expand_node(a_region, b_vid, b_data) {
changes.push(b_vid);
}
- !matches!(b_data, VarValue::Value(ReStatic) | VarValue::ErrorValue(_))
+ !matches!(b_data, VarValue::Value(ReStatic) | VarValue::ErrorValue)
});
}
}
true
}
- VarValue::ErrorValue(_) => false,
+ VarValue::ErrorValue => false,
}
}
debug!("contraction: {:?} == {:?}, {:?}", a_vid, a_data, b_region);
let a_region = match *a_data {
- VarValue::ErrorValue(_) => continue,
+ VarValue::ErrorValue => continue,
VarValue::Value(a_region) => a_region,
};
cannot verify that {:?}={:?} <= {:?}",
origin, a_vid, a_region, b_region
);
- *a_data = VarValue::ErrorValue(a_vid);
+ *a_data = VarValue::ErrorValue;
}
}
}
for (node_vid, value) in var_data.values.iter_enumerated() {
match *value {
VarValue::Value(_) => { /* Inference successful */ }
- VarValue::ErrorValue(reg) => {
+ VarValue::ErrorValue => {
// Inference impossible: this value contains
// inconsistent constraints.
//
(
Constraint::VarSubVar(_, sup),
SubregionOrigin::DataBorrowed(_, sp),
- ) if sup == ® => Some(*sp),
+ ) if sup == &node_vid => Some(*sp),
_ => None,
})
.collect();
pub fn resolve_var(&self, rid: RegionVid) -> ty::Region<'tcx> {
let result = match self.values[rid] {
VarValue::Value(r) => r,
- VarValue::ErrorValue(_) => self.error_region,
+ VarValue::ErrorValue => self.error_region,
};
debug!("resolve_var({:?}) = {:?}", rid, result);
result