about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorSean McArthur <sean@seanmonstar.com>2019-03-05 19:33:22 -0800
committerSean McArthur <sean@seanmonstar.com>2019-03-05 19:54:15 -0800
commit0d39797dc0d787c8dde695a2c0ac1262fedc77cb (patch)
tree2c1af3a095520a0006c1fde380305e476282a824 /src/libstd
parentf22dca0a1bef4141e75326caacc3cd59f3d5be8e (diff)
downloadrust-0d39797dc0d787c8dde695a2c0ac1262fedc77cb.tar.gz
rust-0d39797dc0d787c8dde695a2c0ac1262fedc77cb.zip
libstd: implement Error::source for io::Error
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/io/error.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libstd/io/error.rs b/src/libstd/io/error.rs
index fdc5625ff18..614b79124cc 100644
--- a/src/libstd/io/error.rs
+++ b/src/libstd/io/error.rs
@@ -556,6 +556,14 @@ impl error::Error for Error {
             Repr::Custom(ref c) => c.error.cause(),
         }
     }
+
+    fn source(&self) -> Option<&(dyn error::Error + 'static)> {
+        match self.repr {
+            Repr::Os(..) => None,
+            Repr::Simple(..) => None,
+            Repr::Custom(ref c) => c.error.source(),
+        }
+    }
 }
 
 fn _assert_error_is_sync_send() {