about summary refs log tree commit diff
path: root/src/test/run-pass/thinlto
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2017-01-28 06:34:07 -0500
committerNiko Matsakis <niko@alum.mit.edu>2017-02-02 20:48:49 -0500
commit78f7ac561c0b360650b36a175f39475bc237230f (patch)
treeb5659f1a520605e14b15aebc4f113e623ad7ae83 /src/test/run-pass/thinlto
parentfdd7e3c74419385541e2ba244117e7aa65f72a01 (diff)
downloadrust-78f7ac561c0b360650b36a175f39475bc237230f.tar.gz
rust-78f7ac561c0b360650b36a175f39475bc237230f.zip
rejigger how we handle used trait imports
The previous way was not friendly to incremental compilation. The new
plan is to compute, for each body, a set of trait imports used in that
body (slightly subtle: for a closure, we assign the trait imports to the
enclosing fn). Then we walk all bodies and union these sets. The reason
we do this is that we can save the individual sets in the incremental
state, and then recompute only those sets that are needed. Before we
were planning to save only the final union, but in that case if some
components are invalidated we have to recompute *all* of them since we
don't have enough information to "partly" invalidate a result.

In truth, this set probably ought to be part of the `TypeckTables`;
however, I opted not to do that because I don't want to have to
save/restore the entire tables in the incremental state yet (since it
contains a lot of `NodeId` references, and removing those is a
significant refactoring).
Diffstat (limited to 'src/test/run-pass/thinlto')
0 files changed, 0 insertions, 0 deletions