auto merge of #16805 : nick29581/rust/dst-raw, r=nikomatsakis

r? @pnkfelix or @nikomatsakis
auto merge of #16925 : jbcrail/rust/doc-spelling-errors, r=alexcrichton

I fixed spelling mistakes in the documentation.
std: branchless bucket distance for hashmap
std: RawTable exposes a safe interface for HashMap

Introduced a new growth algorithm.
std: Split hashmap.rs into modules
Prevent failure when using fail! with invalid utf8.

Closes #16877.
native: Remove a bogus assert in net::read

This assert was likely inherited from some point, but it's not quite valid as a
no-timeout read may enter this loop, but data could be stolen by any other read
after the socket is deemed readable.

I saw this fail in a recent bors run where the assertion was tripped.
test: Ignore failing gdb pretty tests

These tests are blocking a linux nightly and a new snapshot, so ignore them for
now. Their tracking issue is #16919.
auto merge of #16916 : alexcrichton/rust/tcp-accept-stress-again-oh-my, r=brson

The tcp-accept-stress, despite the previous modifications, is still deadlocking
on the osx buildbots. When building/testing/running repeatedly locally, it was
discovered that the test would often fail with TcpStream::connect returning the
error `address not available`.

This test opens up quite a large number of sockets, and it looks like by default
osx isn't the speediest at recycling those sockets for further use.

The test has been modified (and verified) to not deadlock in this error case,
and the test is not just officially ignored on OSX (with no FIXME). I believe
that we'll get good coverage of the relevant code on the linux builders, so this
isn't so much of a loss.

At the same time I turned down the stress parameters to hopefully lighten the
socket load on other platforms.
Schedule cleanup for &* on fat owned pointers

For example `let _x: &Trait = &*(box Foo as Box<Trait>);`. There was a bug where no cleanup would be scheduled by the deref.

No test because cleanup-auto-borrow-obj.rs is a test for this once we remove trait cross-borrowing (done on another branch).
Remove cross-borrowing for traits.

Closes #15349

[breaking-change]

Trait objects are no longer implicitly coerced from Box<T> to &T. You must make an explicit coercion using `&*`.
auto merge of #16944 : alexcrichton/rust/ignore-gdb-pretty, r=brson

These tests are blocking a linux nightly and a new snapshot, so ignore them for
now. Their tracking issue is #16919.
auto merge of #16850 : vks/rust/hash-num, r=alexcrichton

Updates #15294.
auto merge of #16892 : andrew-d/rust/andrew-fix-test-reexports, r=sfackler

Fixes #16597

I'm not 100% sure this is the correct way to handle this - but I wasn't able to find a better way without doing way more refactoring of the code that I was comfortable with.  Comments and criticism are appreciated :smile:
auto merge of #16917 : nick29581/rust/cross-trait, r=pcwalton

Closes #15349

r? @pcwalton (or anyone else)
Add some tests for closures that return `!`
Fix ICE when casting `&[T]` to `*const [T]`

Closes #16947
Handle custom deref returning fat pointers

Closes #16930
Enable a test for correct treatment of Sized?
auto merge of #16934 : nick29581/rust/dst-bug-6, r=pcwalton

Closes #16911 

r?