diff --git a/src/operators/arrange/arrangement.rs b/src/operators/arrange/arrangement.rs index 09a48e248..55ad69577 100644 --- a/src/operators/arrange/arrangement.rs +++ b/src/operators/arrange/arrangement.rs @@ -405,10 +405,10 @@ where // Determine new frontier on queries that may be issued. // TODO: This code looks very suspect; explain better or fix. - let frontier = std::array::IntoIter::new([ + let frontier = IntoIterator::into_iter([ capability.as_ref().map(|c| c.time().clone()), input1.frontier().frontier().get(0).cloned(), - ]).filter_map(|t| t).min(); + ]).flatten().min(); if let Some(frontier) = frontier { trace.as_mut().map(|t| t.set_logical_compaction(AntichainRef::new(&[frontier]))); diff --git a/src/trace/implementations/ord.rs b/src/trace/implementations/ord.rs index f394d2365..651ad72e3 100644 --- a/src/trace/implementations/ord.rs +++ b/src/trace/implementations/ord.rs @@ -419,7 +419,6 @@ where type Cursor = OrdKeyCursor; fn cursor(&self) -> Self::Cursor { OrdKeyCursor { - empty: (), valid: true, cursor: self.layer.cursor(), phantom: PhantomData @@ -634,7 +633,6 @@ where #[derive(Debug)] pub struct OrdKeyCursor { valid: bool, - empty: (), cursor: OrderedCursor>, phantom: PhantomData } @@ -650,7 +648,7 @@ where type Storage = OrdKeyBatch; fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K { &self.cursor.key(&storage.layer) } - fn val<'a>(&self, _storage: &'a Self::Storage) -> &'a () { unsafe { ::std::mem::transmute(&self.empty) } } + fn val<'a>(&self, _storage: &'a Self::Storage) -> &'a () { &() } fn map_times(&mut self, storage: &Self::Storage, mut logic: L) { self.cursor.child.rewind(&storage.layer.vals); while self.cursor.child.valid(&storage.layer.vals) {