about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNikolai Vazquez <nvazquez1297@gmail.com>2017-09-29 11:15:05 -0400
committerNikolai Vazquez <nvazquez1297@gmail.com>2017-09-29 11:15:05 -0400
commite45e8abec2302530d774aab1ca800081b60aa89e (patch)
tree91f667f6c83a170f333748a4811c39ca72d3afc5
parenta6e70b5fb48ff6e0ecee12435df78ec91b91664d (diff)
downloadrust-e45e8abec2302530d774aab1ca800081b60aa89e.tar.gz
rust-e45e8abec2302530d774aab1ca800081b60aa89e.zip
Implement Error trait for TryFromSliceError
-rw-r--r--src/libcore/array.rs15
-rw-r--r--src/libstd/error.rs8
2 files changed, 23 insertions, 0 deletions
diff --git a/src/libcore/array.rs b/src/libcore/array.rs
index 5f222e249ea..3d13a84e232 100644
--- a/src/libcore/array.rs
+++ b/src/libcore/array.rs
@@ -63,6 +63,21 @@ unsafe impl<T, A: Unsize<[T]>> FixedSizeArray<T> for A {
 #[derive(Debug, Copy, Clone)]
 pub struct TryFromSliceError(());
 
+impl fmt::Display for TryFromSliceError {
+    #[inline]
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        fmt::Display::fmt(self.__description())
+    }
+}
+
+impl TryFromSliceError {
+    #[inline]
+    #[doc(hidden)]
+    pub fn __description(&self) -> &str {
+        "could not convert slice to array"
+    }
+}
+
 macro_rules! __impl_slice_eq1 {
     ($Lhs: ty, $Rhs: ty) => {
         __impl_slice_eq1! { $Lhs, $Rhs, Sized }
diff --git a/src/libstd/error.rs b/src/libstd/error.rs
index 6d64ea0d503..72d1946a286 100644
--- a/src/libstd/error.rs
+++ b/src/libstd/error.rs
@@ -56,6 +56,7 @@ use any::TypeId;
 use borrow::Cow;
 use cell;
 use char;
+use core::array;
 use fmt::{self, Debug, Display};
 use mem::transmute;
 use num;
@@ -281,6 +282,13 @@ impl Error for num::TryFromIntError {
     }
 }
 
+#[unstable(feature = "try_from", issue = "33417")]
+impl Error for array::TryFromSliceError {
+    fn description(&self) -> &str {
+        self.__description()
+    }
+}
+
 #[stable(feature = "rust1", since = "1.0.0")]
 impl Error for num::ParseFloatError {
     fn description(&self) -> &str {