Issue #4830 fix
Add debug info tests
auto merge of #4848 : nikomatsakis/rust/issue-4821-bad-kind-computation, r=catamorphism

...ear

values to be copied.  Rewrite kind computation so that instead of directly
computing the kind it computes what kinds of values are present in the type,
and then derive kinds based on that. I find this easier to think about.

Fixes #4821.

r? @catamorphism
auto merge of #4852 : Caseus/rust/issue-4836, r=brson

Simple removal of rust_compare_and_swap_ptr from rt, as per Issue #4836
fix typos in sample code, add enum to json encoder, add test case
json bugfixes
tidy
json bugfix
json add enum encoder test case
re-special-case Option in JSON encoding
json tidy
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.
core: Remove GenericChan/Port from prelude. Closes #4762
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.
added issue for reference in FIXME