about summary refs log tree commit diff
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-06-03 00:29:50 +0800
committerkennytm <kennytm@gmail.com>2018-06-03 00:29:50 +0800
commit0ff8d40fa1c6be4428a65f6539ffe98c83245eab (patch)
tree1cbb31fb2a9fd29f8a3f353e81669f5fc74da947
parentd830f46b77bbb97fbff6397f0d9c352a880f796d (diff)
downloadrust-0ff8d40fa1c6be4428a65f6539ffe98c83245eab.tar.gz
rust-0ff8d40fa1c6be4428a65f6539ffe98c83245eab.zip
impl Default for &mut str
-rw-r--r--src/liballoc/tests/str.rs1
-rw-r--r--src/libcore/str/mod.rs6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/liballoc/tests/str.rs b/src/liballoc/tests/str.rs
index 03d295d16e6..75306ac82df 100644
--- a/src/liballoc/tests/str.rs
+++ b/src/liballoc/tests/str.rs
@@ -1326,6 +1326,7 @@ fn test_str_default() {
 
     t::<&str>();
     t::<String>();
+    t::<&mut str>();
 }
 
 #[test]
diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs
index 3169893fcde..5e1a9c25a21 100644
--- a/src/libcore/str/mod.rs
+++ b/src/libcore/str/mod.rs
@@ -3875,6 +3875,12 @@ impl<'a> Default for &'a str {
     fn default() -> &'a str { "" }
 }
 
+#[stable(feature = "default_mut_str", since = "1.28.0")]
+impl<'a> Default for &'a mut str {
+    /// Creates an empty mutable str
+    fn default() -> &'a mut str { unsafe { from_utf8_unchecked_mut(&mut []) } }
+}
+
 /// An iterator over the non-whitespace substrings of a string,
 /// separated by any amount of whitespace.
 ///