Append missing padding after last field of struct

This patch fixes issue #13186.

When generating constant expression for enum, it is possible that
alignment of expression may be not equal to alignment of type.  In that
case space after last struct field must be padded to match size of value
and size of struct. This commit adds that padding.

See detailed explanation in src/test/run-pass/trans-tag-static-padding.rs
Be more clear about what this lambda expression does
Give more explanation when introducing closures
Demonstrate accessing external variable in first example
Some more closure changes
use option_env! instead of env!
Pre-step towards issue #12624 and others: Introduce ExprUseVisitor, remove the
moves computation. ExprUseVisitor is a visitor that walks the AST for a
function and calls a delegate to inform it where borrows, copies, and moves
occur.

In this patch, I rewrite the gather_loans visitor to use ExprUseVisitor, but in
future patches, I think we could rewrite regionck, check_loans, and possibly
other passes to use it as well. This would refactor the repeated code between
those places that tries to determine where copies/moves/etc occur.
Convert delegate to use an object type and remove FIXME from closed issue
rustc: Restrict the scope of a borrow on def_map

This addresses the ICE from #13763, but it does not allow the test to compile,
due to #13768. An alternate test was checked in in the meantime.

Closes #13763
rustdoc: refactor and unstyle inline section headers
syntax: ViewItemUse no longer contains multiple view paths.

it reflected the obsolete syntax `use a, b, c;` and did not make
past the parser (though it was a non-fatal error so we can continue).
this legacy affected many portions of rustc and rustdoc as well,
so this commit cleans them up altogether.
rustdoc: Moved `SCHEMA_VERSION` to `clean`.

it should be changed when the module gets updated, so it helps to
have the `SCHEMA_VERSION` with the definitions themselves.
auto merge of #13769 : alexcrichton/rust/restrict-some-scopes, r=huonw

This addresses the ICE from #13763, but it does not allow the test to compile,
due to #13768. An alternate test was checked in in the meantime.

Closes #13763
rustc: Don't die on 0-length pattern idents

These often crop up when using default methods that don't actually bind their
argument names.

Closes #13775
auto merge of #13777 : lifthrasiir/rust/no-multi-viewitemuse, r=alexcrichton

It reflected the obsolete syntax `use a, b, c;` and did not make past the parser (though it was a non-fatal error so we can continue). This legacy affected many portions of rustc and rustdoc as well, so this PR cleans them up altogether.

As a side effect of cleanup, we now have `SCHEMA_VERSION` in `rustdoc::clean` (instead of the crate root), so it has a better chance to be updated when `rustdoc::clean` gets updated.
Fixing permutation of small lists, such that [], [x] -> [[]], [[x]], and updating size_hints.
Fixes #13734 and #13759.
doc: perform some 80-chars wrappings
syntax: `Mod` records the span for inner contents.

this is useful when the module item and module contents are defined
from different files (like rustdoc). in most cases the original span
for the module item would be used; in other cases, the span for
module contents is available separately at the `inner` field.
test: Rename a test to bypass UAC on windows
rustdoc: style tweaks