Make the UnifyValue for RegionVid ()
This commit is contained in:
parent
36a4d14c7e
commit
e8c284ff28
4 changed files with 9 additions and 6 deletions
|
@ -3,7 +3,6 @@
|
||||||
use self::CombineMapType::*;
|
use self::CombineMapType::*;
|
||||||
use self::UndoLog::*;
|
use self::UndoLog::*;
|
||||||
|
|
||||||
use super::unify_key;
|
|
||||||
use super::{
|
use super::{
|
||||||
InferCtxtUndoLogs, MiscVariable, RegionVariableOrigin, Rollback, Snapshot, SubregionOrigin,
|
InferCtxtUndoLogs, MiscVariable, RegionVariableOrigin, Rollback, Snapshot, SubregionOrigin,
|
||||||
};
|
};
|
||||||
|
@ -408,7 +407,7 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
|
||||||
if *any_unifications {
|
if *any_unifications {
|
||||||
*any_unifications = false;
|
*any_unifications = false;
|
||||||
self.unification_table()
|
self.unification_table()
|
||||||
.reset_unifications(|vid| unify_key::RegionVidKey { min_vid: vid });
|
.reset_unifications(|_| ());
|
||||||
}
|
}
|
||||||
|
|
||||||
data
|
data
|
||||||
|
@ -435,7 +434,7 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
|
||||||
) -> RegionVid {
|
) -> RegionVid {
|
||||||
let vid = self.var_infos.push(RegionVariableInfo { origin, universe });
|
let vid = self.var_infos.push(RegionVariableInfo { origin, universe });
|
||||||
|
|
||||||
let u_vid = self.unification_table().new_key(unify_key::RegionVidKey { min_vid: vid });
|
let u_vid = self.unification_table().new_key(());
|
||||||
assert_eq!(vid, u_vid);
|
assert_eq!(vid, u_vid);
|
||||||
self.undo_log.push(AddVar(vid));
|
self.undo_log.push(AddVar(vid));
|
||||||
debug!("created new region variable {:?} in {:?} with origin {:?}", vid, universe, origin);
|
debug!("created new region variable {:?} in {:?} with origin {:?}", vid, universe, origin);
|
||||||
|
@ -618,7 +617,7 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn opportunistic_resolve_var(&mut self, rid: RegionVid) -> ty::RegionVid {
|
pub fn opportunistic_resolve_var(&mut self, rid: RegionVid) -> ty::RegionVid {
|
||||||
self.unification_table().probe_value(rid).min_vid
|
self.unification_table().find(rid)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn combine_map(&mut self, t: CombineMapType) -> &mut CombineMap<'tcx> {
|
fn combine_map(&mut self, t: CombineMapType) -> &mut CombineMap<'tcx> {
|
||||||
|
|
|
@ -38,7 +38,7 @@ impl UnifyValue for RegionVidKey {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UnifyKey for ty::RegionVid {
|
impl UnifyKey for ty::RegionVid {
|
||||||
type Value = RegionVidKey;
|
type Value = ();
|
||||||
fn index(&self) -> u32 {
|
fn index(&self) -> u32 {
|
||||||
u32::from(*self)
|
u32::from(*self)
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,4 +26,6 @@ fn main() {
|
||||||
// Should only be a few notes.
|
// Should only be a few notes.
|
||||||
is_send::<X<C<'static>>>();
|
is_send::<X<C<'static>>>();
|
||||||
//~^ ERROR overflow evaluating
|
//~^ ERROR overflow evaluating
|
||||||
|
//~^^ 2 redundant
|
||||||
|
//~^^^ required because of
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,11 +7,13 @@ LL | fn is_send<S: NotAuto>() {}
|
||||||
LL | is_send::<X<C<'static>>>();
|
LL | is_send::<X<C<'static>>>();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
|
||||||
note: required because of the requirements on the impl of `NotAuto` for `X<C<'static>>`
|
note: required because of the requirements on the impl of `NotAuto` for `X<C<'_>>`
|
||||||
--> $DIR/lifetime.rs:19:12
|
--> $DIR/lifetime.rs:19:12
|
||||||
|
|
|
|
||||||
LL | impl<T: Y> NotAuto for X<T> where T::P: NotAuto {}
|
LL | impl<T: Y> NotAuto for X<T> where T::P: NotAuto {}
|
||||||
| ^^^^^^^ ^^^^
|
| ^^^^^^^ ^^^^
|
||||||
|
= note: 2 redundant requirements hidden
|
||||||
|
= note: required because of the requirements on the impl of `NotAuto` for `X<C<'static>>`
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue