private void TryRegisterCodeFix()

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;
            }
        }