Add #[deriving(Hash)] to Result.
Tests for issue 5997 failure and success conditions.

Closes #5997.
Add span to error for missing type params on enums.
Change error for out of scope type params to be more helpful.
Catch forward declarations in default type params at AST conversion.
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 #13525 : Ryman/rust/issue_5997, r=alexcrichton

Closes #5997.
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').
std: Make ~[T] no longer a growable vector

This removes all resizability support for ~[T] vectors in preparation of DST.
The only growable vector remaining is Vec<T>. In summary, the following methods
from ~[T] and various functions were removed. Each method/function has an
equivalent on the Vec type in std::vec unless otherwise stated.

* slice::OwnedCloneableVector
* slice::OwnedEqVector
* slice::append
* slice::append_one
* slice::build (no replacement)
* slice::bytes::push_bytes
* slice::from_elem
* slice::from_fn
* slice::with_capacity
* ~[T].capacity()
* ~[T].clear()
* ~[T].dedup()
* ~[T].extend()
* ~[T].grow()
* ~[T].grow_fn()
* ~[T].grow_set()
* ~[T].insert()
* ~[T].pop()
* ~[T].push()
* ~[T].push_all()
* ~[T].push_all_move()
* ~[T].remove()
* ~[T].reserve()
* ~[T].reserve_additional()
* ~[T].reserve_exect()
* ~[T].retain()
* ~[T].set_len()
* ~[T].shift()
* ~[T].shrink_to_fit()
* ~[T].swap_remove()
* ~[T].truncate()
* ~[T].unshift()
* ~str.clear()
* ~str.set_len()
* ~str.truncate()

Note that no other API changes were made. Existing apis that took or returned
~[T] continue to do so.

[breaking-change]
Update the rest of the compiler with ~[T] changes
auto merge of #13588 : alexcrichton/rust/no-more-growing, r=thestinger

This is all in preparation for DST. This removes all the growable/shrinkable methods from `~[T]`.
Add git to README.md dependency list because configure requires it
auto merge of #13601 : mdinger/rust/readme, r=brson

Configure required git be installed so this should be added to the dependencies list.  If it's only required when using git, a note could also be added.