dotnet/roslyn
Auf GitHub ansehenIt looks like OverloadResolution.GetParameterType doesn't perform complete check before digging through param array
Open
#20.249 geöffnet am 15. Juni 2017
Area-CompilersBugLanguage-C#help wanted
Repository-Metriken
- Stars
- (20.414 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (256 gemergte PRs in 30 T)
Beschreibung
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;
}
}