Skip to content

Commit

Permalink
std: Relax UnwindSafe impl for Unique
Browse files Browse the repository at this point in the history
Add the `?Sized` bound as we don't require the type to be sized.

Closes #40011
  • Loading branch information
alexcrichton committed Feb 21, 2017
1 parent 3954c70 commit 347e1af
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/libstd/panic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ impl<T: RefUnwindSafe + ?Sized> UnwindSafe for *const T {}
#[stable(feature = "catch_unwind", since = "1.9.0")]
impl<T: RefUnwindSafe + ?Sized> UnwindSafe for *mut T {}
#[unstable(feature = "unique", issue = "27730")]
impl<T: UnwindSafe> UnwindSafe for Unique<T> {}
impl<T: UnwindSafe + ?Sized> UnwindSafe for Unique<T> {}
#[unstable(feature = "shared", issue = "27730")]
impl<T: RefUnwindSafe + ?Sized> UnwindSafe for Shared<T> {}
#[stable(feature = "catch_unwind", since = "1.9.0")]
Expand Down
5 changes: 4 additions & 1 deletion src/test/run-pass/panic-safe.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
// except according to those terms.

#![allow(dead_code)]
#![feature(recover)]

use std::panic::{UnwindSafe, AssertUnwindSafe};
use std::cell::RefCell;
Expand Down Expand Up @@ -40,6 +39,10 @@ fn main() {
assert::<&RwLock<i32>>();
assert::<Rc<i32>>();
assert::<Arc<i32>>();
assert::<Box<[u8]>>();

trait Trait: UnwindSafe {}
assert::<Box<Trait>>();

fn bar<T>() {
assert::<Mutex<T>>();
Expand Down

0 comments on commit 347e1af

Please sign in to comment.