rust/compiler
bors 623fb90b5a Auto merge of #76897 - Aaron1011:feature/min-proc-macro-metadata, r=petrochenkov
Encode less metadata for proc-macro crates

Currently, we serialize the same crate metadata for proc-macro crates as
we do for normal crates. This is quite wasteful - almost none of this
metadata is ever used, and much of it can't even be deserialized (if it
contains a foreign `CrateNum`).

This PR changes metadata encoding to skip encoding the majority of crate
metadata for proc-macro crates. Most of the `Lazy<[T]>` fields are left
completetly empty, while the non-lazy fields are left as-is.

Additionally, proc-macros now have a def span that does not include
their body. This was done for normal functions in #75465, but was missed
for proc-macros.

As a result of this PR, we should only ever encode local `CrateNum`s
when encoding proc-macro crates. I've added a specialized serialization
impl for `CrateNum` to assert this.
2020-09-26 20:57:31 +00:00
..
2020-09-23 21:51:56 +02:00
2020-09-23 22:08:30 +02:00
2020-09-23 21:51:56 +02:00
2020-09-23 21:51:56 +02:00
2020-09-23 21:51:56 +02:00
2020-09-23 21:51:56 +02:00
2020-09-21 05:43:39 +02:00
2020-09-23 21:51:56 +02:00
2020-09-25 22:48:44 +01:00
2020-09-23 21:51:56 +02:00
2020-09-23 21:51:56 +02:00
2020-09-23 21:51:56 +02:00
2020-09-23 21:51:56 +02:00
2020-09-24 20:54:33 +02:00