diff options
| author | Josh Stone <cuviper@gmail.com> | 2020-03-25 11:09:00 -0700 |
|---|---|---|
| committer | Josh Stone <cuviper@gmail.com> | 2020-03-25 11:09:00 -0700 |
| commit | 4f429c074b865e2ae7a4dc52eb6f2e5db9244e48 (patch) | |
| tree | bbc8c71f61fb2c4496347a9caf4c88a55e232153 /src/libcore | |
| parent | 212e6ce7bf67d6475ec4fdfebfcf9f99704b2aa2 (diff) | |
| download | rust-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.rs | 8 |
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 { |
