[release/7.0-rc2] Fix edge cases of getting attribute data from syntax #75728
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.
Backport of #75727 to release/7.0-rc2
/cc @jkoritzinsky
Customer Impact
The bugs that this PR fixes cause AD0001 diagnostics when building, which causes developer builds that hit the corner cases to emit warnings, or errors if their builds are set to treat warnings as errors. As a result, the bugs this PR fixes can cause build breaks. This can be hit with any attribute that meets the corner case, not just one of the new attributes related to the analyzer, as this failure happens in the part of the analyzer that determines if the attribute is interesting.
With these changes, the two corner cases (attributes on local functions and attributes on return types of delegates) will no longer cause build breaks as they will be handled correctly.
Testing
Tests are included in the PR in main and this PR.
Risk
Low
IMPORTANT: Is this backport for a servicing release? If so and this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.