Area-CompilersBugConcept-Diagnostic Clarityhelp wanted
描述
We could add a new diagnostic to improve clarity:
error CS0023: Operator '!' cannot be applied to operand of type 'method group'
[Fact]
public void NegationUnaryOperatorOnTypelessExpressions()
{
string source = @"
class C
{
static void Main()
{
if (!Main || !null)
{
}
}
}";
var comp = CreateStandardCompilation(source, parseOptions: TestOptions.Regular7_1, options: TestOptions.DebugExe);
comp.VerifyDiagnostics(
// (6,13): error CS0023: Operator '!' cannot be applied to operand of type 'method group'
// if (!Main || !null)
Diagnostic(ErrorCode.ERR_BadUnaryOp, "!Main").WithArguments("!", "method group").WithLocation(6, 13),
// (6,22): error CS8310: Operator '!' cannot be applied to operand '<null>'
// if (!Main || !null)
Diagnostic(ErrorCode.ERR_BadOpOnNullOrDefault, "!null").WithArguments("!", "<null>").WithLocation(6, 22)
);
}
Relates to discussion https://github.com/dotnet/roslyn/pull/19870#discussion_r119425836