dotnet/roslyn
It looks like OverloadResolution.GetParameterType doesn't perform complete check before digging through param array
開放
#20,249 建立於 2017年6月15日
Area-CompilersBugLanguage-C#help wanted
倉庫指標
- 星標
- (20,414 顆星)
- PR 合併指標
- (平均合併 6天 17小時) (30 天內合併 256 個 PR)
描述
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;
}
}