Mention that find() doesn't consume the full iterator
Fix an ICE on diagnostics originating in external macros
auto merge of #19158 : jakub-/rust/issue-14091, r=alexcrichton

Closes #14091.
Closes #19195.
Fix the reason for calling a file lib.rs
auto merge of #18140 : JelteF/rust-1/guide-fix, r=cmr

The reason given didn't make any sense when I read it when reading through the docs. I think this is more clear. Please let me know it is also more correct.
fix for PR#16552 implementation on windows: CFG_LIBDIR should be always set in configure variables
auto merge of #19150 : Manishearth/rust/find-doc, r=Gankro

It's useful to know this (opens up a bunch of other opportunities especially whilst parsing)
rollup merge of #19161: jmesmon/mk-fixes

This is a collection of misc issues I've run into while adding bindir & libdir support that aren't really bindir & libdir specific.

While I continue to fiddle with bindir and libdir bugs, I figured these might be useful for others to have merged.
rollup merge of #19166: richo/lldb-cleanups

While poking at rust in lldb I found a few nits to clean up.
rollup merge of #19184: Gekkio/fix-binary-format-char

This small piece of documentation was missed in the format character change
in 4af3494bb02e80badc978faa65e59625ade0c675.
rollup merge of #19193: scialex/rc-counts

These functions allow you to see how many weak and strong references
there are to an `Arc`, `Rc`, or an `rc::Weak`. Due to the design of
`Arc` it is not possible to get the number of weak references of an
arbitrary `arc::Weak`. Look in `arc.rs` for a more in-depth explanation.

On `arc::Arc` and `arc::Weak` these operations are wait-free and atomic.

This sort of information is useful for creating dynamically cleared caches for use in OS development, for example holding pages of files in memory until the address space is needed for something else.
rollup merge of #19194: aturon/stab-ascii

This is an initial API stabilization pass for `std::ascii`. Aside from
some renaming to match conversion conventions, and deprecations in favor
of using iterators directly, almost nothing is changed here. However,
the static case conversion tables that were previously public are now private.

The stabilization of the (rather large!) set of extension traits is left
to a follow-up pass, because we hope to land some more general machinery
that will provide the same functionality without custom traits.

[breaking-change]
rollup merge of #19198: alexcrichton/snapshots

Primarily including the libnative removal
rollup merge of #19204: mcpherrinm/master

The old name was sensible when this module was PriorityQueue but isn't
anymore.
rollup merge of #19205: jashank/docs-fix

Catch a missed triple-slash in the docs for `std::os::args()`. Passes `make check`. (I've also eyeballed the rest of `libstd` with the aid of some funky regexes and haven't found anything similar.)
rollup merge of #19210: petrochenkov/master

Now `std::hash::hash("abcd")` works.
rollup merge of #19211: aochagavia/tuple-index

This breaks code like

```
let t = (42i, 42i);
... t.0::<int> ...;
```

Change this code to not contain an unused type parameter. For example:

```
let t = (42i, 42i);
... t.0 ...;
```

Closes https://github.com/rust-lang/rust/issues/19096

[breaking-change]

r? @aturon
rollup merge of #19215: aochagavia/pretty

Closes https://github.com/rust-lang/rust/issues/19077

I would appreciate any guidance on how to write a test for this. I saw some examples in `test/pretty`, but there are different ways to test... With or without `.pp` files, with a `pp-exact` comment, etc.
rollup merge of #19225: reem/any-unnecessary-transmute-copy

transmute_copy is no longer needed and is just slow.
rollup merge of #19230: nick29581/dxr-values

r?