generalize: no need to cache errors
This commit is contained in:
parent
44adfccffe
commit
060f3e0c65
1 changed files with 6 additions and 6 deletions
|
@ -486,7 +486,7 @@ struct Generalizer<'cx, 'tcx> {
|
|||
|
||||
param_env: ty::ParamEnv<'tcx>,
|
||||
|
||||
cache: SsoHashMap<Ty<'tcx>, RelateResult<'tcx, Ty<'tcx>>>,
|
||||
cache: SsoHashMap<Ty<'tcx>, Ty<'tcx>>,
|
||||
}
|
||||
|
||||
/// Result from a generalization operation. This includes
|
||||
|
@ -593,8 +593,8 @@ impl<'tcx> TypeRelation<'tcx> for Generalizer<'_, 'tcx> {
|
|||
fn tys(&mut self, t: Ty<'tcx>, t2: Ty<'tcx>) -> RelateResult<'tcx, Ty<'tcx>> {
|
||||
assert_eq!(t, t2); // we are abusing TypeRelation here; both LHS and RHS ought to be ==
|
||||
|
||||
if let Some(result) = self.cache.get(&t) {
|
||||
return result.clone();
|
||||
if let Some(&result) = self.cache.get(&t) {
|
||||
return Ok(result);
|
||||
}
|
||||
debug!("generalize: t={:?}", t);
|
||||
|
||||
|
@ -664,10 +664,10 @@ impl<'tcx> TypeRelation<'tcx> for Generalizer<'_, 'tcx> {
|
|||
Ok(t)
|
||||
}
|
||||
_ => relate::super_relate_tys(self, t, t),
|
||||
};
|
||||
}?;
|
||||
|
||||
self.cache.insert(t, result.clone());
|
||||
return result;
|
||||
self.cache.insert(t, result);
|
||||
Ok(result)
|
||||
}
|
||||
|
||||
fn regions(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue