Check for the CollectionExpression syntax kind early in UseSearchValuesAnalyzer #7279
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 appears to "resolve" the issue hit in dotnet/runtime#100520 (failures after ingesting #7252)
The issue appears to be that this else block
roslyn-analyzers/src/NetAnalyzers/CSharp/Microsoft.NetCore.Analyzers/Performance/CSharpUseSearchValues.cs
Lines 115 to 120 in e4d7ea6
is now being called with the
@"\/"u8
expression.While this condition will return
false
during theIsConstantByteOrCharCollectionExpression
check,semanticModel.GetOperation(expression)
intermittently fails when buildingSystem.Formats.Tar
(consistently succeeds every second build ?!?).Filtering out the expression kind before the call to
semanticModel.GetOperation
appears to "fix" the issue, but I don't understand whyGetOperation
would be failing like this in the first place 😕We already have analyzer tests for this pattern (property returning utf8 string literals) that are perfectly happy with the current code, so this appears to be something specific to runtime code somehow.
The failing call stack from dotnet/runtime#100520: