rust/compiler/rustc_resolve/src
Nilstrieb a647ba250a Remember names of cfg-ed out items to mention them in diagnostics
`#[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.
2023-06-01 19:17:19 +02:00
..
diagnostics Implement the unused_macro_rules lint 2022-05-05 19:13:00 +02:00
late Remember names of cfg-ed out items to mention them in diagnostics 2023-06-01 19:17:19 +02:00
build_reduced_graph.rs Use Option::is_some_and and Result::is_ok_and in the compiler 2023-05-24 14:20:41 +00:00
check_unused.rs Use is_some_and/is_ok_and in less obvious spots 2023-05-24 14:33:43 +00:00
def_collector.rs Remove the NodeId of ast::ExprKind::Async 2023-03-19 19:01:31 +01:00
diagnostics.rs Remember names of cfg-ed out items to mention them in diagnostics 2023-06-01 19:17:19 +02:00
effective_visibilities.rs Populate effective visibilities in rustc_privacy 2023-05-11 14:51:01 +03:00
errors.rs Remember names of cfg-ed out items to mention them in diagnostics 2023-06-01 19:17:19 +02:00
ident.rs Remember names of cfg-ed out items to mention them in diagnostics 2023-06-01 19:17:19 +02:00
imports.rs Remember names of cfg-ed out items to mention them in diagnostics 2023-06-01 19:17:19 +02:00
late.rs Remember names of cfg-ed out items to mention them in diagnostics 2023-06-01 19:17:19 +02:00
lib.rs Remember names of cfg-ed out items to mention them in diagnostics 2023-06-01 19:17:19 +02:00
macros.rs Remember names of cfg-ed out items to mention them in diagnostics 2023-06-01 19:17:19 +02:00
rustdoc.rs rustdoc: fix ICE from rustc_resolve and librustdoc parse divergence 2023-04-18 12:22:13 -07:00