Navigation Menu

Skip to content

Commit

Permalink
std: Remove deprecated AsOsStr/Str/AsSlice traits
Browse files Browse the repository at this point in the history
Cleaning out more deprecated items
  • Loading branch information
alexcrichton committed Apr 21, 2015
1 parent 7397bdc commit 69ded69
Show file tree
Hide file tree
Showing 10 changed files with 2 additions and 164 deletions.
2 changes: 1 addition & 1 deletion src/libcollections/slice.rs
Expand Up @@ -98,7 +98,7 @@ use self::Direction::*;
use borrow::{Borrow, BorrowMut, ToOwned};
use vec::Vec;

pub use core::slice::{Chunks, AsSlice, Windows};
pub use core::slice::{Chunks, Windows};
pub use core::slice::{Iter, IterMut};
pub use core::slice::{IntSliceExt, SplitMut, ChunksMut, Split};
pub use core::slice::{SplitN, RSplitN, SplitNMut, RSplitNMut};
Expand Down
2 changes: 1 addition & 1 deletion src/libcollections/str.rs
Expand Up @@ -67,7 +67,7 @@ use rustc_unicode;
use vec::Vec;
use slice::SliceConcatExt;

pub use core::str::{FromStr, Utf8Error, Str};
pub use core::str::{FromStr, Utf8Error};
pub use core::str::{Lines, LinesAny, CharRange};
pub use core::str::{Split, RSplit};
pub use core::str::{SplitN, RSplitN};
Expand Down
9 changes: 0 additions & 9 deletions src/libcollections/string.rs
Expand Up @@ -837,15 +837,6 @@ impl<'a, 'b> PartialEq<Cow<'a, str>> for &'b str {
fn ne(&self, other: &Cow<'a, str>) -> bool { PartialEq::ne(&self[..], &other[..]) }
}

#[unstable(feature = "collections", reason = "waiting on Str stabilization")]
#[allow(deprecated)]
impl Str for String {
#[inline]
fn as_slice(&self) -> &str {
unsafe { mem::transmute(&*self.vec) }
}
}

#[stable(feature = "rust1", since = "1.0.0")]
impl Default for String {
#[inline]
Expand Down
12 changes: 0 additions & 12 deletions src/libcollections/vec.rs
Expand Up @@ -1597,18 +1597,6 @@ impl<T: Ord> Ord for Vec<T> {
}
}

#[unstable(feature = "collections",
reason = "will be replaced by slice syntax")]
#[deprecated(since = "1.0.0", reason = "use &mut s[..] instead")]
#[allow(deprecated)]
impl<T> AsSlice<T> for Vec<T> {
/// Deprecated: use `&mut s[..]` instead.
#[inline]
fn as_slice(&self) -> &[T] {
self
}
}

#[unstable(feature = "collections",
reason = "recent addition, needs more experience")]
impl<'a, T: Clone> Add<&'a [T]> for Vec<T> {
Expand Down
3 changes: 0 additions & 3 deletions src/libcore/prelude.rs
Expand Up @@ -42,6 +42,3 @@ pub use option::Option::{self, Some, None};
pub use result::Result::{self, Ok, Err};
pub use slice::SliceExt;
pub use str::StrExt;

#[allow(deprecated)] pub use slice::AsSlice;
#[allow(deprecated)] pub use str::Str;
26 changes: 0 additions & 26 deletions src/libcore/result.rs
Expand Up @@ -234,8 +234,6 @@ use fmt;
use iter::{Iterator, DoubleEndedIterator, FromIterator, ExactSizeIterator, IntoIterator};
use ops::{FnMut, FnOnce};
use option::Option::{self, None, Some};
#[allow(deprecated)]
use slice::AsSlice;
use slice;

/// `Result` is a type that represents either success (`Ok`) or failure (`Err`).
Expand Down Expand Up @@ -783,30 +781,6 @@ impl<T: fmt::Debug, E> Result<T, E> {
}
}

/////////////////////////////////////////////////////////////////////////////
// Trait implementations
/////////////////////////////////////////////////////////////////////////////

#[unstable(feature = "core",
reason = "waiting on the stability of the trait itself")]
#[deprecated(since = "1.0.0",
reason = "use inherent method instead")]
#[allow(deprecated)]
impl<T, E> AsSlice<T> for Result<T, E> {
/// Converts from `Result<T, E>` to `&[T]` (without copying)
#[inline]
fn as_slice<'a>(&'a self) -> &'a [T] {
match *self {
Ok(ref x) => slice::ref_slice(x),
Err(_) => {
// work around lack of implicit coercion from fixed-size array to slice
let emp: &[_] = &[];
emp
}
}
}
}

/////////////////////////////////////////////////////////////////////////////
// The Result Iterators
/////////////////////////////////////////////////////////////////////////////
Expand Down
31 changes: 0 additions & 31 deletions src/libcore/slice.rs
Expand Up @@ -595,37 +595,6 @@ impl<T> ops::IndexMut<RangeFull> for [T] {
// Common traits
////////////////////////////////////////////////////////////////////////////////

/// Data that is viewable as a slice.
#[unstable(feature = "core",
reason = "will be replaced by slice syntax")]
#[deprecated(since = "1.0.0",
reason = "use std::convert::AsRef<[T]> instead")]
pub trait AsSlice<T> {
/// Work with `self` as a slice.
fn as_slice<'a>(&'a self) -> &'a [T];
}

#[unstable(feature = "core", reason = "trait is experimental")]
#[allow(deprecated)]
impl<T> AsSlice<T> for [T] {
#[inline(always)]
fn as_slice<'a>(&'a self) -> &'a [T] { self }
}

#[unstable(feature = "core", reason = "trait is experimental")]
#[allow(deprecated)]
impl<'a, T, U: ?Sized + AsSlice<T>> AsSlice<T> for &'a U {
#[inline(always)]
fn as_slice(&self) -> &[T] { AsSlice::as_slice(*self) }
}

#[unstable(feature = "core", reason = "trait is experimental")]
#[allow(deprecated)]
impl<'a, T, U: ?Sized + AsSlice<T>> AsSlice<T> for &'a mut U {
#[inline(always)]
fn as_slice(&self) -> &[T] { AsSlice::as_slice(*self) }
}

#[stable(feature = "rust1", since = "1.0.0")]
impl<'a, T> Default for &'a [T] {
#[stable(feature = "rust1", since = "1.0.0")]
Expand Down
24 changes: 0 additions & 24 deletions src/libcore/str/mod.rs
Expand Up @@ -1463,30 +1463,6 @@ mod traits {
}
}

/// Any string that can be represented as a slice
#[unstable(feature = "core",
reason = "Instead of taking this bound generically, this trait will be \
replaced with one of slicing syntax (&foo[..]), deref coercions, or \
a more generic conversion trait")]
#[deprecated(since = "1.0.0",
reason = "use std::convert::AsRef<str> instead")]
pub trait Str {
/// Work with `self` as a slice.
fn as_slice<'a>(&'a self) -> &'a str;
}

#[allow(deprecated)]
impl Str for str {
#[inline]
fn as_slice<'a>(&'a self) -> &'a str { self }
}

#[allow(deprecated)]
impl<'a, S: ?Sized> Str for &'a S where S: Str {
#[inline]
fn as_slice(&self) -> &str { Str::as_slice(*self) }
}

/// Methods for string slices
#[allow(missing_docs)]
#[doc(hidden)]
Expand Down
8 changes: 0 additions & 8 deletions src/libstd/ffi/mod.rs
Expand Up @@ -20,11 +20,3 @@ pub use self::os_str::{OsString, OsStr};

mod c_str;
mod os_str;

// FIXME (#21670): these should be defined in the os_str module
/// Freely convertible to an `&OsStr` slice.
#[unstable(feature = "std_misc")]
pub trait AsOsStr {
/// Converts to an `&OsStr` slice.
fn as_os_str(&self) -> &OsStr;
}
49 changes: 0 additions & 49 deletions src/libstd/ffi/os_str.rs
Expand Up @@ -46,7 +46,6 @@ use vec::Vec;

use sys::os_str::{Buf, Slice};
use sys_common::{AsInner, IntoInner, FromInner};
use super::AsOsStr;

/// Owned, mutable OS strings.
#[derive(Clone)]
Expand Down Expand Up @@ -226,14 +225,6 @@ impl OsStr {
s.as_ref()
}

/// Coerces directly from a `&str` slice to a `&OsStr` slice.
#[stable(feature = "rust1", since = "1.0.0")]
#[deprecated(since = "1.0.0",
reason = "use `OsStr::new` instead")]
pub fn from_str(s: &str) -> &OsStr {
unsafe { mem::transmute(Slice::from_str(s)) }
}

/// Yields a `&str` slice if the `OsStr` is valid unicode.
///
/// This conversion may entail doing a check for UTF-8 validity.
Expand Down Expand Up @@ -378,46 +369,6 @@ impl ToOwned for OsStr {
fn to_owned(&self) -> OsString { self.to_os_string() }
}

#[stable(feature = "rust1", since = "1.0.0")]
#[deprecated(since = "1.0.0", reason = "trait is deprecated")]
impl<'a, T: AsOsStr + ?Sized> AsOsStr for &'a T {
fn as_os_str(&self) -> &OsStr {
(*self).as_os_str()
}
}

#[stable(feature = "rust1", since = "1.0.0")]
#[deprecated(since = "1.0.0", reason = "trait is deprecated")]
impl AsOsStr for OsStr {
fn as_os_str(&self) -> &OsStr {
self
}
}

#[stable(feature = "rust1", since = "1.0.0")]
#[deprecated(since = "1.0.0", reason = "trait is deprecated")]
impl AsOsStr for OsString {
fn as_os_str(&self) -> &OsStr {
&self[..]
}
}

#[stable(feature = "rust1", since = "1.0.0")]
#[deprecated(since = "1.0.0", reason = "trait is deprecated")]
impl AsOsStr for str {
fn as_os_str(&self) -> &OsStr {
unsafe { mem::transmute(Slice::from_str(self)) }
}
}

#[stable(feature = "rust1", since = "1.0.0")]
#[deprecated(since = "1.0.0", reason = "trait is deprecated")]
impl AsOsStr for String {
fn as_os_str(&self) -> &OsStr {
unsafe { mem::transmute(Slice::from_str(self)) }
}
}

#[stable(feature = "rust1", since = "1.0.0")]
impl AsRef<OsStr> for OsStr {
fn as_ref(&self) -> &OsStr {
Expand Down

0 comments on commit 69ded69

Please sign in to comment.