libtest: DSTify `Stats`
libsyntax: DSTify `ToSource` and `ToSourceWithHygiene`
Disallow coercions from [T, ..n] to &[T]or *[T]

[breaking-change]

Insert an `&` to fix
Regression test
librustc: DSTify `ClassList`, `LlvmRepr` and `Repr`
libcore: add num::Int::pow() and deprecate num::pow().

Signed-off-by: NODA, Kai <nodakai@gmail.com>
auto merge of #19050 : japaric/rust/moar-dst, r=aturon

r? @aturon 
cc #16918
implement Writer for Vec<u8>

The trait has an obvious, sensible implementation directly on vectors so
the MemWriter wrapper is unnecessary. This will halt the trend towards
providing all of the vector methods on MemWriter along with eliminating
the noise caused by conversions between the two types. It also provides
the useful default Writer methods on Vec<u8>.

After the type is removed and code has been migrated, it would make
sense to add a new implementation of MemWriter with seeking support. The
simple use cases can be covered with vectors alone, and ones with the
need for seeks can use a new MemWriter implementation.
Windows and OS X fallout
auto merge of #18885 : thestinger/rust/writer, r=aturon

The trait has an obvious, sensible implementation directly on vectors so
the MemWriter wrapper is unnecessary. This will halt the trend towards
providing all of the vector methods on MemWriter along with eliminating
the noise caused by conversions between the two types. It also provides
the useful default Writer methods on Vec<u8>.

After the type is removed and code has been migrated, it would make
sense to add a new implementation of MemWriter with seeking support. The
simple use cases can be covered with vectors alone, and ones with the
need for seeks can use a new MemWriter implementation.
auto merge of #18645 : nick29581/rust/coercions-1, r=alexcrichton

r?

(I realise this needs a rebase, but I will probably have to chop it up in order to land and I'd like to get r+ first so I can do that quicker)
Move trans, back, driver, and back into a new crate, rustc_trans. Reduces memory usage significantly and opens opportunities for more parallel compilation.
make cloned generic over deref... and have its tests actually run
add Cloned iterator adaptor
auto merge of #19031 : nodakai/rust/libcore-pow-and-sq, r=bjz

[breaking-change]

Deprecates `core::num::pow` in favor of `Int::pow`.
auto merge of #19070 : nikomatsakis/rust/crates, r=nikomatsakis

Reduces memory usage significantly and opens opportunities for more parallel compilation.

This PR was previously #19002 but I closed it because bors didn't seem to recognize the `r+` annotations there.
auto merge of #19060 : Gankro/rust/super-cloned, r=aturon

Edit: whoops, didn't mean to hit post.

Anyway, this is something I tried to do when I first implemented cloned, but couldn't figure out. Somewhere between then and the PR actually landing, we got Deref of references, so now this works! :tada: 

Also turns out the test for the functionality was never marked as a #[test]. Oops!

Also added a Cloned iterator adaptor. If this isn't desirable, it can be taken out of the PR (seperate commits).
Place parenthetical notation under the `unboxed_closure` feature-gate.
Consolidate the `unboxed_closure_sugar` and `unboxed_closure` feature gates.
Pull out the fn-sig sub/lub/glb code and generalize it into a `higher_ranked` module. Also moves the docs to a more suitable place.
Switch the code to use De Bruijn indices rather than binder-ids.