private void ProcessConstructorInvocation(MethodInvocationExpression node, IEntity targetEntity)
{
NamedArgumentsNotAllowed(node);
InternalConstructor constructorInfo = targetEntity as InternalConstructor;
if (null == constructorInfo) return;
IType targetType = null;
if (NodeType.SuperLiteralExpression == node.Target.NodeType)
{
constructorInfo.HasSuperCall = true;
targetType = constructorInfo.DeclaringType.BaseType;
}
else if (node.Target.NodeType == NodeType.SelfLiteralExpression)
{
constructorInfo.HasSelfCall = true;
targetType = constructorInfo.DeclaringType;
}
IConstructor targetConstructorInfo = GetCorrectConstructor(node, targetType, node.Arguments);
if (null != targetConstructorInfo)
{
Bind(node.Target, targetConstructorInfo);
}
}