doc: make the sentence make more sense
Guide: generics
Allow generic foreign functions.

Generic extern functions written in Rust have their names mangled, as well as their internal clownshoe __rust_abi functions. This allows e.g. specific monomorphizations of these functions to be used as callbacks.

Closes #12502.
Add new tests for extern and foreign fns and name mangling.
make rustdoc more responsive

* move some sidebar contents to a title bar when small
* inline description toggle when small
* make out-of-band and in-band content share space, rather than float and clash
* compress wording of out-of-band content to avoid line-wrap as much as possible
libcollections: Fix RingBuf growth for non-power-of-two capacities
Fix typo in the tutorial
auto merge of #16220 : tshepang/rust/temp, r=steveklabnik
windows: Fix several tests on 64-bit.

Signed-off-by: Peter Atashian <retep998@gmail.com>
Temporary bootstrapping hack: introduce syntax for r egion bounds like `'b:'a`,
meaning `'b outlives 'a`. Syntax currently does nothing but is needed for full
fix to #5763. To use this syntax, the issue_5763_bootstrap feature guard is
required.
auto merge of #16318 : nikomatsakis/rust/issue-5723-bootstrap-2, r=pnkfelix

Introduce syntax for lifetime bounds like `'b:'a`, meaning `'b outlives 'a`. Syntax currently does nothing but is needed for full fix to #5763. To use this syntax, the issue_5763_bootstrap feature guard is required.
Use system rustc if configured with --enable-local-rust

This commit makes the configuration system autodetect a rustc that
is already installed and use that instead of downloading a snapshot.
fix grammar in Vec.retain's doc comment
Rename `Share` to `Sync`

This leaves the `Share` trait at `std::kinds` via a `#[deprecated]` `pub use`
statement, but the `NoShare` struct is no longer part of `std::kinds::marker`
due to #12660 (the build cannot bootstrap otherwise).

All code referencing the `Share` trait should now reference the `Sync` trait,
and all code referencing the `NoShare` type should now reference the `NoSync`
type. The functionality and meaning of this trait have not changed, only the
naming.

Closes #16281
[breaking-change]
auto merge of #15831 : rpjohnst/rust/generic-foreign-fns, r=alexcrichton

This allows for things like this:

    extern "C" fn callback<T>(t: T) { /* ... */ }
    extern "C" {
        fn take_callback(c: extern fn(i32));
    }

and later:

    take_callback(callback::<i32>);

Closes #12502.
Guide: closures
auto merge of #16317 : adrienbrault/rust/patch-1, r=kballard
Fix typo
Guide: tasks
Guide: strings