Update error message on compile
Single curly braces instead of double are being used
Add example of estimating pi using Monte Carlo simulation to std::rand
Add division by zero case to the `CheckedDiv` comment
Remove the dist function; it is more efficient to compare squared distances
Guide: patterns.

Fixes #4417.
Followup to PR #16477: a run-pass regression test for Issue #15750.
Add a test for complex divide by zero.
Add export_name to the attribute whitelist and a description in the rust manual
Guide: iterators
Guide: array subscript notation
librustc: Implement simple `where` clauses.

These `where` clauses are accepted everywhere generics are currently
accepted and desugar during type collection to the type parameter bounds
we have today.

A new keyword, `where`, has been added. Therefore, this is a breaking
change. Change uses of `where` to other identifiers.

[breaking-change]
libcore: Get rid of useless mem::forget wrapper.
librustc: Don't create scratch for the base expr in function record update.
librustc: Fix trans for functional record update when discarding the result.
std::io::util cleanup + fixes

* Fix `LimitReader`'s `Buffer::consume` impl to avoid limit underflow
* Make `MultiWriter` fail fast instead of always running through each
    `Writer`. This may or may not be what we want, but it at least
    doesn't throw any errors encountered in later `Writer`s into oblivion.
* Prevent `IterReader`'s `Reader::read` impl from returning EOF if given
    an empty buffer.

[breaking-change]
auto merge of #16424 : pcwalton/rust/where-clauses, r=nikomatsakis

These `where` clauses are accepted everywhere generics are currently
accepted and desugar during type collection to the type parameter bounds
we have today.

A new keyword, `where`, has been added. Therefore, this is a breaking
change. Change uses of `where` to other identifiers.

[breaking-change]

r? @nikomatsakis (or whoever)
auto merge of #16494 : pnkfelix/rust/fsk-quotstx-followup, r=alexcrichton

Followup to PR #16477: a run-pass regression test for Issue #15750.
Generate slightly better unoptimized code for for-loops

The discriminant for Option values is either 0 or 1, so we can just
truncate the value to an i1, which ends up as a no-op for Options
containing pointers.
auto merge of #16500 : jackheizer/rust/export-name, r=alexcrichton