rust/src
bors cbf88730e7 Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis
[11/n] Separate ty::Tables into one per each body.

_This is part of a series ([prev](https://github.com/rust-lang/rust/pull/38449) | [next]()) of patches designed to rework rustc into an out-of-order on-demand pipeline model for both better feature support (e.g. [MIR-based](https://github.com/solson/miri) early constant evaluation) and incremental execution of compiler passes (e.g. type-checking), with beneficial consequences to IDE support as well.
If any motivation is unclear, please ask for additional PR description clarifications or code comments._

<hr>

In order to track the results of type-checking and inference for incremental recompilation, they must be stored separately for each function or constant value, instead of lumped together.

These side-`Tables` also have to be tracked by various passes, as they visit through bodies (all of which have `Tables`, even if closures share the ones from their parent functions). This is usually done by switching a `tables` field in an override of `visit_nested_body` before recursing through `visit_body`, to the relevant one and then restoring it - however, in many cases the nesting is unnecessary and creating the visitor for each body in the crate and then visiting that body, would be a much cleaner solution.

To simplify handling of inlined HIR & its side-tables, their `NodeId` remapping and entries HIR map were fully stripped out, which means that `NodeId`s from inlined HIR must not be used where a local `NodeId` is expected. It might be possible to make the nodes (`Expr`, `Block`, `Pat`, etc.) that only show up within a `Body` have IDs that are scoped to that `Body`, which would also allow `Tables` to use `Vec`s.

That last part also fixes #38790 which was accidentally introduced in a previous refactor.
2017-01-08 11:36:52 +00:00
..
bootstrap Auto merge of #38858 - ollie27:rustbuild_docs_std, r=alexcrichton 2017-01-07 04:02:43 +00:00
build_helper
ci rustbuild: Quickly dist cross-host compilers 2017-01-04 11:41:16 -08:00
compiler-rt@a8fc4c169f
doc Document custom derive. 2017-01-04 17:34:30 -05:00
driver
etc Auto merge of #38781 - SimonSapin:unishrink, r=alexcrichton 2017-01-07 21:28:47 +00:00
grammar
jemalloc@e058ca6616
liballoc Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
liballoc_jemalloc Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
liballoc_system Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libarena Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libbacktrace
libcollections Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libcollectionstest Auto merge of #38733 - sfackler:peek-mut-pop, r=alexcrichton 2017-01-07 19:21:49 +00:00
libcompiler_builtins
libcore Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libcoretest
libflate
libfmt_macros
libgetopts
libgraphviz
liblibc@7d57bdcdbb
liblog
libpanic_abort Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libpanic_unwind Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libproc_macro Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libproc_macro_plugin
libproc_macro_tokens Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
librand Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
librustc Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_back Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
librustc_bitflags
librustc_borrowck Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_const_eval rustc: store ty::Tables separately for each body (except closures'). 2017-01-06 22:23:29 +02:00
librustc_const_math
librustc_data_structures Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
librustc_driver Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_errors
librustc_i128
librustc_incremental Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
librustc_lint Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_llvm Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
librustc_metadata Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_mir Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_passes Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_platform_intrinsics Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
librustc_plugin Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
librustc_privacy Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_resolve Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
librustc_save_analysis Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_trans Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustc_typeck Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
librustdoc Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
libserialize Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libstd Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libstd_unicode Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libsyntax Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libsyntax_ext Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libsyntax_pos
libterm Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
libtest
libunwind Auto merge of #38679 - alexcrichton:always-deny-warnings, r=nrc 2017-01-08 08:22:06 +00:00
llvm@ceb177eeef
rt Add test for i128 ffi usage 2017-01-04 19:05:27 +01:00
rtstartup
rust-installer@4f99485080
rustc
rustllvm
test Auto merge of #38813 - eddyb:lazy-11, r=nikomatsakis 2017-01-08 11:36:52 +00:00
tools compiletest: Fix flaky Android gdb test runs 2017-01-06 10:26:40 -08:00
vendor
Cargo.lock rustc: keep track of tables everywhere as if they were per-body. 2017-01-06 22:23:29 +02:00
Cargo.toml
stage0.txt