]> git.lizzy.rs Git - rust.git/blobdiff - src/test/run-pass/monad.rs
test: Automatically remove all `~[T]` from tests.
[rust.git] / src / test / run-pass / monad.rs
index 42e782928b8da0be6f838f61de824242c52efd24..5df6738797d795576b662ce04b1f0741f7343ba1 100644 (file)
 // ignore-fast
 
 trait vec_monad<A> {
-    fn bind<B>(&self, f: |&A| -> ~[B]) -> ~[B];
+    fn bind<B>(&self, f: |&A| -> Vec<B> ) -> Vec<B> ;
 }
 
-impl<A> vec_monad<A> for ~[A] {
-    fn bind<B>(&self, f: |&A| -> ~[B]) -> ~[B] {
-        let mut r = ~[];
+impl<A> vec_monad<A> for Vec<A> {
+    fn bind<B>(&self, f: |&A| -> Vec<B> ) -> Vec<B> {
+        let mut r = Vec::new();
         for elt in self.iter() {
             r.push_all_move(f(elt));
         }
@@ -44,8 +44,8 @@ fn transform(x: Option<int>) -> Option<~str> {
 pub fn main() {
     assert_eq!(transform(Some(10)), Some(~"11"));
     assert_eq!(transform(None), None);
-    assert!((~[~"hi"])
-        .bind(|x| ~[x.clone(), *x + "!"] )
-        .bind(|x| ~[x.clone(), *x + "?"] ) ==
-        ~[~"hi", ~"hi?", ~"hi!", ~"hi!?"]);
+    assert!((vec!(~"hi"))
+        .bind(|x| vec!(x.clone(), *x + "!") )
+        .bind(|x| vec!(x.clone(), *x + "?") ) ==
+        vec!(~"hi", ~"hi?", ~"hi!", ~"hi!?"));
 }