rustdoc: Fix some more broken links
rustdoc: Filter private methods from inlined impls

Closes #14583
mk: Less noisy rustdoc invocations
rustdoc: Ensure external impls are inlined once

If the type associated with the impl is `pub use`'d or referenced twice in a
downstream crate, the impl will attempt to be inlined twice.

Closes #14584
rustdoc: Deduplicate lists of implementors

Inlining caused implementors to show up multiple times.

cc #14584
rustdoc: Correctly inline required/provided methods

Apparently relying on provided_source in ty::Method is unreliable!

Closes #14594
Adding show impl for Rc
std: add `IterReader` to adapt iterators into readers
Add next_permutation and prev_permutation onto MutableOrdVector<T>.

Unlike ImmutableClonableVector::permutations() which returns an iterator,
cloning the entire array each iteration, these methods mutate the vector in-place.
For that reason, these methods are much faster; between 35-55 times faster,
depending on the benchmark. They also generate permutations in lexicographical order.
syntax: Make quasiquoter use absolute paths

As part of removing `pub use` glob, two extra import globs were
injected to make `quote_expr!` work. However the globs caused
`unused_import` warning in some places.

Quasiquoter needed the globs since it generated idents (e.g. `TyU`)
rather than absolute paths (`::syntax::ast::TyU`).
This patch removes the extra globs and makes quasiquoter use absolute
paths.

Fixes #14618
Fix typo "gihub" in libsyntax/crateid.

Update licensing header for 2014.
librustc: Try to resolve before coercions.
auto merge of #14626 : klutzy/rust/issue-14618, r=alexcrichton

As part of removing `pub use` glob, two extra import globs were
injected to make `quote_expr!` work. However the globs caused
`unused_import` warning in some places.

Quasiquoter needed the globs since it generated idents (e.g. `TyU`)
rather than absolute paths (`::syntax::ast::TyU`).
This patch removes the extra globs and makes quasiquoter use absolute
paths.

Fixes #14618

cc @sfackler
auto merge of #14627 : Indiv0/rust/fix-crateid-doc-typo, r=alexcrichton

Example URL in CrateId documentation is:

    `gihub.com/mozilla/rust`

Instead of:

    `github.com/mozilla/rust`

Also update libsyntax/crateid.rs licensing header for 2014.
librustc: remove check::FnKind enum since we only ever use one variant.
std: Remove generics from Option::expect

This commit removes the <M: Any + Send> type parameter from Option::expect in
favor of just taking a hard-coded `&str` argument. This allows this function to
move into libcore.

Previous code using strings with `expect` will continue to work, but code using
this implicitly to transmit task failure will need to unwrap manually with a
`match` statement.

[breaking-change]
Closes #14008
auto merge of #14632 : luqmana/rust/cu, r=huonw

The distinction doesn't make sense any more since we don't have do blocks anymore.
rustdoc: Put primitives in respective modules

The logical location for the documentation of a primitive is in the module that
declared it was a module for that primitive.
auto merge of #14628 : luqmana/rust/fcr, r=nikomatsakis

#14589.
Fixes #13843.

An empty regex is a valid regex that always matches. This behavior
is consistent with at least Go and Python.

A couple regression tests are included.