internal DispatchExpression(
SymbolTable symbols,
DispatchTypes dispatchType,
Expression left,
String name,
IList<Type> typeArguments,
IList<Expression> arguments
)
: base(symbols)
{
this.DispatchType = dispatchType;
this.Left = left;
this.Name = name;
this.TypeArguments = new ReadOnlyCollection<Type>(typeArguments ?? Type.EmptyTypes);
this.Arguments = new ReadOnlyCollection<Expression>(arguments ?? Arrays.Empty<Expression>());
this.SetPosition(arguments.StartWith(left));
}