Improve the error message for missing else clauses in if expressions
librustc: Improve method autoderef/deref/index behavior more, and enable
`IndexMut` on mutable vectors.

This fixes a bug whereby the mutability fixups for method behavior were
not kicking in after autoderef failed to happen at any level. It also
adds support for `Index` to the fixer-upper.

Closes #12825.
Add a memoize! macro and use it throughout rustc
Make memoize!() a function instead
export *IntSlice in libcollections
auto merge of #17983 : jakub-/rust/memoize-things, r=pcwalton
auto merge of #17934 : pcwalton/rust/better-autoderef-fixup, r=pnkfelix

librustc: Improve method autoderef/deref/index behavior more, and enable IndexMut on mutable vectors.

This fixes a bug whereby the mutability fixups for method behavior were
not kicking in after autoderef failed to happen at any level. It also
adds support for `Index` to the fixer-upper.

Closes #12825.

r? @pnkfelix
auto merge of #18015 : jakub-/rust/issue-4201, r=pcwalton

Closes #4201.
auto merge of #18067 : mahkoh/rust/immutableintslice, r=alexcrichton

There is also a second commit that adds them to the prelude.