Skip to content

Commit ccde268

Browse files
committed
---
yaml --- r: 233791 b: refs/heads/beta c: 59653c1 h: refs/heads/master i: 233789: ab92325 233787: 82ba086 233783: 4535476 233775: 3a732b9 233759: 84955f0 233727: bfa9f37 v: v3
1 parent b177b71 commit ccde268

File tree

34 files changed

+262
-463
lines changed

34 files changed

+262
-463
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
2323
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
2424
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26-
refs/heads/beta: 1c7c6adf5f3bdcf7f95e1bf1eec2c85ce96b5c92
26+
refs/heads/beta: 59653c10a6f6683f0c5fa4aab75fe01207a4fa21
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: 370fe2786109360f7c35b8ba552b83b773dd71d6
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/beta/src/doc/trpl/testing.md

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,26 +120,13 @@ And that's reflected in the summary line:
120120
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured
121121
```
122122

123-
We also get a non-zero status code. We can use `$?` on OS X and Linux:
123+
We also get a non-zero status code:
124124

125125
```bash
126126
$ echo $?
127127
101
128128
```
129129

130-
On Windows, if you’re using `cmd`:
131-
132-
```bash
133-
> echo %ERRORLEVEL%
134-
```
135-
136-
And if you’re using PowerShell:
137-
138-
```bash
139-
> echo $LASTEXITCODE # the code itself
140-
> echo $? # a boolean, fail or succeed
141-
```
142-
143130
This is useful if you want to integrate `cargo test` into other tooling.
144131

145132
We can invert our test's failure with another attribute: `should_panic`:

branches/beta/src/libcore/macros.rs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,51 @@ macro_rules! unreachable {
254254

255255
/// A standardised placeholder for marking unfinished code. It panics with the
256256
/// message `"not yet implemented"` when executed.
257+
///
258+
/// This can be useful if you are prototyping and are just looking to have your
259+
/// code typecheck, or if you're implementing a trait that requires multiple
260+
/// methods, and you're only planning on using one of them.
261+
///
262+
/// # Examples
263+
///
264+
/// Here's an example of some in-progress code. We have a trait `Foo`:
265+
///
266+
/// ```
267+
/// trait Foo {
268+
/// fn bar(&self);
269+
/// fn baz(&self);
270+
/// }
271+
/// ```
272+
///
273+
/// We want to implement `Foo` on one of our types, but we also want to work on
274+
/// just `bar()` first. In order for our code to compile, we need to implement
275+
/// `baz()`, so we can use `unimplemented!`:
276+
///
277+
/// ```
278+
/// # trait Foo {
279+
/// # fn foo(&self);
280+
/// # fn bar(&self);
281+
/// # }
282+
/// struct MyStruct;
283+
///
284+
/// impl Foo for MyStruct {
285+
/// fn foo(&self) {
286+
/// // implementation goes here
287+
/// }
288+
///
289+
/// fn bar(&self) {
290+
/// // let's not worry about implementing bar() for now
291+
/// unimplemented!();
292+
/// }
293+
/// }
294+
///
295+
/// fn main() {
296+
/// let s = MyStruct;
297+
/// s.foo();
298+
///
299+
/// // we aren't even using bar() yet, so this is fine.
300+
/// }
301+
/// ```
257302
#[macro_export]
258303
#[unstable(feature = "core",
259304
reason = "relationship with panic is unclear")]

branches/beta/src/libcore/marker.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ pub trait Sized {
4545
}
4646

4747
/// Types that can be "unsized" to a dynamically sized type.
48-
#[unstable(feature = "unsize", issue = "27732")]
48+
#[unstable(feature = "unsize", issue = "27779")]
4949
#[lang="unsize"]
5050
pub trait Unsize<T: ?Sized> {
5151
// Empty.

branches/beta/src/libcore/option.rs

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -779,26 +779,6 @@ impl<T> IntoIterator for Option<T> {
779779
}
780780
}
781781

782-
#[stable(since = "1.4.0", feature = "option_iter")]
783-
impl<'a, T> IntoIterator for &'a Option<T> {
784-
type Item = &'a T;
785-
type IntoIter = Iter<'a, T>;
786-
787-
fn into_iter(self) -> Iter<'a, T> {
788-
self.iter()
789-
}
790-
}
791-
792-
#[stable(since = "1.4.0", feature = "option_iter")]
793-
impl<'a, T> IntoIterator for &'a mut Option<T> {
794-
type Item = &'a mut T;
795-
type IntoIter = IterMut<'a, T>;
796-
797-
fn into_iter(mut self) -> IterMut<'a, T> {
798-
self.iter_mut()
799-
}
800-
}
801-
802782
/////////////////////////////////////////////////////////////////////////////
803783
// The Option Iterators
804784
/////////////////////////////////////////////////////////////////////////////

branches/beta/src/libcore/result.rs

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -815,26 +815,6 @@ impl<T, E> IntoIterator for Result<T, E> {
815815
}
816816
}
817817

818-
#[stable(since = "1.4.0", feature = "result_iter")]
819-
impl<'a, T, E> IntoIterator for &'a Result<T, E> {
820-
type Item = &'a T;
821-
type IntoIter = Iter<'a, T>;
822-
823-
fn into_iter(self) -> Iter<'a, T> {
824-
self.iter()
825-
}
826-
}
827-
828-
#[stable(since = "1.4.0", feature = "result_iter")]
829-
impl<'a, T, E> IntoIterator for &'a mut Result<T, E> {
830-
type Item = &'a mut T;
831-
type IntoIter = IterMut<'a, T>;
832-
833-
fn into_iter(mut self) -> IterMut<'a, T> {
834-
self.iter_mut()
835-
}
836-
}
837-
838818
/////////////////////////////////////////////////////////////////////////////
839819
// The Result Iterators
840820
/////////////////////////////////////////////////////////////////////////////

branches/beta/src/libcoretest/iter.rs

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
// except according to those terms.
1010

1111
use core::iter::*;
12+
use core::iter::order::*;
1213
use core::{i8, i16, isize};
1314
use core::usize;
1415

@@ -20,51 +21,51 @@ fn test_lt() {
2021
let xs = [1,2,3];
2122
let ys = [1,2,0];
2223

23-
assert!(!xs.iter().lt(ys.iter()));
24-
assert!(!xs.iter().le(ys.iter()));
25-
assert!( xs.iter().gt(ys.iter()));
26-
assert!( xs.iter().ge(ys.iter()));
24+
assert!(!lt(xs.iter(), ys.iter()));
25+
assert!(!le(xs.iter(), ys.iter()));
26+
assert!( gt(xs.iter(), ys.iter()));
27+
assert!( ge(xs.iter(), ys.iter()));
2728

28-
assert!( ys.iter().lt(xs.iter()));
29-
assert!( ys.iter().le(xs.iter()));
30-
assert!(!ys.iter().gt(xs.iter()));
31-
assert!(!ys.iter().ge(xs.iter()));
29+
assert!( lt(ys.iter(), xs.iter()));
30+
assert!( le(ys.iter(), xs.iter()));
31+
assert!(!gt(ys.iter(), xs.iter()));
32+
assert!(!ge(ys.iter(), xs.iter()));
3233

33-
assert!( empty.iter().lt(xs.iter()));
34-
assert!( empty.iter().le(xs.iter()));
35-
assert!(!empty.iter().gt(xs.iter()));
36-
assert!(!empty.iter().ge(xs.iter()));
34+
assert!( lt(empty.iter(), xs.iter()));
35+
assert!( le(empty.iter(), xs.iter()));
36+
assert!(!gt(empty.iter(), xs.iter()));
37+
assert!(!ge(empty.iter(), xs.iter()));
3738

3839
// Sequence with NaN
3940
let u = [1.0f64, 2.0];
4041
let v = [0.0f64/0.0, 3.0];
4142

42-
assert!(!u.iter().lt(v.iter()));
43-
assert!(!u.iter().le(v.iter()));
44-
assert!(!u.iter().gt(v.iter()));
45-
assert!(!u.iter().ge(v.iter()));
43+
assert!(!lt(u.iter(), v.iter()));
44+
assert!(!le(u.iter(), v.iter()));
45+
assert!(!gt(u.iter(), v.iter()));
46+
assert!(!ge(u.iter(), v.iter()));
4647

4748
let a = [0.0f64/0.0];
4849
let b = [1.0f64];
4950
let c = [2.0f64];
5051

51-
assert!(a.iter().lt(b.iter()) == (a[0] < b[0]));
52-
assert!(a.iter().le(b.iter()) == (a[0] <= b[0]));
53-
assert!(a.iter().gt(b.iter()) == (a[0] > b[0]));
54-
assert!(a.iter().ge(b.iter()) == (a[0] >= b[0]));
52+
assert!(lt(a.iter(), b.iter()) == (a[0] < b[0]));
53+
assert!(le(a.iter(), b.iter()) == (a[0] <= b[0]));
54+
assert!(gt(a.iter(), b.iter()) == (a[0] > b[0]));
55+
assert!(ge(a.iter(), b.iter()) == (a[0] >= b[0]));
5556

56-
assert!(c.iter().lt(b.iter()) == (c[0] < b[0]));
57-
assert!(c.iter().le(b.iter()) == (c[0] <= b[0]));
58-
assert!(c.iter().gt(b.iter()) == (c[0] > b[0]));
59-
assert!(c.iter().ge(b.iter()) == (c[0] >= b[0]));
57+
assert!(lt(c.iter(), b.iter()) == (c[0] < b[0]));
58+
assert!(le(c.iter(), b.iter()) == (c[0] <= b[0]));
59+
assert!(gt(c.iter(), b.iter()) == (c[0] > b[0]));
60+
assert!(ge(c.iter(), b.iter()) == (c[0] >= b[0]));
6061
}
6162

6263
#[test]
6364
fn test_multi_iter() {
6465
let xs = [1,2,3,4];
6566
let ys = [4,3,2,1];
66-
assert!(xs.iter().eq(ys.iter().rev()));
67-
assert!(xs.iter().lt(xs.iter().skip(2)));
67+
assert!(eq(xs.iter(), ys.iter().rev()));
68+
assert!(lt(xs.iter(), xs.iter().skip(2)));
6869
}
6970

7071
#[test]

branches/beta/src/libcoretest/option.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -180,14 +180,11 @@ fn test_iter() {
180180
assert_eq!(it.next(), Some(&val));
181181
assert_eq!(it.size_hint(), (0, Some(0)));
182182
assert!(it.next().is_none());
183-
184-
let mut it = (&x).into_iter();
185-
assert_eq!(it.next(), Some(&val));
186183
}
187184

188185
#[test]
189186
fn test_mut_iter() {
190-
let mut val = 5;
187+
let val = 5;
191188
let new_val = 11;
192189

193190
let mut x = Some(val);
@@ -208,10 +205,6 @@ fn test_mut_iter() {
208205
assert!(it.next().is_none());
209206
}
210207
assert_eq!(x, Some(new_val));
211-
212-
let mut y = Some(val);
213-
let mut it = (&mut y).into_iter();
214-
assert_eq!(it.next(), Some(&mut val));
215208
}
216209

217210
#[test]

branches/beta/src/libcoretest/result.rs

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -150,36 +150,3 @@ pub fn test_expect_err() {
150150
let err: Result<isize, &'static str> = Err("All good");
151151
err.expect("Got expected error");
152152
}
153-
154-
#[test]
155-
pub fn test_iter() {
156-
let ok: Result<isize, &'static str> = Ok(100);
157-
let mut it = ok.iter();
158-
assert_eq!(it.size_hint(), (1, Some(1)));
159-
assert_eq!(it.next(), Some(&100));
160-
assert_eq!(it.size_hint(), (0, Some(0)));
161-
assert!(it.next().is_none());
162-
assert_eq!((&ok).into_iter().next(), Some(&100));
163-
164-
let err: Result<isize, &'static str> = Err("error");
165-
assert_eq!(err.iter().next(), None);
166-
}
167-
168-
#[test]
169-
pub fn test_iter_mut() {
170-
let mut ok: Result<isize, &'static str> = Ok(100);
171-
for loc in ok.iter_mut() {
172-
*loc = 200;
173-
}
174-
assert_eq!(ok, Ok(200));
175-
for loc in &mut ok {
176-
*loc = 300;
177-
}
178-
assert_eq!(ok, Ok(300));
179-
180-
let mut err: Result<isize, &'static str> = Err("error");
181-
for loc in err.iter_mut() {
182-
*loc = 200;
183-
}
184-
assert_eq!(err, Err("error"));
185-
}

0 commit comments

Comments
 (0)