use Result::into_ok on infallible result.

This commit is contained in:
Joshua Wong 2024-05-18 19:15:21 -05:00
parent 9d6b93c3e6
commit 65e302fc36
2 changed files with 3 additions and 4 deletions

View File

@ -160,6 +160,7 @@
#![feature(tuple_trait)]
#![feature(unicode_internals)]
#![feature(unsize)]
#![feature(unwrap_infallible)]
#![feature(vec_pop_if)]
// tidy-alphabetical-end
//

View File

@ -374,10 +374,8 @@ impl<T, I> SpecInPlaceCollect<T, I> for I
// - unlike most internal iteration methods, it only takes a &mut self
// - it lets us thread the write pointer through its innards and get it back in the end
let sink = InPlaceDrop { inner: dst_buf, dst: dst_buf };
let sink = match self.try_fold::<_, _, Result<_, !>>(sink, write_in_place_with_drop(end)) {
Ok(sink) => sink,
Err(never) => match never {},
};
let sink =
self.try_fold::<_, _, Result<_, !>>(sink, write_in_place_with_drop(end)).into_ok();
// iteration succeeded, don't drop head
unsafe { ManuallyDrop::new(sink).dst.sub_ptr(dst_buf) }
}