Files
rust/compiler
bors c755ee4ce8 Auto merge of #82907 - petrochenkov:dercache, r=Aaron1011
resolve/expand: Cache intermediate results of `#[derive]` expansion

Expansion function for `#[derive]` (`rustc_builtin_macros::derive::Expander::expand`) may return an indeterminate result, and therefore can be called multiple times.
Previously we parsed the `#[derive(Foo, Bar)]`'s input and tried to resolve `Foo` and `Bar` on every such call.

Now we maintain a cache `Resolver::derive_data` and take all the necessary data from it if it was computed previously.
So `Foo, Bar` is now parsed at most once, and `Foo` and `Bar` are successfully resolved at most once.
2021-04-04 20:16:09 +00:00
..
2021-03-26 09:32:31 -07:00
2021-03-27 22:16:33 -04:00
2021-03-27 22:16:33 -04:00
2021-03-30 20:31:06 +02:00
2021-03-19 19:45:32 -05:00
2021-03-27 22:16:34 -04:00
2021-03-27 22:16:33 -04:00
2021-03-30 20:31:06 +02:00
2021-03-26 09:32:31 -07:00
2021-04-02 19:11:50 -04:00
2021-03-23 17:16:20 +00:00
2021-03-31 10:15:27 -04:00