Skip to content

Commit e19a036

Browse files
committed
---
yaml --- r: 50612 b: refs/heads/try c: a21b43c h: refs/heads/master v: v3
1 parent f7aa185 commit e19a036

28 files changed

+294
-2790
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 5f13e9ccc2e3328d4cd8ca49f84e6840dd998346
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: f7a2371c176663d59062ec5158f39faecba45768
5-
refs/heads/try: 676e0290ed4d306e6d7b517de1409c109309a0b2
5+
refs/heads/try: a21b43c6bbb0edcf4dfe9913a084f28eb950b364
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/src/libcore/core.rc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,7 @@ pub mod unicode;
243243
#[path = "num/cmath.rs"]
244244
pub mod cmath;
245245
pub mod stackwalk;
246-
#[path = "rt/mod.rs"]
247-
pub mod rt;
246+
248247

249248
// A curious inner-module that's not exported that contains the binding
250249
// 'core' so that macro-expanded references to core::error and such

branches/try/src/libcore/option.rs

Lines changed: 13 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ let unwrapped_msg = match msg {
4242
*/
4343

4444
use cmp::{Eq,Ord};
45+
use ops::Add;
4546
use kinds::Copy;
4647
use util;
4748
use num::Zero;
@@ -85,6 +86,18 @@ impl<T:Ord> Ord for Option<T> {
8586
}
8687
}
8788

89+
impl<T: Copy + Add<T,T>> Add<Option<T>, Option<T>> for Option<T> {
90+
#[inline(always)]
91+
pure fn add(&self, other: &Option<T>) -> Option<T> {
92+
match (*self, *other) {
93+
(None, None) => None,
94+
(_, None) => *self,
95+
(None, _) => *other,
96+
(Some(ref lhs), Some(ref rhs)) => Some(*lhs + *rhs)
97+
}
98+
}
99+
}
100+
88101
#[inline(always)]
89102
pub pure fn get<T:Copy>(opt: Option<T>) -> T {
90103
/*!
@@ -130,27 +143,6 @@ pub pure fn get_ref<T>(opt: &r/Option<T>) -> &r/T {
130143
}
131144
}
132145
133-
pub pure fn get_mut_ref<T>(opt: &r/mut Option<T>) -> &r/mut T {
134-
/*!
135-
Gets a mutable reference to the value inside an option.
136-
137-
# Failure
138-
139-
Fails if the value equals `None`
140-
141-
# Safety note
142-
143-
In general, because this function may fail, its use is discouraged
144-
(calling `get` on `None` is akin to dereferencing a null pointer).
145-
Instead, prefer to use pattern matching and handle the `None`
146-
case explicitly.
147-
*/
148-
match *opt {
149-
Some(ref mut x) => x,
150-
None => fail!(~"option::get_mut_ref none")
151-
}
152-
}
153-
154146
#[inline(always)]
155147
pub pure fn map<T, U>(opt: &r/Option<T>, f: &fn(x: &r/T) -> U) -> Option<U> {
156148
//! Maps a `some` value by reference from one type to another
@@ -385,23 +377,6 @@ pub impl<T> Option<T> {
385377
#[inline(always)]
386378
pure fn get_ref(&self) -> &self/T { get_ref(self) }
387379
388-
/**
389-
Gets a mutable reference to the value inside an option.
390-
391-
# Failure
392-
393-
Fails if the value equals `None`
394-
395-
# Safety note
396-
397-
In general, because this function may fail, its use is discouraged
398-
(calling `get` on `None` is akin to dereferencing a null pointer).
399-
Instead, prefer to use pattern matching and handle the `None`
400-
case explicitly.
401-
*/
402-
#[inline(always)]
403-
pure fn get_mut_ref(&mut self) -> &self/mut T { get_mut_ref(self) }
404-
405380
/**
406381
* Gets the value out of an option without copying.
407382
*

branches/try/src/libcore/rt/context.rs

Lines changed: 0 additions & 156 deletions
This file was deleted.

branches/try/src/libcore/rt/io.rs

Lines changed: 0 additions & 45 deletions
This file was deleted.

branches/try/src/libcore/rt/mod.rs

Lines changed: 0 additions & 51 deletions
This file was deleted.

0 commit comments

Comments
 (0)