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
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 #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
Properly canonicalize crate paths specified via --extern

Crates that are resolved normally have their path canonicalized and all
symlinks resolved. This does currently not happen for paths specified
using the --extern option to rustc, which can lead to rustc thinking
that it encountered two different versions of a crate, when it's
actually the same version found through different paths.

To fix this, we must store the canonical path for crates found via
--extern and also use the canonical path when comparing paths.

Fixes #16496
Change how libgetopts handles options grouped together

As soon as an option is found that takes an argument, consume the rest
of the string and store it into i_arg. Previously this would only happen
if the character after the option was not a recognized option.

Addresses issue #16348