[IDE] Skip walking serialized internal top level decls in SemaAnnotator #42406
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.
SemaAnnotator
always attempts to retrieve the location of the decl. Thisrequires generating the USR, which needs to resolve the type. But that's
invalid in the presence of
@_implementationOnly
.This most commonly comes up during index while building as even though
it skip internal decls, by that point it's too late (
SemaAnnotator
hasalready tried retrieving the location). Other uses of
SourceEntityWalker
should be unaffected as they only run over thecurrent decls in the current module.
For now skip walking internal top level decls from serialized modules in
SemaAnnotator
. Consider expanding this to most, if not all,ASTWalker
clients in the future - it's unlikelySemaAnnotator
is theonly one with this problem.
Resolves rdar://91279771.