Skip to content

Commit b1673cc

Browse files
committed
---
yaml --- r: 227974 b: refs/heads/try c: a5dec98 h: refs/heads/master v: v3
1 parent dfb6349 commit b1673cc

File tree

12 files changed

+372
-42
lines changed

12 files changed

+372
-42
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: aca2057ed5fb7af3f8905b2bc01f72fa001c35c8
33
refs/heads/snap-stage3: 1af31d4974e33027a68126fa5a5a3c2c6491824f
4-
refs/heads/try: a1d40c81f95107a5233db2c0059b8b7652592edd
4+
refs/heads/try: a5dec988026bbb2290c49e183f0d40d65ed15406
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
77
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Rust is a fast systems programming language that guarantees
44
memory safety and offers painless concurrency ([no data races]).
55
It does not employ a garbage collector and has minimal runtime overhead.
66

7-
This repo contains the code for `rustc`, the Rust compiler, as well
7+
This repo contains the code for the compiler (`rustc`), as well
88
as standard libraries, tools and documentation for Rust.
99

1010
[no data races]: http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ pub fn new(value: T) -> Rc<T> {
3333
```
3434

3535
This code generates documentation that looks [like this][rc-new]. I've left the
36-
implementation out, with a regular comment in its place. That's the first thing
37-
to notice about this annotation: it uses `///`, instead of `//`. The triple slash
36+
implementation out, with a regular comment in its place.
37+
38+
The first thing to notice about this annotation is that it uses
39+
`///` instead of `//`. The triple slash
3840
indicates a documentation comment.
3941

4042
Documentation comments are written in Markdown.
@@ -375,7 +377,7 @@ $ rustdoc --test path/to/my/crate/root.rs
375377
$ cargo test
376378
```
377379

378-
That's right, `cargo test` tests embedded documentation too. However,
380+
That's right, `cargo test` tests embedded documentation too. However,
379381
`cargo test` will not test binary crates, only library ones. This is
380382
due to the way `rustdoc` works: it links against the library to be tested,
381383
but with a binary, there’s nothing to link to.

branches/try/src/doc/trpl/link-args.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Note that this feature is currently hidden behind the `feature(link_args)` gate
1717
because this is not a sanctioned way of performing linking. Right now rustc
1818
shells out to the system linker, so it makes sense to provide extra command line
1919
arguments, but this will not always be the case. In the future rustc may use
20-
LLVM directly to link native libraries in which case `link_args` will have no
20+
LLVM directly to link native libraries, in which case `link_args` will have no
2121
meaning.
2222

2323
It is highly recommended to *not* use this attribute, and rather use the more

branches/try/src/libcollections/fmt.rs

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -128,15 +128,15 @@
128128
//! This allows multiple actual types to be formatted via `{:x}` (like `i8` as
129129
//! well as `isize`). The current mapping of types to traits is:
130130
//!
131-
//! * *nothing* ⇒ `Display`
132-
//! * `?` ⇒ `Debug`
133-
//! * `o` ⇒ `Octal`
134-
//! * `x` ⇒ `LowerHex`
135-
//! * `X` ⇒ `UpperHex`
136-
//! * `p` ⇒ `Pointer`
137-
//! * `b` ⇒ `Binary`
138-
//! * `e` ⇒ `LowerExp`
139-
//! * `E` ⇒ `UpperExp`
131+
//! * *nothing* ⇒ [`Display`](trait.Display.html)
132+
//! * `?` ⇒ [`Debug`](trait.Debug.html)
133+
//! * `o` ⇒ [`Octal`](trait.Octal.html)
134+
//! * `x` ⇒ [`LowerHex`](trait.LowerHex.html)
135+
//! * `X` ⇒ [`UpperHex`](trait.UpperHex.html)
136+
//! * `p` ⇒ [`Pointer`](trait.Pointer.html)
137+
//! * `b` ⇒ [`Binary`](trait.Binary.html)
138+
//! * `e` ⇒ [`LowerExp`](trait.LowerExp.html)
139+
//! * `E` ⇒ [`UpperExp`](trait.UpperExp.html)
140140
//!
141141
//! What this means is that any type of argument which implements the
142142
//! `fmt::Binary` trait can then be formatted with `{:b}`. Implementations
@@ -367,11 +367,11 @@
367367
//! should always be printed.
368368
//! * '-' - Currently not used
369369
//! * '#' - This flag is indicates that the "alternate" form of printing should
370-
//! be used. For array slices, the alternate form omits the brackets.
371-
//! For the integer formatting traits, the alternate forms are:
370+
//! be used. The alternate forms are:
371+
//! * `#?` - pretty-print the `Debug` formatting
372372
//! * `#x` - precedes the argument with a "0x"
373373
//! * `#X` - precedes the argument with a "0x"
374-
//! * `#t` - precedes the argument with a "0b"
374+
//! * `#b` - precedes the argument with a "0b"
375375
//! * `#o` - precedes the argument with a "0o"
376376
//! * '0' - This is used to indicate for integer formats that the padding should
377377
//! both be done with a `0` character as well as be sign-aware. A format
@@ -408,19 +408,20 @@
408408
//!
409409
//! There are three possible ways to specify the desired `precision`:
410410
//!
411-
//! There are three possible ways to specify the desired `precision`:
412-
//! 1. An integer `.N`,
413-
//! 2. an integer followed by dollar sign `.N$`, or
414-
//! 3. an asterisk `.*`.
411+
//! 1. An integer `.N`:
412+
//!
413+
//! the integer `N` itself is the precision.
414+
//!
415+
//! 2. An integer followed by dollar sign `.N$`:
415416
//!
416-
//! The first specification, `.N`, means the integer `N` itself is the precision.
417+
//! use format *argument* `N` (which must be a `usize`) as the precision.
417418
//!
418-
//! The second, `.N$`, means use format *argument* `N` (which must be a `usize`) as the precision.
419+
//! 3. An asterisk `.*`:
419420
//!
420-
//! Finally, `.*` means that this `{...}` is associated with *two* format inputs rather than one:
421-
//! the first input holds the `usize` precision, and the second holds the value to print. Note
422-
//! that in this case, if one uses the format string `{<arg>:<spec>.*}`, then the `<arg>` part
423-
//! refers to the *value* to print, and the `precision` must come in the input preceding `<arg>`.
421+
//! `.*` means that this `{...}` is associated with *two* format inputs rather than one: the
422+
//! first input holds the `usize` precision, and the second holds the value to print. Note that
423+
//! in this case, if one uses the format string `{<arg>:<spec>.*}`, then the `<arg>` part refers
424+
//! to the *value* to print, and the `precision` must come in the input preceding `<arg>`.
424425
//!
425426
//! For example, these:
426427
//!

branches/try/src/libcore/cmp.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@ impl Ordering {
166166
///
167167
/// - total and antisymmetric: exactly one of `a < b`, `a == b` or `a > b` is true; and
168168
/// - transitive, `a < b` and `b < c` implies `a < c`. The same must hold for both `==` and `>`.
169+
///
170+
/// When this trait is `derive`d, it produces a lexicographic ordering.
169171
#[stable(feature = "rust1", since = "1.0.0")]
170172
pub trait Ord: Eq + PartialOrd<Self> {
171173
/// This method returns an `Ordering` between `self` and `other`.

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ impl<'a> Display for Arguments<'a> {
267267
}
268268
}
269269

270-
/// Format trait for the `:?` format. Useful for debugging, all types
270+
/// Format trait for the `?` character. Useful for debugging, all types
271271
/// should implement this.
272272
///
273273
/// Generally speaking, you should just `derive` a `Debug` implementation.
@@ -312,6 +312,9 @@ impl<'a> Display for Arguments<'a> {
312312
/// There are a number of `debug_*` methods on `Formatter` to help you with manual
313313
/// implementations, such as [`debug_struct`][debug_struct].
314314
///
315+
/// `Debug` implementations using either `derive` or the debug builder API
316+
/// on `Formatter` support pretty printing using the alternate flag: `{:#?}`.
317+
///
315318
/// [debug_struct]: ../std/fmt/struct.Formatter.html#method.debug_struct
316319
#[stable(feature = "rust1", since = "1.0.0")]
317320
#[rustc_on_unimplemented = "`{Self}` cannot be formatted using `:?`; if it is \
@@ -980,7 +983,14 @@ impl Debug for char {
980983
#[stable(feature = "rust1", since = "1.0.0")]
981984
impl Display for char {
982985
fn fmt(&self, f: &mut Formatter) -> Result {
983-
f.write_char(*self)
986+
if f.width.is_none() && f.precision.is_none() {
987+
f.write_char(*self)
988+
} else {
989+
let mut utf8 = [0; 4];
990+
let amt = self.encode_utf8(&mut utf8).unwrap_or(0);
991+
let s: &str = unsafe { mem::transmute(&utf8[..amt]) };
992+
f.pad(s)
993+
}
984994
}
985995
}
986996

branches/try/src/libcoretest/fmt/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,6 @@ fn test_format_flags() {
1616
// No residual flags left by pointer formatting
1717
let p = "".as_ptr();
1818
assert_eq!(format!("{:p} {:x}", p, 16), format!("{:p} 10", p));
19+
20+
assert_eq!(format!("{: >3}", 'a'), " a");
1921
}

0 commit comments

Comments
 (0)