Make SnapshotMap::{commit, rollback_to} take references

This commit is contained in:
ljedrz 2018-08-09 16:57:55 +02:00
parent 76b69a604e
commit ffdac5d592
4 changed files with 13 additions and 13 deletions

View File

@ -709,7 +709,7 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
self.projection_cache
.borrow_mut()
.commit(projection_cache_snapshot);
.commit(&projection_cache_snapshot);
self.type_variables
.borrow_mut()
.commit(type_snapshot);

View File

@ -1668,15 +1668,15 @@ impl<'tcx> ProjectionCache<'tcx> {
}
pub fn rollback_to(&mut self, snapshot: ProjectionCacheSnapshot) {
self.map.rollback_to(snapshot.snapshot);
self.map.rollback_to(&snapshot.snapshot);
}
pub fn rollback_skolemized(&mut self, snapshot: &ProjectionCacheSnapshot) {
self.map.partial_rollback(&snapshot.snapshot, &|k| k.ty.has_re_skol());
}
pub fn commit(&mut self, snapshot: ProjectionCacheSnapshot) {
self.map.commit(snapshot.snapshot);
pub fn commit(&mut self, snapshot: &ProjectionCacheSnapshot) {
self.map.commit(&snapshot.snapshot);
}
/// Try to start normalize `key`; returns an error if

View File

@ -92,7 +92,7 @@ impl<K, V> SnapshotMap<K, V>
pub fn snapshot(&mut self) -> Snapshot {
self.undo_log.push(UndoLog::OpenSnapshot);
let len = self.undo_log.len() - 1;
Snapshot { len: len }
Snapshot { len }
}
fn assert_open_snapshot(&self, snapshot: &Snapshot) {
@ -103,8 +103,8 @@ impl<K, V> SnapshotMap<K, V>
});
}
pub fn commit(&mut self, snapshot: Snapshot) {
self.assert_open_snapshot(&snapshot);
pub fn commit(&mut self, snapshot: &Snapshot) {
self.assert_open_snapshot(snapshot);
if snapshot.len == 0 {
// The root snapshot.
self.undo_log.truncate(0);
@ -135,8 +135,8 @@ impl<K, V> SnapshotMap<K, V>
}
}
pub fn rollback_to(&mut self, snapshot: Snapshot) {
self.assert_open_snapshot(&snapshot);
pub fn rollback_to(&mut self, snapshot: &Snapshot) {
self.assert_open_snapshot(snapshot);
while self.undo_log.len() > snapshot.len + 1 {
let entry = self.undo_log.pop().unwrap();
self.reverse(entry);

View File

@ -20,7 +20,7 @@ fn basic() {
map.insert(44, "fourty-four");
assert_eq!(map[&44], "fourty-four");
assert_eq!(map.get(&33), None);
map.rollback_to(snapshot);
map.rollback_to(&snapshot);
assert_eq!(map[&22], "twenty-two");
assert_eq!(map.get(&33), None);
assert_eq!(map.get(&44), None);
@ -33,7 +33,7 @@ fn out_of_order() {
map.insert(22, "twenty-two");
let snapshot1 = map.snapshot();
let _snapshot2 = map.snapshot();
map.rollback_to(snapshot1);
map.rollback_to(&snapshot1);
}
#[test]
@ -43,8 +43,8 @@ fn nested_commit_then_rollback() {
let snapshot1 = map.snapshot();
let snapshot2 = map.snapshot();
map.insert(22, "thirty-three");
map.commit(snapshot2);
map.commit(&snapshot2);
assert_eq!(map[&22], "thirty-three");
map.rollback_to(snapshot1);
map.rollback_to(&snapshot1);
assert_eq!(map[&22], "twenty-two");
}