about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/vec.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs
index 55b8e3769ea..b91384f0ba5 100644
--- a/src/libstd/vec.rs
+++ b/src/libstd/vec.rs
@@ -104,6 +104,7 @@ use clone::{Clone, DeepClone};
 use container::{Container, Mutable};
 use cmp::{Eq, TotalOrd, Ordering, Less, Equal, Greater};
 use cmp;
+use default::Default;
 use iter::*;
 use libc::c_void;
 use num::{Integer, Zero, CheckedAdd, Saturating};
@@ -2237,6 +2238,19 @@ impl<A: DeepClone> DeepClone for ~[A] {
 }
 
 // This works because every lifetime is a sub-lifetime of 'static
+impl<'self, A> Default for &'self [A] {
+    fn default() -> &'self [A] { &'self [] }
+}
+
+impl<A> Default for ~[A] {
+    fn default() -> ~[A] { ~[] }
+}
+
+impl<A> Default for @[A] {
+    fn default() -> @[A] { @[] }
+}
+
+// This works because every lifetime is a sub-lifetime of 'static
 impl<'self, A> Zero for &'self [A] {
     fn zero() -> &'self [A] { &'self [] }
     fn is_zero(&self) -> bool { self.is_empty() }