Add the DerefImm and DerefMut traits.
Implement DerefImm for Rc and DerefImm/DerefMut for RefCell's Ref/RefMut.
Allow overloading explicit dereferences.
auto merge of #12491 : eddyb/rust/deref, r=nikomatsakis

Add the `Deref` and `DerefMut` traits and implement overloading explicit dereferences.
Str::slice_chars() is O(end), not O(end - begin)
Update version and date info in man pages

Both for rustc and rustdoc the man pages contained out-of-date version info.
auto merge of #12708 : SimonSapin/rust/patch-6, r=huonw

Feel free to reject this if I’m mistaken, but the `count` in the for loop does look like it’s going from 0 to `end`.
Refactor and fix FIXME's in mtwt hygiene code

- Moves mtwt hygiene code into its own file
- Fixes FIXME's which leads to ~2x speed gain in expansion pass
- It is now @-free
add correct floating point `min` and `max` methods.

The `std::cmp` functions are not correct for floating point types.

`min(NaN, 2.0)` and `min(2.0, NaN)` return different values, because
these functions assume a total order. Floating point types need special
`min`, `max` and `clamp` functions.
consistently use LLVM floating point intrinsics
auto merge of #12700 : thestinger/rust/float, r=cmr
auto merge of #12709 : aepsil0n/rust/update_man_version, r=alexcrichton

Just realized that these were quite outdated and quickly fixed it. I have to admit that I did not run the test suite on this one though…
auto merge of #12711 : edwardw/rust/mtwt, r=pcwalton

- Moves mtwt hygiene code into its own file
- Fixes FIXME's which leads to ~2x speed gain in expansion pass
- It is now @-free
Disallowed patterns in extern fn declarations.

Closes #10877
auto merge of #12715 : dmski/rust/no-extern-fn-pat, r=alexcrichton

Fixes #10877

There was another PR which attempted to fix this in the parser (#11804) and which was closed due to inactivity.
This PR modifies typeck instead (as suggested in #11804), which indeed seems to be simpler than modifying the parser and allows for a better error message.
add tests for `min` and `max` from `Float`
stats: fix handling of NaN in `min` and `max`

The `cmp::min` and `cmp::max` functions are not correct with partially
ordered values. #12712
auto merge of #12718 : thestinger/rust/min_max, r=alexcrichton