Add [mut_]shift_ref/[mut_]pop_ref functions, which return a pointer to the first/last item in the slice and modify the slice to exclude the returned item. Useful when writing iterators over mutable references.
Updating docs with updated closure syntax, `&fn` -> `||`
Turn off attribute_usage warning on check-fast
auto merge of #10668 : vky/rust/closure-doc-update, r=alexcrichton
test: Remove most uses of `&fn()` from the tests.
librustc: Remove remaining uses of `&fn()` in favor of `||`.
libsyntax: Remove the old-style borrowed closure type syntax from the
language.
libstd: Remove all non-`proc` uses of `do` from libstd
librustuv: Remove all non-`proc` uses of `do` from `libextra` and
`librustuv`.
libsyntax: Remove all non-`proc` `do` syntax.
librustc: Remove non-procedure uses of `do` from librustc, librustdoc,
and librustpkg.
test: Remove non-procedure uses of `do` from compiletest, libstd tests,
compile-fail tests, run-fail tests, and run-pass tests.
test: Remove all remaining non-procedure uses of `do`.
librustc: Make `||` lambdas not infer to `proc`s
libstd: Fix Win32 and other bustage.
Correctly handle libuv errors in addrinfo calls

It turns out that libuv was returning ENOSPC to us in our usage of the
uv_ipX_name functions. It also turns out that there may be an off-by-one in
libuv. For now just add one to the buffer size and handle the return value
correctly.

Closes #10663
auto merge of #10664 : alexcrichton/rust/issue-10663, r=luqmana

It turns out that libuv was returning ENOSPC to us in our usage of the
uv_ipX_name functions. It also turns out that there may be an off-by-one in
libuv. For now just add one to the buffer size and handle the return value
correctly.

Closes #10663
Remove the unused obsolete enum_discrim type.
auto merge of #10673 : klutzy/rust/quite, r=alexcrichton
librustc: Fix merge fallout.