about summary refs log tree commit diff
path: root/src/libstd/ffi
diff options
context:
space:
mode:
authorScott McMurray <scottmcm@users.noreply.github.com>2019-02-17 19:42:36 -0800
committerScott McMurray <scottmcm@users.noreply.github.com>2019-02-17 19:42:36 -0800
commit3bea2ca49d24606920b3a81811379debc0668992 (patch)
tree5e8cc79e957d9158bcdd1a26e848b7fbc7b24f97 /src/libstd/ffi
parent16ca0b9f6335db824e44629be1cafb6e3fcc4628 (diff)
downloadrust-3bea2ca49d24606920b3a81811379debc0668992.tar.gz
rust-3bea2ca49d24606920b3a81811379debc0668992.zip
Use more impl header lifetime elision
There are two big categories of changes in here

- Removing lifetimes from common traits that can essentially never user a lifetime from an input (particularly `Drop` & `Debug`)
- Forwarding impls that are only possible because the lifetime doesn't matter (like `impl<R: Read + ?Sized> Read for &mut R`)

I omitted things that seemed like they could be more controversial, like the handful of iterators that have a `Item: 'static` despite the iterator having a lifetime or the `PartialEq` implementations where the flipped one cannot elide the lifetime.
Diffstat (limited to 'src/libstd/ffi')
-rw-r--r--src/libstd/ffi/c_str.rs4
-rw-r--r--src/libstd/ffi/os_str.rs4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/libstd/ffi/c_str.rs b/src/libstd/ffi/c_str.rs
index 765452e0288..7e82f33ad8a 100644
--- a/src/libstd/ffi/c_str.rs
+++ b/src/libstd/ffi/c_str.rs
@@ -659,8 +659,8 @@ impl fmt::Debug for CStr {
 }
 
 #[stable(feature = "cstr_default", since = "1.10.0")]
-impl<'a> Default for &'a CStr {
-    fn default() -> &'a CStr {
+impl Default for &CStr {
+    fn default() -> Self {
         const SLICE: &[c_char] = &[0];
         unsafe { CStr::from_ptr(SLICE.as_ptr()) }
     }
diff --git a/src/libstd/ffi/os_str.rs b/src/libstd/ffi/os_str.rs
index f8176892513..5429079f5b8 100644
--- a/src/libstd/ffi/os_str.rs
+++ b/src/libstd/ffi/os_str.rs
@@ -778,10 +778,10 @@ impl Default for Box<OsStr> {
 }
 
 #[stable(feature = "osstring_default", since = "1.9.0")]
-impl<'a> Default for &'a OsStr {
+impl Default for &OsStr {
     /// Creates an empty `OsStr`.
     #[inline]
-    fn default() -> &'a OsStr {
+    fn default() -> Self {
         OsStr::new("")
     }
 }