mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-06 04:08:40 +00:00
![]() `#[cfg]`s are frequently used to gate crate content behind cargo features. This can lead to very confusing errors when features are missing. For example, `serde` doesn't have the `derive` feature by default. Therefore, `serde::Serialize` fails to resolve with a generic error, even though the macro is present in the docs. This commit adds a list of all stripped item names to metadata. This is filled during macro expansion and then, through a fed query, persisted in metadata. The downstream resolver can then access the metadata to look at possible candidates for mentioning in the errors. This slightly increases metadata (800k->809k for the feature-heavy windows crate), but not enough to really matter. |
||
---|---|---|
.. | ||
diagnostics | ||
late | ||
build_reduced_graph.rs | ||
check_unused.rs | ||
def_collector.rs | ||
diagnostics.rs | ||
effective_visibilities.rs | ||
errors.rs | ||
ident.rs | ||
imports.rs | ||
late.rs | ||
lib.rs | ||
macros.rs | ||
rustdoc.rs |