From 9a63be1dbd41bdd6f164a70fcc49ca4e19e9ed89 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Mon, 26 Aug 2013 18:04:17 -0400 Subject: [PATCH] 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. --- src/libstd/option.rs | 13 ------------- src/test/run-pass/option_addition.rs | 25 ------------------------- 2 files changed, 38 deletions(-) delete mode 100644 src/test/run-pass/option_addition.rs 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 Ord for Option { } } -impl> Add, Option> for Option { - #[inline] - fn add(&self, other: &Option) -> Option { - 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 ToStr for Option { 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 or the MIT license -// , 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:: + None::; - let somefoo = Some(foo) + None::; - let somebar = None:: + Some(bar); - let somefoobar = Some(foo) + Some(bar); - - assert_eq!(nope, None::); - assert_eq!(somefoo, None::); - assert_eq!(somebar, None::); - assert_eq!(foobar, somefoobar.unwrap()); -}