未验证 提交 6663ccef 编写于 作者: M Manish Vasani 提交者: GitHub

Merge pull request #32883 from mavasani/SpecialParameterNames

Bail out on reporting unused parameter diagnostic for special paramet…
......@@ -1065,6 +1065,19 @@ void M(object [|o|])
{
}
}
}");
}
[WorkItem(32851, "https://github.com/dotnet/roslyn/issues/32851")]
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsRemoveUnusedParameters)]
public async Task Parameter_Unused_SpecialNames()
{
await TestDiagnosticMissingAsync(
@"class C
{
[|void M(int _, char _1, C _3)|]
{
}
}");
}
}
......
......@@ -85,6 +85,16 @@ $"Public Class C
System.Console.WriteLine(p)
#End If
End Sub
End Class")
End Function
<WorkItem(32851, "https://github.com/dotnet/roslyn/issues/32851")>
<Fact, Trait(Traits.Feature, Traits.Features.CodeActionsRemoveUnusedParameters)>
Public Async Function Parameter_Unused_SpecialNames() As Task
Await TestDiagnosticMissingAsync(
$"Class C
[|Sub M(_0 As Integer, _1 As Char, _3 As C)|]
End Sub
End Class")
End Function
End Class
......
......@@ -223,6 +223,19 @@ private bool IsUnusedParameterCandidate(IParameterSymbol parameter)
return false;
}
// Ignore special parameter names for methods that need a specific signature.
// For example, methods used as a delegate in a different type or project.
// This also serves as a convenient way to suppress instances of unused parameter diagnostic
// without disabling the diagnostic completely.
// We ignore parameter names that start with an underscore and are optionally followed by an integer,
// such as '_', '_1', '_2', etc.
if (parameter.Name.StartsWith("_") &&
(parameter.Name.Length == 1 ||
uint.TryParse(parameter.Name.Substring(1), out _)))
{
return false;
}
return true;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册