Add #[deriving(Hash)] to Result.
mk/tests.mk: Fix a typo causing make to give compiletest the wrong rt build dir (target instead of host).
Remove rule that is confusing

The original text stated that one should only return a unique or managed pointer if you were given one in the first place. This makes it sound as if the function *should* return a unique pointer if it were given a unique pointer. The rest of the section goes on to describe why this is bad, and the example of bad code does exactly what the rule just said to do.

I reworded the original rule into a reference to the more concise rule mentioned at the bottom of the section, which helps add emphasis (a la 'it bears repeating').
auto merge of #13580 : DiamondLovesYou/rust/std-result-hash, r=alexcrichton

Title says it all.
auto merge of #13581 : DiamondLovesYou/rust/tests-mk-typo, r=alexcrichton

I spotted this while working on https://github.com/mozilla/rust/pull/13450.
auto merge of #13585 : brandonw/rust/patch-1, r=cmr

The original text stated that one should only return a unique or managed pointer if you were given one in the first place. This makes it sound as if the function *should* return a unique pointer if it were given a unique pointer. The rest of the section goes on to describe why this is bad, and the example of bad code does exactly what the rule just said to do.

I reworded the original rule into a reference to the more concise rule mentioned at the bottom of the section, which helps add emphasis (a la 'it bears repeating').
rustc: Make std_inject valid for pretty-printer

Inject `extern crate {std, native}` before `use` statements.
Add `#![feature(glob)]` since `use std::prelude::*` is used.

(Unfortunately `rustc --pretty expanded` does not converge,
since `extern crate` and `use std::prelude::*` is injected at every
iteration.)
syntax: Rename `#[deriving(...)]` after expansion

This patch renames `#[deriving]` into `#[!deriving]` (starting with `!`)
to mark that expansion has completed.

This makes output of `--pretty expanded` valid.
pprust: Add parentheses to some Expr

Some `Expr` needs parentheses when printed. For example, without
parentheses, `ExprUnary(UnNeg, ExprBinary(BiAdd, ..))` becomes
`-lhs + rhs` which is wrong.

Those cases don't appear in usual code, but they can appear in manually
crafted ast by extensions.

Note that this patch is incomplete in that it doesn't add any
parentheses to `ExprBinary` since they have complicated story.
(Adding parentheses would cause `1 + 2 + 3` into `1 + (2 + 3)` which
doesn't look so good...)
pprust: Fix asm output
pprust: Print `&&e` instead of `& &e`
pprust: Remove unnecessary && of `print_tt`
libsyntax: Workaround pprust `for` issue
test: Add missing `#![feature(managed_boxes)]`

The tests use managed boxes, but are not perfectly feature-gated because
they use `@` inside macros. (It causes issue after `--pretty expanded`.)
compiletest: Modernize typenames
compiletest: Test `--pretty expanded`

After testing `--pretty normal`, it tries to run `--pretty expanded` and
typecheck output.
Here we don't check convergence since it really diverges: for every
iteration, some extra lines (e.g.`extern crate std`) are inserted.

Some tests are `ignore-pretty`-ed since they cause various issues
with `--pretty expanded`.