fix issue #6209
add smallintset
testsuite: Add passing test for #4107
testsuite: Make main fn public
auto merge of #6483 : catamorphism/rust/issue-4107, r=catamorphism
Fix ICE in macros
Add test
auto merge of #6686 : cmr/rust/fix-6596, r=catamorphism

The error message is extremely unideal.
auto merge of #6669 : yjh0502/rust/fix_6209, r=graydon

Fix issue #6209, and some related issues about constant expression
 - unmatched type between arms
 - unmatched type in range
auto merge of #6677 : yjh0502/rust/smallintset, r=graydon

Implement SmallIntSet (refer #4984)
librustc: Disallow `use` from reaching into impls or traits.

This can perhaps be restored in the future. For now this is a precursor to
making typedefs work as expected.
librustc: Disable borrow check debugging even when rustc is compiled with -O0.

This improves -O0 compile times dramatically.
test: Fix tests.
librustc: Make `~Trait` two words by storing the type descriptor in the vtable.
librustc: Fix privacy checking for cross-crate variants
libstd: Rename libcore to libstd and libstd to libextra; update makefiles.

This only changes the directory names; it does not change the "real"
metadata names.
librustc: Rename core injection to std injection
libextra: Rename the actual metadata names of libcore to libstd and libstd to libextra
librustc: Change `std` to `extra` throughout libsyntax and librustc
librustc: Make `std_inject` inject the name `std`, not `core`