private ImmutableArray<BoundVariableDeclaration> BindParameters(ParameterListSyntax parameterList, Binder invocableBinder, InvocableSymbol invocableSymbol)
{
var boundParameters = new List<BoundVariableDeclaration>();
foreach (var parameterSyntax in parameterList.Parameters)
{
var parameterValueType = Bind(parameterSyntax.Type, x => BindType(x, null));
var parameterDirection = SyntaxFacts.GetParameterDirection(parameterSyntax.Modifiers);
boundParameters.Add(invocableBinder.Bind(parameterSyntax.Declarator, x => invocableBinder.BindVariableDeclarator(x, parameterValueType.TypeSymbol, (d, t) =>
new SourceParameterSymbol(
parameterSyntax,
invocableSymbol,
t,
parameterDirection))));
}
invocableSymbol.ClearParameters();
foreach (var parameter in invocableBinder.LocalSymbols.Values.SelectMany(x => x))
invocableSymbol.AddParameter((ParameterSymbol) parameter);
return boundParameters.ToImmutableArray();
}