Fix duplicate issues on provider usage #260
Merged
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.
fixes apex-dev-tools/tooling-issues#129
Some of the providers use
getValidationMap
which involves callingvalidate
again on a given block/body. This would cause a duplicate issue to be saved, so these calls are suppressed by theVerifyContext
.This requires calling
log
,logError
etc. via the context (or children) rather than directly throughOrgInfo
. Some of the CST types don't do this, and it is a lot more apparent now because we have the hover provider firing quite often (despite it only supporting a very limited number of symbols/cases).This should cover all the cst types, the issues are only disabled at the class body declaration level and below. So uses of
OrgInfo
elsewhere in the TypeDeclaration likecreate
/validate
aren't getting suppressed, but the type already exists so...I had to do something a bit unusual passing context in to
block.statements()
as it reports syntax/parser issues during construction of the block. But it is anOption
so if you were to construct it elsewhere without a context (e.g.RenameProvider
) then it effectively suppresses the extra issues from coming out again.