void ProcessMethodInvocationOnCallableExpression(MethodInvocationExpression node)
{
var type = GetConcreteExpressionType(node.Target);
var delegateType = type as ICallableType;
if (delegateType != null)
{
ProcessDelegateInvocation(node, delegateType);
return;
}
if (IsAssignableFrom(TypeSystemServices.ICallableType, type))
{
ProcessICallableInvocation(node);
return;
}
if (TypeSystemServices.TypeType == type)
{
ProcessSystemTypeInvocation(node);
return;
}
ProcessInvocationOnUnknownCallableExpression(node);
}