diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/AssertToAssertFixerHelpers.cs b/src/Analyzers/MSTest.Analyzers.CodeFixes/AssertToAssertFixerHelpers.cs index 69db23bcec..a04de56118 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/AssertToAssertFixerHelpers.cs +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/AssertToAssertFixerHelpers.cs @@ -31,8 +31,6 @@ internal static async Task RegisterCodeFixAsync( string? fixKindPropertyKey, Func> fixAssertAsync) { - SyntaxNode root = await context.Document.GetRequiredSyntaxRootAsync(context.CancellationToken).ConfigureAwait(false); - Diagnostic diagnostic = context.Diagnostics[0]; if (!diagnostic.Properties.TryGetValue(properAssertMethodNamePropertyKey, out string? properAssertMethodName) || properAssertMethodName is null) @@ -47,6 +45,8 @@ internal static async Task RegisterCodeFixAsync( return; } + SyntaxNode root = await context.Document.GetRequiredSyntaxRootAsync(context.CancellationToken).ConfigureAwait(false); + if (root.FindNode(diagnostic.Location.SourceSpan, getInnermostNodeForTie: true) is not InvocationExpressionSyntax invocationExpr) { return; diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/StringAssertToAssertFixer.cs b/src/Analyzers/MSTest.Analyzers.CodeFixes/StringAssertToAssertFixer.cs index c21d7592ac..e1468e4ea5 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/StringAssertToAssertFixer.cs +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/StringAssertToAssertFixer.cs @@ -36,15 +36,7 @@ public override Task RegisterCodeFixesAsync(CodeFixContext context) AssertToAssertAnalyzerHelpers.ProperAssertMethodNameKey, CodeFixResources.StringAssertToAssertTitle, fixKindPropertyKey: null, - FixAssertAsync); - - private static Task FixAssertAsync( - Document document, - InvocationExpressionSyntax invocationExpr, - string properAssertMethodName, - string? fixKind, - CancellationToken cancellationToken) - => FixStringAssertAsync(document, invocationExpr, properAssertMethodName, cancellationToken); + (doc, expr, methodName, _, ct) => FixStringAssertAsync(doc, expr, methodName, ct)); private static async Task FixStringAssertAsync( Document document, @@ -52,7 +44,6 @@ private static async Task FixStringAssertAsync( string properAssertMethodName, CancellationToken cancellationToken) { - // Check if the invocation expression has a member access expression if (invocationExpr.Expression is not MemberAccessExpressionSyntax memberAccessExpr) { return document; @@ -73,8 +64,6 @@ private static async Task FixStringAssertAsync( ArgumentListSyntax newArgumentList = invocationExpr.ArgumentList.WithArguments(SyntaxFactory.SeparatedList(newArguments)); InvocationExpressionSyntax newInvocationExpr = invocationExpr.WithArgumentList(newArgumentList); - // Replace StringAssert with Assert in the member access expression - // Change StringAssert.MethodName to Assert.ProperMethodName MemberAccessExpressionSyntax newMemberAccess = memberAccessExpr.WithExpression(SyntaxFactory.IdentifierName("Assert")) .WithName(SyntaxFactory.IdentifierName(properAssertMethodName)); newInvocationExpr = newInvocationExpr.WithExpression(newMemberAccess);