about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2013-08-26 18:04:17 -0400
committerDaniel Micay <danielmicay@gmail.com>2013-08-27 13:18:57 -0400
commit9a63be1dbd41bdd6f164a70fcc49ca4e19e9ed89 (patch)
treea33b82cce2bacf1729b7e02a815b1830af0babb2 /src
parentc6eb3ec30c945f22acac5dece7c22b0881af4be2 (diff)
downloadrust-9a63be1dbd41bdd6f164a70fcc49ca4e19e9ed89.tar.gz
rust-9a63be1dbd41bdd6f164a70fcc49ca4e19e9ed89.zip
option: rm implementation of Add
Closes #6002

There is consensus that the current implementation should be changed or
removed, so removing it seems like the right decision for now.
Diffstat (limited to 'src')
-rw-r--r--src/libstd/option.rs13
-rw-r--r--src/test/run-pass/option_addition.rs25
2 files changed, 0 insertions, 38 deletions
diff --git a/src/libstd/option.rs b/src/libstd/option.rs
index 34c47d9f61e..f99a595f2eb 100644
--- a/src/libstd/option.rs
+++ b/src/libstd/option.rs
@@ -43,7 +43,6 @@ let unwrapped_msg = match msg {
 
 use clone::Clone;
 use cmp::{Eq,Ord};
-use ops::Add;
 use util;
 use num::Zero;
 use iterator;
@@ -77,18 +76,6 @@ impl<T: Eq + Ord> Ord for Option<T> {
     }
 }
 
-impl<T: Add<T, T>> Add<Option<T>, Option<T>> for Option<T> {
-    #[inline]
-    fn add(&self, other: &Option<T>) -> Option<T> {
-        match (&*self, &*other) {
-            (&None, &None) => None,
-            (_, &None) => None,
-            (&None, _) => None,
-            (&Some(ref lhs), &Some(ref rhs)) => Some(*lhs + *rhs)
-        }
-    }
-}
-
 // FIXME: #8242 implementing manually because deriving doesn't work for some reason
 impl<T: ToStr> ToStr for Option<T> {
     fn to_str(&self) -> ~str {
diff --git a/src/test/run-pass/option_addition.rs b/src/test/run-pass/option_addition.rs
deleted file mode 100644
index 8af173150a0..00000000000
--- a/src/test/run-pass/option_addition.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-pub fn main() {
-    let foo: int = 1;
-    let bar: int = 2;
-    let foobar = foo + bar;
-
-    let nope = None::<int> + None::<int>;
-    let somefoo = Some(foo) + None::<int>;
-    let somebar = None::<int> + Some(bar);
-    let somefoobar = Some(foo) + Some(bar);
-
-    assert_eq!(nope, None::<int>);
-    assert_eq!(somefoo, None::<int>);
-    assert_eq!(somebar, None::<int>);
-    assert_eq!(foobar, somefoobar.unwrap());
-}