Make check-cfg diagnostics work in #[doc(cfg(..))]
#140894
Open
+120
−28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes it so that the check-cfg
unexpected_cfgs
lint, is correctly emitted inrustdoc
's#[doc(cfg(..))]
.This is achieved by adding a custom trait to
cfg_matches
(the method that emits the lint) which permitsrustc
andrustdoc
to each have their way to emitting lints (via buffered lints/AST forrustc
and viaTyCtxt
/HIR forrustdoc
).The reason this is required is because buffered lints operates on the AST but
rustdoc
uses the HIR and by the timerustdoc
callscfg_matches
we are way passed the point where buffered lints have been drain and emitted.Best reviewed commit by commit.
r? @jieyouxu (for the compiler part)
r? @GuillaumeGomez (for the rustdoc part)