Update rust.vim for the latest prelude/keywords
Add non-utf8 byte to the bytes!() example

Only an example was needed, as the ability to write uints into the string is
already mentioned.

Fix #7102.
vim: Handle box expressions specially

Attempt to highlight the placement expression in a `box (expr) foo`
expression. Also treat GC as a keyword within the placement expression.

This doesn't work correctly for arbitrary expressions. Notably, this
makes no attempt at balancing delimiters. I believe handling that will
require rewriting the syntax rules to add a region for every pair of
delimiters. That may be a desirable thing to do in the end, because we
can then rewrite our indent rules based on the syntax and get rid of
cindent(), but for the time being, we'll just live with the limitation.
auto merge of #13975 : nikomatsakis/rust/issue-13794-fn-subtyping-and-static, r=pnkfelix

Tweak region inference to ignore constraints like `'a <= 'static`, since they
have no value. This also ensures that we can handle some obscure cases of fn
subtyping with bound regions that we didn't used to handle correctly.

Fixes #13974.
auto merge of #14305 : tbu-/rust/pr_doc_bytes, r=huonw

Only an example was needed, as the ability to write uints into the string is
already mentioned.

Fix #7102.
green: Remove some unsafe code in BasicLoop
auto merge of #13823 : pnkfelix/rust/fsk-fix-13805, r=alexcrichton

Make configure script respect (and save) values for `CC`, `CXX`, `CFLAGS` etc.

I mostly tried to remain backwards compatible with old invocations of
the `configure` script; if you do not want to use `CC` et al., you
should not have to; you can keep using `--enable-clang` and/or
`--enable-ccache`.

The overall intention is to capture the following precedences for
guessing the C compiler:

 1. Value of `CC` at `make` invocation time.
 2. Value of `CC` at `configure` invocation time.
 3. Compiler inferred at configure invocation time (`gcc` or `clang`).

The strategy is to check (at `configure` time) if each of the
environment variables is set, and if so, save its value in a
corresponding `CFG_` variable (e.g. `CFG_CC`).

The `configure` script also does not attempt to infer the compiler if
`CC` is set; but if `--enable-clang` was passed, then it *does* still
attempt to validate that the clang version is compatible.

Then, in the makefiles, if `CC` is not set but `CFG_CC` is, then we
use the `CFG_CC` setting as `CC`.

Fix #13805.
Add run-pass case for issue #14308

Enum wildcard patterns in match behave wrong when applied to tuple
structs. They either ICE or cause an LLVM error.
Fix ICE regarding tuple struct matches using (..)

Fixes half of #14308.
Fix LLVM error with tuple struct match using (..)

Consider PatEnums constructed with A(..) to be candidates for tuple
struct patterns, not just ones constructed with A(a,b,c). If these
patterns shouldn't be valid tuple struct patterns (as they're equivalent
to _), this needs to be caught before we get to trans.

Fixes #14308.
Add .isatty() method to StdReader

StdWriter has .isatty(). StdReader can trivially vend the same function,
and someone asked today on IRC how to call isatty() on stdin.
Remove useless ToPrimitive bound on range_inclusive()
syntax: Parse global paths in patterns

Closes #6449
rustc: Prevant an out of bounds access in typeck

Closes #7092
Remove Rng.choose(), rename Rng.choose_option() to .choose()

Rng.choose() is used so rarely that it doesn't necessitate having two
methods, especially since the failing, non-option variant also requires
Clone.

[breaking-change]
rustc: Fix a dynamic borrow error in resolve

Closes #8208
Closes #10980
test: Add a test for fixed issue #10763

Closes #10763
test: Add test for fixed issue #11736

Closes #11736
test: Add a test for fixed issue #11844

Closes #11844
rustc: Avoid out of bounds in check_match

Closes #12116