in ClrHeapAllocationsAnalyzer/AvoidAllocationWithArrayEmptyCodeFix.cs [65:95]
private void TryRegisterCodeFix(CodeFixContext context, SyntaxNode node, Diagnostic diagnostic, SyntaxNode creationExpression, SemanticModel semanticModel)
{
switch (creationExpression)
{
case ObjectCreationExpressionSyntax objectCreation:
{
if (CanBeReplaceWithEnumerableEmpty(objectCreation, semanticModel))
{
if (objectCreation.Type is GenericNameSyntax genericName)
{
var codeAction = CodeAction.Create(RemoveUnnecessaryListCreation,
token => Transform(context.Document, node, genericName.TypeArgumentList.Arguments[0], token),
RemoveUnnecessaryListCreation);
context.RegisterCodeFix(codeAction, diagnostic);
}
}
}
break;
case ArrayCreationExpressionSyntax arrayCreation:
{
if (CanBeReplaceWithEnumerableEmpty(arrayCreation))
{
var codeAction = CodeAction.Create(RemoveUnnecessaryListCreation,
token => Transform(context.Document, node, arrayCreation.Type.ElementType, token),
RemoveUnnecessaryListCreation);
context.RegisterCodeFix(codeAction, diagnostic);
}
}
break;
}
}