auto merge of #14345 : alexcrichton/rust/rustdoc-many-impls, r=pcwalton

Right now, when you look in the "Implementors" section for traits, you only see
implementors within that crate. This commit modifies that section to include
implementors from neighboring crates as well.

For example, the Container trait currently says that it is only implemented by
strings and slices, but it is in fact implemented by nearly all containers.

Implementation-wise, this change generates an "implementors cache" similarly to
the search index where each crate will append implementors to the files. When
the page for a trait is loaded, it will load its specific cache file, rendering
links for all upstream types which implement the trait.
Remove allow(deprecated_owned_vector) lint
auto merge of #14335 : tbu-/rust/pr_doc_strsplit, r=pnkfelix

In particular, show examples for splitting the empty string and using `splitn`
with a count of 0.

Fix #14222.
Spelling/doc formatting fixes.
syntax: put the correct span on doc-comments inside a module.

The position of the .bump call (before extracting the span fields) was
causing a doc-comment to have the span of the next token, not itself.
auto merge of #14349 : richo/rust/docs/win64_calling_convention, r=alexcrichton

Wikipedia suggests that windows on x64 has it's own calling convention (Supported by the fact that we implement it)

source: http://en.wikipedia.org/wiki/X86_calling_conventions#x86-64_calling_conventions
auto merge of #14354 : EdorianDark/rust/master, r=huonw

It seemed to me, that [T] was deprecated and i am trying to help.
rustdoc: Fill in external trait methods

This commit alters rustdoc to crawl the metadata of upstream libraries in order
to fill in default methods for traits implemented in downstream crates. This,
for example, documents the `insert` function on hash maps.

This is a fairly lossy extraction from the metadata. Documentation and
attributes are lost, but they aren't used anyway. Unfortunately, argument names
are also lost because they are not present in the metadata. Source links are
also lost because the spans are not serialized.

While not perfect, it appears that presenting this documentation through rustdoc
is much better than nothing, so I wanted to land this to allow iteration on it
later on.
auto merge of #14346 : alexcrichton/rust/rustdoc-external-crates, r=pcwalton

This commit alters rustdoc to crawl the metadata of upstream libraries in order
to fill in default methods for traits implemented in downstream crates. This,
for example, documents the `insert` function on hash maps.

This is a fairly lossy extraction from the metadata. Documentation and
attributes are lost, but they aren't used anyway. Unfortunately, argument names
are also lost because they are not present in the metadata. Source links are
also lost because the spans are not serialized.

While not perfect, it appears that presenting this documentation through rustdoc
is much better than nothing, so I wanted to land this to allow iteration on it
later on.
Remove a slew of old deprecated functions
auto merge of #14350 : zwarich/rust/let-suggestion, r=pcwalton
Fixed incorrect module path
extra::arc -> sync::arc
libstd: Remove `~str` from all `libstd` modules except `fmt` and `str`.
libtime: Remove the `tz_zone` field from times.

It depends on `~str`.
libstd: Remove all uses of `~str` from `libstd`
libcore: Remove all uses of `~str` from `libcore`.

[breaking-change]
doc: Touch up the unsafe guide

* Change ~ references to Box
* Rewrite examples so they can be compiled an run
* Mention libcore
* Update wording about compiler-required functions
auto merge of #14310 : pcwalton/rust/detildestr-alllibs, r=brson

r? @brson
auto merge of #14348 : alexcrichton/rust/doc.rust-lang.org, r=huonw
Update to LLVM head and mark various ptrs as nonnull.