oldmap: use &K instead of K in find and get
core: sort each prelude.rs section
core: export either::{Either,Left,Right} from the prelude
core: Flesh out the either traits
Use x86-64 CABI for foreign function on arm target
Let type_is_integral return false for bool type
Add support for clang 4.2 (as reported by apple clang) r=graydon
libcore: Add @ to Readers
automated merge
Ignore test exclusive_unwrap_conflict. #4689
automated merge
std: Stamp out structural records

See #4665
auto merge of pull req #4777 from thestinger/rust, r=graydon
auto merge of #4747 : sanxiyn/rust/integral-type, r=graydon

`ty::type_is_integral` returns `true` for `ty_bool`. This causes `-true` to compile, instead of resulting in a type error.
auto merge of #4784 : alexcrichton/rust/bitv-clear-fix, r=graydon

I think that the inversion of `op(&mut w)` may have just been a mistake?
auto merge of #4787 : graydon/rust/clang42, r=graydon

This is just a retargeting of https://github.com/mozilla/rust/pull/4753 against incoming
auto merge of #4790 : pcwalton/rust/at-readers, r=pcwalton
auto merge of #4793 : brson/rust/ignore_exclusive_unwrap_conflict, r=brson
auto merge of #4796 : catamorphism/rust/derecord_std, r=catamorphism

See #4665
Fix some bugs with -W unused-imports

1. Don't warn about anything not used in the prelude which is autmoatically
   injected, accomplished with a test that the span is equal to a dummy span.
2. Don't warn about unused imports from the injected intrinsic module,
   accomplished by testing against the name of the imported module
3. If anything is used from a glob import, don't warn about the glob import.
4. If an import imports more than one thing, and none of them are used, only
   issue a warning once

Also updated the unused-imports-warn test to have stricter requirements on
error messages.