提交 1327b455 编写于 作者: O Omar Tawfik 提交者: GitHub

Merge pull request #14523 from OmarTawfik/fix-method-group-types-in-errors

Use operand.Display property when printing method group types to diagnostics
......@@ -1784,10 +1784,7 @@ private BoundExpression BindCastCore(ExpressionSyntax node, BoundExpression oper
ImmutableArray<MethodSymbol> originalUserDefinedConversions = conversion.OriginalUserDefinedConversions;
if (originalUserDefinedConversions.Length > 1)
{
// Method groups always have null types
var operandType = (operand.Kind == BoundKind.MethodGroup) ? (object)MessageID.IDS_SK_METHOD.Localize() : operand.Type;
diagnostics.Add(ErrorCode.ERR_AmbigUDConv, syntax.Location, originalUserDefinedConversions[0], originalUserDefinedConversions[1], operandType, targetType);
diagnostics.Add(ErrorCode.ERR_AmbigUDConv, syntax.Location, originalUserDefinedConversions[0], originalUserDefinedConversions[1], operand.Display, targetType);
}
else
{
......
......@@ -989,9 +989,9 @@ static void Main()
var tree = Parse(text);
var comp = CreateCompilationWithMscorlib(tree);
comp.GetMethodBodyDiagnostics().Verify(
// (23,15): error CS0457: Ambiguous user defined conversions 'D.explicit operator D(Foo)' and 'D.implicit operator D(Action)' when converting from 'method' to 'D'
// (23,15): error CS0457: Ambiguous user defined conversions 'D.explicit operator D(Foo)' and 'D.implicit operator D(Action)' when converting from 'method group' to 'D'
// D d = (D) Main;
Diagnostic(ErrorCode.ERR_AmbigUDConv, "(D) Main").WithArguments("D.explicit operator D(Foo)", "D.implicit operator D(System.Action)", "method", "D").WithLocation(23, 15)
Diagnostic(ErrorCode.ERR_AmbigUDConv, "(D) Main").WithArguments("D.explicit operator D(Foo)", "D.implicit operator D(System.Action)", "method group", "D").WithLocation(23, 15)
);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册