diff --git a/src/Features/Core/Portable/CodeFixes/AddExplicitCast/Fixer.cs b/src/Features/Core/Portable/CodeFixes/AddExplicitCast/Fixer.cs index 84c508772c0f4d55ce975d3eb02da6eeaf550bb9..af14d32b675d8a7fa48230bf8455802d138edd3c 100644 --- a/src/Features/Core/Portable/CodeFixes/AddExplicitCast/Fixer.cs +++ b/src/Features/Core/Portable/CodeFixes/AddExplicitCast/Fixer.cs @@ -5,7 +5,6 @@ #nullable enable using System; -using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using System.Linq; @@ -29,7 +28,7 @@ protected Fixer(AbstractAddExplicitCastCodeFixProvider provid => _provider = provider; protected abstract TArgumentSyntax GenerateNewArgument(TArgumentSyntax oldArgument, ITypeSymbol conversionType); - protected abstract TArgumentListSyntax GenerateNewArgumentList(TArgumentListSyntax oldArgumentList, List newArguments); + protected abstract TArgumentListSyntax GenerateNewArgumentList(TArgumentListSyntax oldArgumentList, ArrayBuilder newArguments); protected abstract SeparatedSyntaxList GetArgumentsOfArgumentList(TArgumentListSyntax argumentList); protected abstract SymbolInfo GetSpeculativeSymbolInfo(SemanticModel semanticModel, TArgumentListSyntax newArgumentList); @@ -129,7 +128,7 @@ protected Fixer(AbstractAddExplicitCastCodeFixProvider provid return false; var arguments = GetArgumentsOfArgumentList(argumentList); - var newArguments = new List(); + using var _ = ArrayBuilder.GetInstance(out var newArguments); for (var i = 0; i < arguments.Count; i++) { @@ -192,7 +191,7 @@ protected Fixer(AbstractAddExplicitCastCodeFixProvider provid return targetArgumentConversionType != null && IsInvocationExpressionWithNewArgumentsApplicable( - semanticModel, root, argumentList, newArguments, targetArgument, cancellationToken); + semanticModel, root, argumentList, newArguments, targetArgument); } /// @@ -208,9 +207,8 @@ protected Fixer(AbstractAddExplicitCastCodeFixProvider provid private bool IsInvocationExpressionWithNewArgumentsApplicable(SemanticModel semanticModel, SyntaxNode root, TArgumentListSyntax oldArgumentList, - List newArguments, - SyntaxNode targetNode, - CancellationToken cancellationToken) + ArrayBuilder newArguments, + SyntaxNode targetNode) { var newRoot = root.ReplaceNode(oldArgumentList, GenerateNewArgumentList(oldArgumentList, newArguments)); if (newRoot.FindNode(targetNode.Span).GetAncestorOrThis() is TArgumentListSyntax newArgumentList)