mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-28 09:44:08 +00:00
fd20513f52
expand: Pick `cfg`s and `cfg_attrs` one by one, like other attributes This is a rebase of https://github.com/rust-lang/rust/pull/83354, but without any language-changing parts ~(except for https://github.com/rust-lang/rust/pull/84110)~, i.e. the attribute expansion order is the same. This is a pre-requisite for any other changes making cfg attributes closer to regular macro attributes - Possibly changing their expansion order (https://github.com/rust-lang/rust/issues/83331) - Keeping macro backtraces for cfg attributes, or otherwise making them visible after expansion without keeping them in place literally (https://github.com/rust-lang/rust/pull/84110). Two exceptions to the "one by one" behavior are: - cfgs eagerly expanded by `derive` and `cfg_eval`, they are still expanded in a batch, that's by design. - cfgs at the crate root, they are currently expanded not during the main expansion pass, but before that, during `#![feature]` collection. I'll try to disentangle that logic later in a separate PR. r? `@Aaron1011` |
||
---|---|---|
.. | ||
mbe | ||
mut_visit | ||
parse | ||
tokenstream | ||
base.rs | ||
build.rs | ||
config.rs | ||
expand.rs | ||
lib.rs | ||
mbe.rs | ||
module.rs | ||
placeholders.rs | ||
proc_macro_server.rs | ||
proc_macro.rs | ||
tests.rs |