rust/src/test/run-pass-fulldeps
Corey Farwell 137660763b Rollup merge of #41662 - nikomatsakis:on-demandify-region-mapping, r=eddyb
On demandify region mapping

This is an adaptation of @cramertj's PR. I am sort of tempted to keep simplifying it, but also tempted to land it so and we can refactor more in follow-up PRs. As is, it does the following things:

- makes the region-maps an on-demand query, per function `tcx.region_maps(def_id)`
- interns code extents instead of of having them be integers
- remove the "root region extent" and (to some extent) item extents; instead we use `Option<CodeExtent<'tcx>>` in a few places (no space inefficiency since `CodeExtent<'tcx>` is now a pointer).

I'm not entirely happy with the way I have it setup though. Here are some of the changes I was considering (I'm not sure if they would work out well):

1. Removing `item_extents` entirely -- they are rarely used now, because most of the relevant places now accept an `Option<Region<'tcx>>` or an `Option<CodeExtent<'tcx>>`, but I think still used in a few places.
2. Merging `RegionMaps` into the typeck tables, instead of having it be its own query.
3. Change `CodeExtent<'tcx>` to store the parent pointer. This would mean that fewer places in the code actually *need* a `RegionMaps` anyhow, since most of them just want to be able to walk "up the tree". On the other hand, you wouldn't be able to intern a `CodeExtent<'tcx>` for some random node-id, you'd need to look it up in the table (since there'd be more information).

Most of this code is semi-temporary -- I expect it to largely go away as we move to NLL -- so I'm also not *that* concerned with making it perfect.

r? @eddyb
2017-05-02 09:09:55 -04:00
..
auxiliary
proc-macro Unignore tests which work fine now. 2017-04-28 22:31:10 -06:00
ast_stmt_expr_attr.rs
compiler-calls.rs
create-dir-all-bare.rs
custom-derive-partial-eq.rs
deprecated-derive.rs
derive-totalsum-attr.rs
derive-totalsum.rs
deriving-encodable-decodable-box.rs
deriving-encodable-decodable-cell-refcell.rs
deriving-global.rs
dropck_tarena_sound_drop.rs
empty-struct-braces-derive.rs
extern-mod-syntax.rs
issue_16723_multiple_items_syntax_ext.rs
issue-2804.rs
issue-4016.rs
issue-4036.rs
issue-11881.rs
issue-13560.rs
issue-14021.rs
issue-15149.rs
issue-15778-pass.rs
issue-15924.rs
issue-16822.rs
issue-16992.rs
issue-18502.rs
issue-18763-quote-token-tree.rs
issue-24972.rs
issue-40663.rs
linkage-visibility.rs
lint-group-plugin.rs
lint-plugin-cmdline-allow.rs
lint-plugin-cmdline-load.rs
lint-plugin.rs
llvm-pass-plugin.rs
lto-syntax-extension.rs
macro-crate-does-hygiene-work.rs
macro-crate-multi-decorator-literals.rs
macro-crate-multi-decorator.rs
macro-crate-outlive-expansion-phase.rs
macro-crate.rs
macro-quote-1.rs
macro-quote-cond.rs
macro-quote-test.rs
mbe_matching_test_macro.rs
myriad-closures.rs
plugin-args-1.rs
plugin-args-2.rs
plugin-args-3.rs
plugin-lib-ok-in-plugin.rs
plugin-plus-extern-crate.rs
proc_macro.rs
qquote.rs
quote-tokens.rs
quote-unused-sp-no-warning.rs
regions-mock-tcx.rs
rename-directory.rs
roman-numerals-macro.rs
rustc_encodable_hygiene.rs
switch-stdout.rs
syntax-extension-with-dll-deps.rs