Skip to content

Commit 96f1806

Browse files
committed
---
yaml --- r: 191453 b: refs/heads/try c: 19b40f7 h: refs/heads/master i: 191451: c87d318 v: v3
1 parent 552165e commit 96f1806

File tree

22 files changed

+451
-99
lines changed

22 files changed

+451
-99
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: 809a554fca2d0ebc2ba50077016fe282a4064752
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: c64d671671aea2e44ee7fc6eb00ee75fc30ed7b9
5-
refs/heads/try: 592e7ffdf8894c928d8661cca32b0b2395762ec2
5+
refs/heads/try: 19b40f72bf3c0457e0fd99c47041ea965dba3dc9
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
88
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596

branches/try/src/doc/reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2068,7 +2068,7 @@ type int8_t = i8;
20682068
item](#language-items) for more details.
20692069
- `test` - indicates that this function is a test function, to only be compiled
20702070
in case of `--test`.
2071-
- `should_fail` - indicates that this test function should panic, inverting the success condition.
2071+
- `should_panic` - indicates that this test function should panic, inverting the success condition.
20722072
- `cold` - The function is unlikely to be executed, so optimize it (and calls
20732073
to it) differently.
20742074

branches/try/src/doc/trpl/functions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ Because this function will cause a crash, it will never return, and so it has
179179
the type '`!`', which is read "diverges." A diverging function can be used
180180
as any type:
181181

182-
```should_fail
182+
```should_panic
183183
# fn diverges() -> ! {
184184
# panic!("This function never returns!");
185185
# }

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,11 @@ $ echo $?
129129

130130
This is useful if you want to integrate `cargo test` into other tooling.
131131

132-
We can invert our test's failure with another attribute: `should_fail`:
132+
We can invert our test's failure with another attribute: `should_panic`:
133133

134134
```rust
135135
#[test]
136-
#[should_fail]
136+
#[should_panic]
137137
fn it_works() {
138138
assert!(false);
139139
}
@@ -163,13 +163,13 @@ equality:
163163

164164
```rust
165165
#[test]
166-
#[should_fail]
166+
#[should_panic]
167167
fn it_works() {
168168
assert_eq!("Hello", "world");
169169
}
170170
```
171171

172-
Does this test pass or fail? Because of the `should_fail` attribute, it
172+
Does this test pass or fail? Because of the `should_panic` attribute, it
173173
passes:
174174

175175
```bash
@@ -189,15 +189,15 @@ running 0 tests
189189
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured
190190
```
191191

192-
`should_fail` tests can be fragile, as it's hard to guarantee that the test
192+
`should_panic` tests can be fragile, as it's hard to guarantee that the test
193193
didn't fail for an unexpected reason. To help with this, an optional `expected`
194-
parameter can be added to the `should_fail` attribute. The test harness will
194+
parameter can be added to the `should_panic` attribute. The test harness will
195195
make sure that the failure message contains the provided text. A safer version
196196
of the example above would be:
197197

198198
```
199199
#[test]
200-
#[should_fail(expected = "assertion failed")]
200+
#[should_panic(expected = "assertion failed")]
201201
fn it_works() {
202202
assert_eq!("Hello", "world");
203203
}

branches/try/src/libcollections/fmt.rs

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
//! This macro is implemented in the compiler to emit calls to this module in
1717
//! order to format arguments at runtime into strings and streams.
1818
//!
19-
//! ## Usage
19+
//! # Usage
2020
//!
2121
//! The `format!` macro is intended to be familiar to those coming from C's
2222
//! printf/fprintf functions or Python's `str.format` function. In its current
@@ -41,7 +41,7 @@
4141
//! will then parse the format string and determine if the list of arguments
4242
//! provided is suitable to pass to this format string.
4343
//!
44-
//! ### Positional parameters
44+
//! ## Positional parameters
4545
//!
4646
//! Each formatting argument is allowed to specify which value argument it's
4747
//! referencing, and if omitted it is assumed to be "the next argument". For
@@ -54,7 +54,7 @@
5454
//! iterator over the argument. Each time a "next argument" specifier is seen,
5555
//! the iterator advances. This leads to behavior like this:
5656
//!
57-
//! ```rust
57+
//! ```
5858
//! format!("{1} {} {0} {}", 1, 2); // => "2 1 1 2"
5959
//! ```
6060
//!
@@ -68,7 +68,7 @@
6868
//! compile-time error. You may refer to the same argument more than once in the
6969
//! format string, although it must always be referred to with the same type.
7070
//!
71-
//! ### Named parameters
71+
//! ## Named parameters
7272
//!
7373
//! Rust itself does not have a Python-like equivalent of named parameters to a
7474
//! function, but the `format!` macro is a syntax extension which allows it to
@@ -91,7 +91,7 @@
9191
//! arguments which have names. Like with positional parameters, it is illegal
9292
//! to provide named parameters that are unused by the format string.
9393
//!
94-
//! ### Argument types
94+
//! ## Argument types
9595
//!
9696
//! Each argument's type is dictated by the format string. It is a requirement
9797
//! that every argument is only ever referred to by one type. For example, this
@@ -105,18 +105,25 @@
105105
//! hexadecimal as well as an
106106
//! octal.
107107
//!
108-
//! There are various parameters which do require a particular type, however.
109-
//! Namely if the syntax `{:.*}` is used, then the number of characters to print
110-
//! precedes the actual object being formatted, and the number of characters
111-
//! must have the type `usize`. Although a `usize` can be printed with `{}`, it is
112-
//! illegal to reference an argument as such. For example this is another
108+
//! There are various parameters which do require a particular type, however. Namely, the `{:.*}`
109+
//! syntax, which sets the number of numbers after the decimal in floating-point types:
110+
//!
111+
//! ```
112+
//! let formatted_number = format!("{:.*}", 2, 1.234567);
113+
//!
114+
//! assert_eq!("1.23", formatted_number)
115+
//! ```
116+
//!
117+
//! If this syntax is used, then the number of characters to print precedes the actual object being
118+
//! formatted, and the number of characters must have the type `usize`. Although a `usize` can be
119+
//! printed with `{}`, it is illegal to reference an argument as such. For example this is another
113120
//! invalid format string:
114121
//!
115122
//! ```text
116123
//! {:.*} {0}
117124
//! ```
118125
//!
119-
//! ### Formatting traits
126+
//! ## Formatting traits
120127
//!
121128
//! When requesting that an argument be formatted with a particular type, you
122129
//! are actually requesting that an argument ascribes to a particular trait.
@@ -142,7 +149,7 @@
142149
//! When implementing a format trait for your own type, you will have to
143150
//! implement a method of the signature:
144151
//!
145-
//! ```rust
152+
//! ```
146153
//! # use std::fmt;
147154
//! # struct Foo; // our custom type
148155
//! # impl fmt::Display for Foo {
@@ -166,7 +173,7 @@
166173
//! An example of implementing the formatting traits would look
167174
//! like:
168175
//!
169-
//! ```rust
176+
//! ```
170177
//! use std::fmt;
171178
//! use std::f64;
172179
//! use std::num::Float;
@@ -211,7 +218,7 @@
211218
//! }
212219
//! ```
213220
//!
214-
//! #### fmt::Display vs fmt::Debug
221+
//! ### fmt::Display vs fmt::Debug
215222
//!
216223
//! These two formatting traits have distinct purposes:
217224
//!
@@ -231,7 +238,7 @@
231238
//! assert_eq!(format!("{} {:?}", "foo\n", "bar\n"), "foo\n \"bar\\n\"");
232239
//! ```
233240
//!
234-
//! ### Related macros
241+
//! ## Related macros
235242
//!
236243
//! There are a number of related macros in the `format!` family. The ones that
237244
//! are currently implemented are:
@@ -245,32 +252,33 @@
245252
//! format_args! // described below.
246253
//! ```
247254
//!
248-
//! #### `write!`
255+
//! ### `write!`
249256
//!
250257
//! This and `writeln` are two macros which are used to emit the format string
251258
//! to a specified stream. This is used to prevent intermediate allocations of
252259
//! format strings and instead directly write the output. Under the hood, this
253260
//! function is actually invoking the `write` function defined in this module.
254261
//! Example usage is:
255262
//!
256-
//! ```rust
263+
//! ```
257264
//! # #![allow(unused_must_use)]
258265
//! let mut w = Vec::new();
259266
//! write!(&mut w, "Hello {}!", "world");
260267
//! ```
261268
//!
262-
//! #### `print!`
269+
//! ### `print!`
263270
//!
264271
//! This and `println` emit their output to stdout. Similarly to the `write!`
265272
//! macro, the goal of these macros is to avoid intermediate allocations when
266273
//! printing output. Example usage is:
267274
//!
268-
//! ```rust
275+
//! ```
269276
//! print!("Hello {}!", "world");
270277
//! println!("I have a newline {}", "character at the end");
271278
//! ```
272279
//!
273-
//! #### `format_args!`
280+
//! ### `format_args!`
281+
//!
274282
//! This is a curious macro which is used to safely pass around
275283
//! an opaque object describing the format string. This object
276284
//! does not require any heap allocations to create, and it only
@@ -303,7 +311,7 @@
303311
//! it would internally pass around this structure until it has been determined
304312
//! where output should go to.
305313
//!
306-
//! ## Syntax
314+
//! # Syntax
307315
//!
308316
//! The syntax for the formatting language used is drawn from other languages,
309317
//! so it should not be too alien. Arguments are formatted with python-like
@@ -326,14 +334,14 @@
326334
//! parameter := integer '$'
327335
//! ```
328336
//!
329-
//! ## Formatting Parameters
337+
//! # Formatting Parameters
330338
//!
331339
//! Each argument being formatted can be transformed by a number of formatting
332340
//! parameters (corresponding to `format_spec` in the syntax above). These
333341
//! parameters affect the string representation of what's being formatted. This
334342
//! syntax draws heavily from Python's, so it may seem a bit familiar.
335343
//!
336-
//! ### Fill/Alignment
344+
//! ## Fill/Alignment
337345
//!
338346
//! The fill character is provided normally in conjunction with the `width`
339347
//! parameter. This indicates that if the value being formatted is smaller than
@@ -345,7 +353,7 @@
345353
//! * `^` - the argument is center-aligned in `width` columns
346354
//! * `>` - the argument is right-aligned in `width` columns
347355
//!
348-
//! ### Sign/#/0
356+
//! ## Sign/#/0
349357
//!
350358
//! These can all be interpreted as flags for a particular formatter.
351359
//!
@@ -368,7 +376,7 @@
368376
//! same format would yield `-0000001` for the integer `-1`. Notice that
369377
//! the negative version has one fewer zero than the positive version.
370378
//!
371-
//! ### Width
379+
//! ## Width
372380
//!
373381
//! This is a parameter for the "minimum width" that the format should take up.
374382
//! If the value's string does not fill up this many characters, then the
@@ -384,7 +392,7 @@
384392
//! parameters by using the `2$` syntax indicating that the second argument is a
385393
//! `usize` specifying the width.
386394
//!
387-
//! ### Precision
395+
//! ## Precision
388396
//!
389397
//! For non-numeric types, this can be considered a "maximum width". If the
390398
//! resulting string is longer than this width, then it is truncated down to
@@ -395,7 +403,7 @@
395403
//! For floating-point types, this indicates how many digits after the decimal
396404
//! point should be printed.
397405
//!
398-
//! ## Escaping
406+
//! # Escaping
399407
//!
400408
//! The literal characters `{` and `}` may be included in a string by preceding
401409
//! them with the same character. For example, the `{` character is escaped with

branches/try/src/libcollectionstest/vec_deque.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ fn test_mut_rev_iter_wrap() {
360360
assert_eq!(d.pop_front(), Some(1));
361361
d.push_back(4);
362362

363-
assert_eq!(d.iter_mut().rev().cloned().collect::<Vec<_>>(),
363+
assert_eq!(d.iter_mut().rev().map(|x| *x).collect::<Vec<_>>(),
364364
vec![4, 3, 2]);
365365
}
366366

branches/try/src/libcore/iter.rs

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ use default::Default;
6565
use marker;
6666
use mem;
6767
use num::{ToPrimitive, Int};
68-
use ops::{Add, Deref, FnMut, RangeFrom};
68+
use ops::{Add, FnMut, RangeFrom};
6969
use option::Option;
7070
use option::Option::{Some, None};
7171
use marker::Sized;
@@ -976,12 +976,11 @@ pub trait IteratorExt: Iterator + Sized {
976976
(ts, us)
977977
}
978978

979-
/// Creates an iterator that clones the elements it yields. Useful for converting an
980-
/// Iterator<&T> to an Iterator<T>.
981-
#[unstable(feature = "core", reason = "recent addition")]
982-
fn cloned(self) -> Cloned<Self> where
983-
Self::Item: Deref,
984-
<Self::Item as Deref>::Target: Clone,
979+
/// Creates an iterator that clones the elements it yields. Useful for
980+
/// converting an Iterator<&T> to an Iterator<T>.
981+
#[stable(feature = "rust1", since = "1.0.0")]
982+
fn cloned<'a, T: 'a>(self) -> Cloned<Self>
983+
where Self: Iterator<Item=&'a T>, T: Clone
985984
{
986985
Cloned { it: self }
987986
}
@@ -1279,14 +1278,12 @@ pub struct Cloned<I> {
12791278
}
12801279

12811280
#[stable(feature = "rust1", since = "1.0.0")]
1282-
impl<I> Iterator for Cloned<I> where
1283-
I: Iterator,
1284-
I::Item: Deref,
1285-
<I::Item as Deref>::Target: Clone
1281+
impl<'a, I, T: 'a> Iterator for Cloned<I>
1282+
where I: Iterator<Item=&'a T>, T: Clone
12861283
{
1287-
type Item = <I::Item as Deref>::Target;
1284+
type Item = T;
12881285

1289-
fn next(&mut self) -> Option<<Self as Iterator>::Item> {
1286+
fn next(&mut self) -> Option<T> {
12901287
self.it.next().cloned()
12911288
}
12921289

@@ -1296,36 +1293,30 @@ impl<I> Iterator for Cloned<I> where
12961293
}
12971294

12981295
#[stable(feature = "rust1", since = "1.0.0")]
1299-
impl<I> DoubleEndedIterator for Cloned<I> where
1300-
I: DoubleEndedIterator,
1301-
I::Item: Deref,
1302-
<I::Item as Deref>::Target: Clone
1296+
impl<'a, I, T: 'a> DoubleEndedIterator for Cloned<I>
1297+
where I: DoubleEndedIterator<Item=&'a T>, T: Clone
13031298
{
1304-
fn next_back(&mut self) -> Option<<Self as Iterator>::Item> {
1299+
fn next_back(&mut self) -> Option<T> {
13051300
self.it.next_back().cloned()
13061301
}
13071302
}
13081303

13091304
#[stable(feature = "rust1", since = "1.0.0")]
1310-
impl<I> ExactSizeIterator for Cloned<I> where
1311-
I: ExactSizeIterator,
1312-
I::Item: Deref,
1313-
<I::Item as Deref>::Target: Clone
1305+
impl<'a, I, T: 'a> ExactSizeIterator for Cloned<I>
1306+
where I: ExactSizeIterator<Item=&'a T>, T: Clone
13141307
{}
13151308

13161309
#[unstable(feature = "core", reason = "trait is experimental")]
1317-
impl<I> RandomAccessIterator for Cloned<I> where
1318-
I: RandomAccessIterator,
1319-
I::Item: Deref,
1320-
<I::Item as Deref>::Target: Clone
1310+
impl<'a, I, T: 'a> RandomAccessIterator for Cloned<I>
1311+
where I: RandomAccessIterator<Item=&'a T>, T: Clone
13211312
{
13221313
#[inline]
13231314
fn indexable(&self) -> usize {
13241315
self.it.indexable()
13251316
}
13261317

13271318
#[inline]
1328-
fn idx(&mut self, index: usize) -> Option<<Self as Iterator>::Item> {
1319+
fn idx(&mut self, index: usize) -> Option<T> {
13291320
self.it.idx(index).cloned()
13301321
}
13311322
}

branches/try/src/libcore/result.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ impl<T, E> Result<T, E> {
330330
/// Convert from `Result<T, E>` to `Option<E>`
331331
///
332332
/// Converts `self` into an `Option<E>`, consuming `self`,
333-
/// and discarding the value, if any.
333+
/// and discarding the success value, if any.
334334
///
335335
/// # Examples
336336
///

0 commit comments

Comments
 (0)