about summary refs log tree commit diff
path: root/compiler/rustc_interface/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-07-17 17:56:46 +0000
committerbors <bors@rust-lang.org>2021-07-17 17:56:46 +0000
commit68511b574ffe019a5cb3e9fa92605f80d39167bc (patch)
tree67a8c2f57159f448ed38ee933cf56dde3f2e75ce /compiler/rustc_interface/src
parentc78ebb7bdcfc924a20fd069891ffe1364d6814e7 (diff)
parentb35ceeeec706e957ee46166e0a8b6d912ac215a3 (diff)
downloadrust-68511b574ffe019a5cb3e9fa92605f80d39167bc.tar.gz
rust-68511b574ffe019a5cb3e9fa92605f80d39167bc.zip
Auto merge of #86676 - cjgillot:localexpn, r=petrochenkov
Make expansions stable for incr. comp.

This PR aims to make expansions stable for incr. comp. by using the same architecture as definitions:
- the interned identifier `ExpnId` contains a `CrateNum` and a crate-local id;
- bidirectional maps `ExpnHash <-> ExpnId` are setup;
- incr. comp. on-disk cache saves and reconstructs expansions using their `ExpnHash`.

I tried to use as many `LocalExpnId` as I could in the resolver code, but I may have missed a few opportunities.

All this will allow to use an `ExpnId` as a query key, and to force this query without recomputing caller queries. For instance, this will be used to implement #85999.

r? `@petrochenkov`
Diffstat (limited to 'compiler/rustc_interface/src')
0 files changed, 0 insertions, 0 deletions