about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorJosh Stone <cuviper@gmail.com>2020-03-25 11:09:00 -0700
committerJosh Stone <cuviper@gmail.com>2020-03-25 11:09:00 -0700
commit4f429c074b865e2ae7a4dc52eb6f2e5db9244e48 (patch)
treebbc8c71f61fb2c4496347a9caf4c88a55e232153 /src/libcore
parent212e6ce7bf67d6475ec4fdfebfcf9f99704b2aa2 (diff)
downloadrust-4f429c074b865e2ae7a4dc52eb6f2e5db9244e48.tar.gz
rust-4f429c074b865e2ae7a4dc52eb6f2e5db9244e48.zip
impl TrustedRandomAccess for Fuse without FusedIterator
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/iter/adapters/fuse.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libcore/iter/adapters/fuse.rs b/src/libcore/iter/adapters/fuse.rs
index f5fd0756622..a60ca64ec87 100644
--- a/src/libcore/iter/adapters/fuse.rs
+++ b/src/libcore/iter/adapters/fuse.rs
@@ -326,10 +326,14 @@ where
 
 unsafe impl<I> TrustedRandomAccess for Fuse<I>
 where
-    I: TrustedRandomAccess + FusedIterator,
+    I: TrustedRandomAccess,
 {
     unsafe fn get_unchecked(&mut self, i: usize) -> I::Item {
-        self.as_inner_mut().get_unchecked(i)
+        match self.iter {
+            Some(ref mut iter) => iter.get_unchecked(i),
+            // SAFETY: the caller asserts there is an item at `i`, so we're not exhausted.
+            None => intrinsics::unreachable(),
+        }
     }
 
     fn may_have_side_effect() -> bool {