Include import name in import shadowing error messages.

This partially alleviates the confusing behavior in issue #16597
Update compile-fail tests due to changed diagnostics
Add compile-fail test for missing import shadowing case
Always insert methods into the search index, even if we're currently in a private module.

Previously, this caused methods of re-exported types to not be inserted into
the search index. This fix may introduce some false positives, but in my
testing they appear as orphaned methods and end up not being inserted into the
final search index at a later stage.

Fixes issue #11943
add missing ! char to feature gate hint
Add a simple test for rustdoc search index contents
debuginfo: Allow to activate GDB pretty printers in autotests.
debuginfo: Add GDB pretty printers for structs and enums.
debuginfo: Emit different autotest debugger scripts depending on GDB version.
debuginfo: Improve GDB version handling in compiletest tool
Fix regionck to consider bounds on a proc when capturing variables
Fix regionck to account for the uniqueness requirements on ref mut reborrows
Fix kindck to consider inherited bounds
Refactor and cleanup inference code: s/get_ref()/fields/, use try! macro rather than if_ok!
Introduce snapshot_vec abstraction
auto merge of #16770 : cburgdorf/rust/patch_overloaded_calls_hint, r=alexcrichton
Mention type of `for` exprs that don't implement Iterator.

This improves the error message by telling the user the exact type of
`x` if it doesn't implement `Iterator` in `for ... in x {}`.

Closes #16043.
Avoid flow-on Iterator error for `for ... in [ty err] {}`.

This squashes the

> `for` loop expression has type `[type error]` which does not implement
> the `Iterator` trait

message that one received when writing `for ... in x` where was
previously found to have a type error.

Fixes #16042.
Don't double free embedded, unsized slices

Thanks to @eddyb for finding the bug.

Closes #16826 (I hope)
rustc: move pretty printing into its own module.

There's a lot of it, and it's a fairly well-defined/separate chunk of
code, so it might as well be separate.