diff --git a/src/libcore/raw.rs b/src/libcore/raw.rs index 81edfe7d6e2..bb0c22d3561 100644 --- a/src/libcore/raw.rs +++ b/src/libcore/raw.rs @@ -154,7 +154,7 @@ pub struct TraitObject { /// This trait is meant to map equivalences between raw structs and their /// corresponding rust values. -pub trait Repr<T> { +pub unsafe trait Repr<T> { /// This function "unwraps" a rust value (without consuming it) into its raw /// struct representation. This can be used to read/write different values /// for the struct. This is a safe method because by default it does not @@ -163,5 +163,5 @@ pub trait Repr<T> { fn repr(&self) -> T { unsafe { mem::transmute_copy(&self) } } } -impl<T> Repr<Slice<T>> for [T] {} -impl Repr<Slice<u8>> for str {} +unsafe impl<T> Repr<Slice<T>> for [T] {} +unsafe impl Repr<Slice<u8>> for str {}