mirror of
https://github.com/rust-lang/rust.git
synced 2025-01-07 05:15:02 +00:00
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.
This commit is contained in:
parent
c6eb3ec30c
commit
9a63be1dbd
@ -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 {
|
||||
|
@ -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());
|
||||
}
|
Loading…
Reference in New Issue
Block a user