Skip to content

Commit

Permalink
Rollup merge of #78854 - the8472:workaround-normalization-regression-…
Browse files Browse the repository at this point in the history
…master, r=Mark-Simulacrum

Workaround for "could not fully normalize" ICE

Workaround for "could not fully normalize" ICE (#78139) by removing the `needs_drop::<T>()` calls triggering it.
Corresponding beta PR: #78845

Fixes #78139 -- the underlying bug is likely not fixed but we don't have another test case isolated for now, so closing.
  • Loading branch information
jonas-schievink committed Nov 10, 2020
2 parents 9c48688 + 8c7046e commit e15fee9
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions library/alloc/src/vec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2136,10 +2136,8 @@ impl<T> InPlaceDrop<T> {
impl<T> Drop for InPlaceDrop<T> {
#[inline]
fn drop(&mut self) {
if mem::needs_drop::<T>() {
unsafe {
ptr::drop_in_place(slice::from_raw_parts_mut(self.inner, self.len()));
}
unsafe {
ptr::drop_in_place(slice::from_raw_parts_mut(self.inner, self.len()));
}
}
}
Expand Down Expand Up @@ -2871,10 +2869,8 @@ impl<T> IntoIter<T> {
}

fn drop_remaining(&mut self) {
if mem::needs_drop::<T>() {
unsafe {
ptr::drop_in_place(self.as_mut_slice());
}
unsafe {
ptr::drop_in_place(self.as_mut_slice());
}
self.ptr = self.end;
}
Expand Down

0 comments on commit e15fee9

Please sign in to comment.