未验证 提交 73fbbd4f 编写于 作者: M Manish Vasani 提交者: GitHub

Merge pull request #37373 from mavasani/Issue37213

Handle reduced extension method invocations in remove unused member a…
......@@ -2349,5 +2349,17 @@ public class MyClass
}", new TestParameters(retainNonFixableDiagnostics: true, parseOptions: new CSharpParseOptions(LanguageVersion.CSharp8)),
expected: Diagnostic("IDE0052"));
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsRemoveUnusedMembers)]
[WorkItem(37213, "https://github.com/dotnet/roslyn/issues/37213")]
public async Task UsedPrivateExtensionMethod()
{
await TestDiagnosticMissingAsync(
@"public static class B
{
public static void PublicExtensionMethod(this string s) => s.PrivateExtensionMethod();
private static void [|PrivateExtensionMethod|](this string s) { }
}");
}
}
}
......@@ -1560,5 +1560,23 @@ End Class")
End Sub
End Class")
End Function
<Fact, Trait(Traits.Feature, Traits.Features.CodeActionsRemoveUnusedMembers)>
<WorkItem(37213, "https://github.com/dotnet/roslyn/issues/37213")>
Public Async Function UsedPrivateExtensionMethod() As Task
Await TestMissingInRegularAndScriptAsync(
"Imports System.Runtime.CompilerServices
Public Module B
<Extension()>
Sub PublicExtensionMethod(s As String)
s.PrivateExtensionMethod()
End Sub
<Extension()>
Private Sub [|PrivateExtensionMethod|](s As String)
End Sub
End Module")
End Function
End Class
End Namespace
......@@ -288,6 +288,13 @@ private void AnalyzeInvocationOperation(OperationAnalysisContext operationContex
// A method invocation is considered as a read reference to the symbol
// to ensure that we consider the method as "used".
OnSymbolUsage(targetMethod, ValueUsageInfo.Read);
// If the invoked method is a reduced extension method, also mark the original
// method from which it was reduced as "used".
if (targetMethod.ReducedFrom != null)
{
OnSymbolUsage(targetMethod.ReducedFrom, ValueUsageInfo.Read);
}
}
private void AnalyzeNameOfOperation(OperationAnalysisContext operationContext)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册