Add unwrap method to MoveItems
rustc: Refactor middle::trans::inline
Fix ICE with trans of calls to foreign fns

It was failing occasionally.
mark win32 binaries as large address aware

By default, 32-bit Windows executables are restricted to 2GiB of address
space even when running on 64-bit Windows when 4GiB is available.

Closes #17043
Register snapshots.

Closes #16880.
Forbid unsized rvalues

Closes #16813
auto merge of #16933 : nick29581/rust/dst-rvalue, r=nikomatsakis

Closes #16813 

r? @nikomatsakis I feel like I should be checking more things in check_rvalues, but not sure what - I don't properly understand expr_use_visitor
auto merge of #17036 : pczarn/rust/issue-15913-ICE-with-call-trans, r=alexcrichton

A match in callee.rs was recognizing some foreign fns as named tuple constructors. A reproducible test case for this is nearly impossible since it depends on the way NodeIds happen to be assigned in different crates.

Fixes #15913
auto merge of #17063 : huonw/rust/snap, r=alexcrichton

Closes #16880.
auto merge of #17053 : thestinger/rust/large_address_aware, r=sfackler,cmr

By default, 32-bit Windows executables are restricted to 2GiB of address
space even when running on 64-bit Windows when 4GiB is available.

Closes #17043
rustc: use a TypedArena to allocate types in the type context.
rustc: fix fallout from the addition of a 'tcx lifetime on tcx.
rustc: fix fallout from the addition of a 'tcx lifetime on trans::Block.
rustdoc: fix fallout from the addition of a 'tcx lifetime on tcx.
auto merge of #16903 : mahkoh/rust/move_items_unwrap, r=aturon

Closes #16879
auto merge of #12809 : eddyb/rust/ty-arena, r=cmr

This was inspired by seeing a LLVM flatline of **~600MB** when running rustc with jemalloc (each type's `t_box_` is allocated on the heap, creating a lot of fragmentation, which jemalloc can deal with, unlike glibc).
Remove largely unused context from Visitor.
Track the visited AST's lifetime throughout Visitor.