Skip to content

Commit 15952ac

Browse files
committed
Auto merge of #26894 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #26687, #26784, #26850, #26889, #26891, #26892, #26893 - Failed merges:
2 parents 50df2a0 + 546ce79 commit 15952ac

File tree

8 files changed

+71
-18
lines changed

8 files changed

+71
-18
lines changed

src/compiletest/runtest.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -1702,8 +1702,11 @@ fn run_codegen_test(config: &Config, props: &TestProps, testfile: &Path) {
17021702
}
17031703

17041704
fn charset() -> &'static str {
1705-
if cfg!(any(target_os = "bitrig", target_os = "freebsd")) {
1705+
// FreeBSD 10.1 defaults to GDB 6.1.1 which doesn't support "auto" charset
1706+
if cfg!(target_os = "bitrig") {
17061707
"auto"
1708+
} else if cfg!(target_os = "freebsd") {
1709+
"ISO-8859-1"
17071710
} else {
17081711
"UTF-8"
17091712
}

src/doc/complement-design-faq.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ Second, it makes cost explicit. In general, the only safe way to have a
9999
non-exhaustive match would be to panic the thread if nothing is matched, though
100100
it could fall through if the type of the `match` expression is `()`. This sort
101101
of hidden cost and special casing is against the language's philosophy. It's
102-
easy to ignore certain cases by using the `_` wildcard:
102+
easy to ignore all unspecified cases by using the `_` wildcard:
103103

104104
```rust,ignore
105105
match val.do_something() {

src/doc/trpl/guessing-game.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -360,10 +360,12 @@ rand="0.3.0"
360360
The `[dependencies]` section of `Cargo.toml` is like the `[package]` section:
361361
everything that follows it is part of it, until the next section starts.
362362
Cargo uses the dependencies section to know what dependencies on external
363-
crates you have, and what versions you require. In this case, we’ve used version `0.3.0`.
363+
crates you have, and what versions you require. In this case, we’ve specified version `0.3.0`,
364+
which Cargo understands to be any release that’s compatible with this specific version.
364365
Cargo understands [Semantic Versioning][semver], which is a standard for writing version
365-
numbers. If we wanted to use the latest version we could use `*` or we could use a range
366-
of versions. [Cargo’s documentation][cargodoc] contains more details.
366+
numbers. If we wanted to use only `0.3.0` exactly, we could use `=0.3.0`. If we
367+
wanted to use the latest version we could use `*`; We could use a range of
368+
versions. [Cargo’s documentation][cargodoc] contains more details.
367369

368370
[semver]: http://semver.org
369371
[cargodoc]: http://doc.crates.io/crates-io.html

src/libcore/fmt/mod.rs

+43
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,8 @@ impl<'a> Display for Arguments<'a> {
273273
///
274274
/// Generally speaking, you should just `derive` a `Debug` implementation.
275275
///
276+
/// When used with the alternate format specifier `#?`, the output is pretty-printed.
277+
///
276278
/// For more information on formatters, see [the module-level documentation][module].
277279
///
278280
/// [module]: ../index.html
@@ -314,13 +316,42 @@ impl<'a> Display for Arguments<'a> {
314316
/// println!("The origin is: {:?}", origin);
315317
/// ```
316318
///
319+
/// This outputs:
320+
///
321+
/// ```text
322+
/// The origin is: Point { x: 0, y: 0 }
323+
/// ```
324+
///
317325
/// There are a number of `debug_*` methods on `Formatter` to help you with manual
318326
/// implementations, such as [`debug_struct`][debug_struct].
319327
///
320328
/// `Debug` implementations using either `derive` or the debug builder API
321329
/// on `Formatter` support pretty printing using the alternate flag: `{:#?}`.
322330
///
323331
/// [debug_struct]: ../std/fmt/struct.Formatter.html#method.debug_struct
332+
///
333+
/// Pretty printing with `#?`:
334+
///
335+
/// ```
336+
/// #[derive(Debug)]
337+
/// struct Point {
338+
/// x: i32,
339+
/// y: i32,
340+
/// }
341+
///
342+
/// let origin = Point { x: 0, y: 0 };
343+
///
344+
/// println!("The origin is: {:#?}", origin);
345+
/// ```
346+
///
347+
/// This outputs:
348+
///
349+
/// ```text
350+
/// The origin is: Point {
351+
/// x: 0,
352+
/// y: 0
353+
/// }
354+
/// ```
324355
#[stable(feature = "rust1", since = "1.0.0")]
325356
#[rustc_on_unimplemented = "`{Self}` cannot be formatted using `:?`; if it is \
326357
defined in your crate, add `#[derive(Debug)]` or \
@@ -379,6 +410,8 @@ pub trait Display {
379410
///
380411
/// The `Octal` trait should format its output as a number in base-8.
381412
///
413+
/// The alternate flag, `#`, adds a `0o` in front of the output.
414+
///
382415
/// For more information on formatters, see [the module-level documentation][module].
383416
///
384417
/// [module]: ../index.html
@@ -391,6 +424,7 @@ pub trait Display {
391424
/// let x = 42; // 42 is '52' in octal
392425
///
393426
/// assert_eq!(format!("{:o}", x), "52");
427+
/// assert_eq!(format!("{:#o}", x), "0o52");
394428
/// ```
395429
///
396430
/// Implementing `Octal` on a type:
@@ -423,6 +457,8 @@ pub trait Octal {
423457
///
424458
/// The `Binary` trait should format its output as a number in binary.
425459
///
460+
/// The alternate flag, `#`, adds a `0b` in front of the output.
461+
///
426462
/// For more information on formatters, see [the module-level documentation][module].
427463
///
428464
/// [module]: ../index.html
@@ -435,6 +471,7 @@ pub trait Octal {
435471
/// let x = 42; // 42 is '101010' in binary
436472
///
437473
/// assert_eq!(format!("{:b}", x), "101010");
474+
/// assert_eq!(format!("{:#b}", x), "0b101010");
438475
/// ```
439476
///
440477
/// Implementing `Binary` on a type:
@@ -468,6 +505,8 @@ pub trait Binary {
468505
/// The `LowerHex` trait should format its output as a number in hexidecimal, with `a` through `f`
469506
/// in lower case.
470507
///
508+
/// The alternate flag, `#`, adds a `0x` in front of the output.
509+
///
471510
/// For more information on formatters, see [the module-level documentation][module].
472511
///
473512
/// [module]: ../index.html
@@ -480,6 +519,7 @@ pub trait Binary {
480519
/// let x = 42; // 42 is '2a' in hex
481520
///
482521
/// assert_eq!(format!("{:x}", x), "2a");
522+
/// assert_eq!(format!("{:#x}", x), "0x2a");
483523
/// ```
484524
///
485525
/// Implementing `LowerHex` on a type:
@@ -513,6 +553,8 @@ pub trait LowerHex {
513553
/// The `UpperHex` trait should format its output as a number in hexidecimal, with `A` through `F`
514554
/// in upper case.
515555
///
556+
/// The alternate flag, `#`, adds a `0x` in front of the output.
557+
///
516558
/// For more information on formatters, see [the module-level documentation][module].
517559
///
518560
/// [module]: ../index.html
@@ -525,6 +567,7 @@ pub trait LowerHex {
525567
/// let x = 42; // 42 is '2A' in hex
526568
///
527569
/// assert_eq!(format!("{:X}", x), "2A");
570+
/// assert_eq!(format!("{:#X}", x), "0x2A");
528571
/// ```
529572
///
530573
/// Implementing `UpperHex` on a type:

src/libcore/slice.rs

+4
Original file line numberDiff line numberDiff line change
@@ -1368,10 +1368,14 @@ pub fn mut_ref_slice<'a, A>(s: &'a mut A) -> &'a mut [A] {
13681368
///
13691369
/// The `len` argument is the number of **elements**, not the number of bytes.
13701370
///
1371+
/// # Unsafety
1372+
///
13711373
/// This function is unsafe as there is no guarantee that the given pointer is
13721374
/// valid for `len` elements, nor whether the lifetime inferred is a suitable
13731375
/// lifetime for the returned slice.
13741376
///
1377+
/// `p` must be non-null, even for zero-length slices.
1378+
///
13751379
/// # Caveat
13761380
///
13771381
/// The lifetime for the returned slice is inferred from its usage. To

src/librustc_resolve/lib.rs

-5
Original file line numberDiff line numberDiff line change
@@ -1844,11 +1844,6 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
18441844
visit::walk_ty_param_bounds_helper(this, bounds);
18451845

18461846
for trait_item in trait_items {
1847-
// Create a new rib for the trait_item-specific type
1848-
// parameters.
1849-
//
1850-
// FIXME #4951: Do we need a node ID here?
1851-
18521847
match trait_item.node {
18531848
ast::ConstTraitItem(_, ref default) => {
18541849
// Only impose the restrictions of

src/libstd/io/buffered.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use io::{self, DEFAULT_BUF_SIZE, Error, ErrorKind, SeekFrom};
2121
use ptr;
2222
use iter;
2323

24-
/// Wraps a `Read` and buffers input from it
24+
/// Wraps a `Read` and buffers input from it.
2525
///
2626
/// It can be excessively inefficient to work directly with a `Read` instance.
2727
/// For example, every call to `read` on `TcpStream` results in a system call.
@@ -54,13 +54,13 @@ pub struct BufReader<R> {
5454
}
5555

5656
impl<R: Read> BufReader<R> {
57-
/// Creates a new `BufReader` with a default buffer capacity
57+
/// Creates a new `BufReader` with a default buffer capacity.
5858
#[stable(feature = "rust1", since = "1.0.0")]
5959
pub fn new(inner: R) -> BufReader<R> {
6060
BufReader::with_capacity(DEFAULT_BUF_SIZE, inner)
6161
}
6262

63-
/// Creates a new `BufReader` with the specified buffer capacity
63+
/// Creates a new `BufReader` with the specified buffer capacity.
6464
#[stable(feature = "rust1", since = "1.0.0")]
6565
pub fn with_capacity(cap: usize, inner: R) -> BufReader<R> {
6666
let mut buf = Vec::with_capacity(cap);
@@ -183,7 +183,7 @@ impl<R: Seek> Seek for BufReader<R> {
183183
}
184184
}
185185

186-
/// Wraps a Writer and buffers output to it
186+
/// Wraps a Writer and buffers output to it.
187187
///
188188
/// It can be excessively inefficient to work directly with a `Write`. For
189189
/// example, every call to `write` on `TcpStream` results in a system call. A
@@ -205,13 +205,13 @@ pub struct BufWriter<W: Write> {
205205
pub struct IntoInnerError<W>(W, Error);
206206

207207
impl<W: Write> BufWriter<W> {
208-
/// Creates a new `BufWriter` with a default buffer capacity
208+
/// Creates a new `BufWriter` with a default buffer capacity.
209209
#[stable(feature = "rust1", since = "1.0.0")]
210210
pub fn new(inner: W) -> BufWriter<W> {
211211
BufWriter::with_capacity(DEFAULT_BUF_SIZE, inner)
212212
}
213213

214-
/// Creates a new `BufWriter` with the specified buffer capacity
214+
/// Creates a new `BufWriter` with the specified buffer capacity.
215215
#[stable(feature = "rust1", since = "1.0.0")]
216216
pub fn with_capacity(cap: usize, inner: W) -> BufWriter<W> {
217217
BufWriter {
@@ -253,11 +253,11 @@ impl<W: Write> BufWriter<W> {
253253
#[stable(feature = "rust1", since = "1.0.0")]
254254
pub fn get_ref(&self) -> &W { self.inner.as_ref().unwrap() }
255255

256-
/// Gets a mutable reference to the underlying write.
256+
/// Gets a mutable reference to the underlying writer.
257257
///
258258
/// # Warning
259259
///
260-
/// It is inadvisable to directly read from the underlying writer.
260+
/// It is inadvisable to directly write to the underlying writer.
261261
#[stable(feature = "rust1", since = "1.0.0")]
262262
pub fn get_mut(&mut self) -> &mut W { self.inner.as_mut().unwrap() }
263263

Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
-include ../tools.mk
22

3+
# FIXME: ignore freebsd
34
# This is a basic test of LLVM ExecutionEngine functionality using compiled
45
# Rust code built using the `rustc` crate.
56

7+
ifneq ($(shell uname),FreeBSD)
68
all:
79
$(RUSTC) test.rs
810
$(call RUN,test $(RUSTC))
11+
else
12+
all:
13+
14+
endif

0 commit comments

Comments
 (0)