dotnet/roslyn
在 GitHub 查看It looks like OverloadResolution.GetParameterType doesn't perform complete check before digging through param array
Open
#20,249 创建于 2017年6月15日
Area-CompilersBugLanguage-C#help wanted
描述
The check that the parameter is the last parameter is not performed, but I believe it should be see OverloadResolution.IsValidParams.
private static TypeSymbol GetParameterType(int argIndex, MemberAnalysisResult result, ImmutableArray<ParameterSymbol> parameters, out RefKind refKind)
{
int paramIndex = result.ParameterFromArgument(argIndex);
ParameterSymbol parameter = parameters[paramIndex];
refKind = parameter.RefKind;
if (result.Kind == MemberResolutionKind.ApplicableInExpandedForm &&
parameter.IsParams && parameter.Type.IsSZArray())
{
return ((ArrayTypeSymbol)parameter.Type).ElementType;
}
else
{
return parameter.Type;
}
}