doc: make docs build

Addresses this comment:
https://github.com/rust-lang/rust/pull/16721#issuecomment-53946624
test: Ignore a deadlocking test on OSX

This test apparently keeps making no progress and timing out builds on the OSX
builder, so this commit is switching the test to be ignored.

cc #16872
rustc: implement a pretty mode to print ident/name's ctxt & gensyms.

`--pretty expanded,hygiene` is helpful with debugging macro issues,
since two identifiers/names can be textually the same, but different
internally (resulting in weird "undefined variable" errors).
auto merge of #16190 : Pythoner6/rust/labeled-while-loop, r=alexcrichton

Fixes #12643

> Say!
> I like labelled breaks/continues!

I will use them with a `for` loop.
And I will use with a `loop` loop.
Say! I will use them ANYWHERE!
… _even_ in a `while` loop.

Because they're now supported there.
auto merge of #16419 : huonw/rust/pretty-expanded-hygiene, r=pnkfelix

Different Identifiers and Names can have identical textual representations, but different internal representations, due to the macro hygiene machinery (syntax contexts and gensyms). This provides a way to see these internals by compiling with `--pretty expanded,hygiene`.

This is useful for debugging & hacking on macros (e.g. diagnosing https://github.com/rust-lang/rust/issues/15750/https://github.com/rust-lang/rust/issues/15962 likely would've been faster with this functionality).

E.g. 

```rust
#![feature(macro_rules)]
// minimal junk
#![no_std]

macro_rules! foo {
    ($x: ident) => { y + $x }
}

fn bar() {
    foo!(x)
}
```
```rust
#![feature(macro_rules)]
// minimal junk
#![no_std]


fn bar /* 61#0 */() { y /* 60#2 */ + x /* 58#3 */ }
```
auto merge of #16598 : bkoropoff/rust/import-shadow-name, r=alexcrichton

This partially alleviates the confusing behavior in issue #16597
Fix grammar of the accepted feature warning.
guide: function -> closure in explanation of closures
Remove the branch merging optimisations for slice patterns

They were only correct in the simplest case. Some of the optimisations
are certainly possible but should be introduced carefully and only
when the whole pattern codegen infrastructure is in a better shape.

Fixes #16648.
Defailbloat fail!(string)
auto merge of #16859 : alexcrichton/rust/snapshots, r=huonw
note about ref patterns in pointer guide

Fixes #13602
doc: Add another restriction to the list of ownership rules.
auto merge of #16873 : alexcrichton/rust/ignore-deadlocks, r=sfackler

This test apparently keeps making no progress and timing out builds on the OSX
builder, so this commit is switching the test to be ignored.

cc #16872
Allow ExprLit expression macros to be used in patterns.
auto merge of #16393 : SimonSapin/rust/patch-9, r=steveklabnik
gensym each test re-export module individually

Fixes #16597
auto merge of #16650 : ruud-v-a/rust/timespec-arithmetic, r=alexcrichton

This changes the `Add` and `Sub` implementations for `Timespec` introduced in #16573 to use `Duration` as the time span type instead of `Timespec` itself, as [suggested](https://github.com/rust-lang/rust/pull/16573#issuecomment-52593408) by @sfackler.

This depends on #16626, because is uses `Duration::seconds(i64)`, whereas currently `Duration::seconds` takes an `i32`.
test: Fix the tcp-accept-stress test

It was previously asserted that each thread received at least one connection,
but this is not guaranteed to always be the case due to scheduling. This test
also deadlocked on failure due to a lingering reference to the sending half of
the channel, so that reference is now also eagerly dropped so the test can fail
properly if something bad happens.

Closes #16872
rollup merge of #16716 : tshepang/temp