fix issue #6209
Fix #6342
add smallintset
Implement static_assert attribute

This verifies that a static item evaluates to true, at compile time.
Add static_assert doc blurb
auto merge of #6670 : cmr/rust/static_assert, r=graydon

This verifies that a static item evaluates to true, at compile time.
auto merge of #6672 : yjh0502/rust/fix_6342, r=graydon

Fix #6342
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