diff --git a/src/NetAnalyzers/CSharp/Microsoft.NetCore.Analyzers/Performance/CSharpUseStringMethodCharOverloadWithSingleCharacters.Fixer.cs b/src/NetAnalyzers/CSharp/Microsoft.NetCore.Analyzers/Performance/CSharpUseStringMethodCharOverloadWithSingleCharacters.Fixer.cs index f5fe2be553..0085653832 100644 --- a/src/NetAnalyzers/CSharp/Microsoft.NetCore.Analyzers/Performance/CSharpUseStringMethodCharOverloadWithSingleCharacters.Fixer.cs +++ b/src/NetAnalyzers/CSharp/Microsoft.NetCore.Analyzers/Performance/CSharpUseStringMethodCharOverloadWithSingleCharacters.Fixer.cs @@ -62,23 +62,21 @@ protected override CodeAction CreateCodeAction(Document document, SyntaxNode arg return new CSharpReplaceStringLiteralWithCharLiteralCodeAction(document, argumentListNode, sourceCharLiteral); } - private sealed class CSharpReplaceStringLiteralWithCharLiteralCodeAction : ReplaceStringLiteralWithCharLiteralCodeAction + private sealed class CSharpReplaceStringLiteralWithCharLiteralCodeAction( + Document document, SyntaxNode argumentListNode, char sourceCharLiteral) + : ReplaceStringLiteralWithCharLiteralCodeAction(document, argumentListNode, sourceCharLiteral) { - public CSharpReplaceStringLiteralWithCharLiteralCodeAction(Document document, SyntaxNode argumentListNode, char sourceCharLiteral) : base(document, argumentListNode, sourceCharLiteral) - { - } - protected override void ApplyFix( DocumentEditor editor, SemanticModel model, SyntaxNode oldArgumentListNode, char c) { - var argumentNode = editor.Generator.Argument(editor.Generator.LiteralExpression(c)); + var argumentNode = (ArgumentSyntax)editor.Generator.Argument(editor.Generator.LiteralExpression(c)); var arguments = new[] { argumentNode }.Concat(((ArgumentListSyntax)oldArgumentListNode).Arguments - .Select(arg => model.GetOperation(arg) as IArgumentOperation) - .Where(PreserveArgument) - .Select(arg => arg!.Syntax)); + .Select(arg => (arg, operation: model.GetOperation(arg) as IArgumentOperation)) + .Where(t => PreserveArgument(t.operation)) + .Select(t => t.arg)); var argumentListNode = SyntaxFactory.ArgumentList(SyntaxFactory.SeparatedList(arguments)); editor.ReplaceNode(oldArgumentListNode, argumentListNode.WithTriviaFrom(oldArgumentListNode)); diff --git a/src/NetAnalyzers/VisualBasic/Microsoft.NetCore.Analyzers/Performance/BasicUseStringMethodCharOverloadWithSingleCharacters.Fixer.vb b/src/NetAnalyzers/VisualBasic/Microsoft.NetCore.Analyzers/Performance/BasicUseStringMethodCharOverloadWithSingleCharacters.Fixer.vb index 0af3fc0eaf..3368d4150a 100644 --- a/src/NetAnalyzers/VisualBasic/Microsoft.NetCore.Analyzers/Performance/BasicUseStringMethodCharOverloadWithSingleCharacters.Fixer.vb +++ b/src/NetAnalyzers/VisualBasic/Microsoft.NetCore.Analyzers/Performance/BasicUseStringMethodCharOverloadWithSingleCharacters.Fixer.vb @@ -11,7 +11,6 @@ Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Imports Microsoft.NetCore.Analyzers.Performance Namespace Microsoft.NetCore.VisualBasic.Analyzers.Performance - Public NotInheritable Class BasicUseStringMethodCharOverloadWithSingleCharactersFixer Inherits UseStringMethodCharOverloadWithSingleCharactersFixer @@ -65,15 +64,16 @@ Namespace Microsoft.NetCore.VisualBasic.Analyzers.Performance End Sub Protected Overrides Sub ApplyFix(editor As DocumentEditor, model As SemanticModel, oldArgumentListNode As SyntaxNode, c As Char) - Dim argumentNode = editor.Generator.Argument(editor.Generator.LiteralExpression(c)) + Dim argumentNode = DirectCast(editor.Generator.Argument(editor.Generator.LiteralExpression(c)), ArgumentSyntax) Dim arguments = {argumentNode}.Concat( CType(oldArgumentListNode, ArgumentListSyntax).Arguments. - [Select](Function(arg) TryCast(model.GetOperation(arg), IArgumentOperation)).Where(Function(arg) PreserveArgument(arg)).[Select](Function(arg) arg.Syntax)) + Select(Function(arg) (arg, operation:=TryCast(model.GetOperation(arg), IArgumentOperation))). + Where(Function(t) PreserveArgument(t.operation)). + Select(Function(t) t.arg)) Dim argumentListNode = SyntaxFactory.ArgumentList(SyntaxFactory.SeparatedList(arguments)) editor.ReplaceNode(oldArgumentListNode, argumentListNode.WithTriviaFrom(oldArgumentListNode)) End Sub End Class End Class - End Namespace