Fix sample program to compile in modern rust
Merge branch 'master' of https://github.com/mozilla/rust
Fix for issue 2174

The function that formats and prints the squigly line that hilights
errors counted tabs as spaces, which resulted in incorrect error
messages when tabs were used for indentation. This change compares
the highlight line with the previous line and inserts a tab instead
of a space whenever such a tab exists on the previous line. Note
that error messages will still highlight incorrectly when the
previous line include characters that require more than one utf8
code point, as mentioned in issue 3260.
Added related FIXME for 3260
oldmap: get rid of legacy _ref suffixes
oldmap: separate out the methods that need Copy
oldmap: rm unneeded unsafe
Remove trailing whitespace
libsyntax/attr.rs: switch from oldmap to LinearSet
librustc/back/rpath.rs: oldmap -> LinearSet
Issue #4830 fix
auto merge of #4853 : Thiez/rust/incoming, r=catamorphism

A simple fix for issue 2174.
auto merge of #4854 : thestinger/rust/oldmap, r=catamorphism
auto merge of #4827 : mcpherrinm/rust/master, r=catamorphism

It seems to me the library needs more work to be done, but having a non-compilable sample program seems like bad news.
auto merge of #4861 : sethpink/rust/incoming, r=catamorphism

Fix for issue #4830.
Omit discriminant from nullary univariant enums.

If an enum is isomorphic to unit, there's no need to use any bits to
represent it.  The only obvious reason this wasn't the case was because
the enum could be C-like and have a user-specified discriminant -- but
that value is constant, so it doesn't need to be stored.

This change means that all newtype-like enums have the same size (and
layout) as their underlying type, which might be a useful property to
have, at least in terms of making programs' low-level behavior less
surprising.
auto merge of #4866 : jld/rust/enum-unitlike, r=graydon

If an enum is isomorphic to unit, there's no need to use any bits to
represent it.  The only obvious reason this wasn't the case was because
the enum could be C-like and have a user-specified discriminant -- but
that value is constant, so it doesn't need to be stored.

This change means that all newtype-like enums have the same size (and
layout) as their underlying type, which might be a useful property to
have, at least in terms of making programs' low-level behavior less
surprising.
rust-mode.el uses the 'cl macros, so it should actually require them

Without this change, rust-mode doesn't work if 'cl hasn't been required
by something else, apparently.  I'm not entirely sure what changed such
that I started seeing this problem instead of not, but maybe the emacs
world has been making progress towards not loading 'cl at runtime if
it's only needed at compile time.
etc: rework of how libuv is integrated into the build

- thanks to work in libuv's upstream, we can call libuv's Makefile directly
with parameters, instead of descending in gyp-uv madness and generating
our own.
rt/std: update of libuv API glue for libuv submodule update