Ejemplo n.º 1
0
		override public void OnMethodInvocationExpression(MethodInvocationExpression node)
		{
			if (!TypeSystemServices.IsDuckTyped(node.Target))
			{
				base.OnMethodInvocationExpression(node);
				return;
			}

			if (TypeSystemServices.IsQuackBuiltin(node.Target))
			{
				ExpandQuackInvocation(node);
				return;
			}

			base.OnMethodInvocationExpression(node);
			
			if(node.GetAncestor(NodeType.Constructor) == null 
				|| (node.Target.NodeType != NodeType.SelfLiteralExpression
			    	&& node.Target.NodeType != NodeType.SuperLiteralExpression)
				|| node.Target.Entity as IConstructor == null)
				ExpandCallableInvocation(node);
		}