rust/src/librustc_resolve
Mazdak Farrokhzad e4e6b01ca1
Rollup merge of #63867 - petrochenkov:dhelpers, r=matthewjasper
resolve: Block expansion of a derive container until all its derives are resolved

So, it turns out there's one more reason to block expansion of a `#[derive]` container until all the derives inside it are resolved, beside `Copy` (https://github.com/rust-lang/rust/pull/63248).

The set of derive helper attributes registered by derives in the container also has to be known before the derives themselves are expanded, otherwise it may be too late (see https://github.com/rust-lang/rust/pull/63468#issuecomment-524550872 and the `#[stable_hasher]`-related test failures in https://github.com/rust-lang/rust/pull/63468).

So, we stop our attempts to unblock the container earlier, as soon as the `Copy` status is known, and just block until all its derives are resolved.
After all the derives are resolved we immediately go and process their helper attributes in the item, without delaying it until expansion of the individual derives.

Unblocks https://github.com/rust-lang/rust/pull/63468
r? @matthewjasper (as a reviewer of https://github.com/rust-lang/rust/pull/63248)
cc @c410-f3r
2019-08-29 13:17:52 +02:00
..
late resolve: Move some code around 2019-08-16 21:10:12 +03:00
build_reduced_graph.rs metadata: Eliminate FullProcMacro 2019-08-27 01:34:07 +03:00
Cargo.toml rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
check_unused.rs resolve: Turn resolve_error into a method on Resolver 2019-08-10 13:16:06 +03:00
diagnostics.rs Move type parameter shadowing errors to resolve 2019-08-17 09:12:32 +01:00
error_codes.rs Move type parameter shadowing errors to resolve 2019-08-17 09:12:32 +01:00
late.rs Move type parameter shadowing errors to resolve 2019-08-17 09:12:32 +01:00
lib.rs resolve: Do not rely on default transparency when detecting proc macro derives 2019-08-23 01:44:33 +03:00
macros.rs Rollup merge of #63867 - petrochenkov:dhelpers, r=matthewjasper 2019-08-29 13:17:52 +02:00
resolve_imports.rs resolve/expand: Rename some things for clarity 2019-08-17 21:04:48 +03:00