Allow `!` as the return type of proc/closure literals

Fixes #13490.
Change rustc to say `array` instead of `vector`
core: Make TwoWaySearcher reset its prefix memory when shifting by byteset

Closes #16878.
Add many comments to TwoWaySearcher.
Add some tests for closures that return `!`
Add unnecessary_import_braces lint.

The lint checks any unnecessary braces around one imported item like
`use std::num::{abs};`.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Fix bad error message copypasta
Add a Rust string ostream for LLVM
Add -C remark for LLVM optimization remarks

Fixes #17116.
Remove unused, unsound method on StrInterner

The string slices returned by `get_ref` can actually be
invalidated by calling `clear`.  Since this method is unused,
it is easiest to simply remove it.

Closes #17181
Improve memory usage of libsyntax
Replaces some usage of `.to_string()` with `.into_string()`

Signed-off-by: Peter Atashian <retep998@gmail.com>
doc: that felt like it needed a stronger break than what comma provides

Remove trailing whitespace while at it
These two lines are actually three.
Fix issue #17216

The cleanup scope of for loop bindings should translated when
popped to ensure resources are not leaked.
Properly implement Show for EnumSet
`rustc main.rs` generates main binary file
Add regression test for issue #17216
Display the doc-block toggle on everything again.

This needs a clone otherwise each successive insertion detaches `toggle`
from the previous position.

Fixes #17125.
inlines contains in bitflags!

Closes #17210
impl ExactSize for vec::MoveItems