Esempio n. 1
0
        public override Object Visit(InvocationExpression node, Object obj)
        {
            CompoundExpression clonedArguments  = (CompoundExpression)node.Arguments.Accept(this, obj);
            Expression         clonedIdentifier = (Expression)node.Identifier.Accept(this, obj);


            InvocationExpression clonedInvocationExpression = new InvocationExpression(clonedIdentifier, clonedArguments, node.Location);

            if (node.ExpressionType != null)
            {
                clonedInvocationExpression.ExpressionType = node.ExpressionType.CloneType(this.typeVariableMappings, this.typeExpresionVariableMapping);
            }
            clonedInvocationExpression.ActualMethodCalled = node.ActualMethodCalled.CloneType(this.typeVariableMappings, this.typeExpresionVariableMapping);

            //var previousShowMessages = ErrorManager.Instance.ShowMessages;
            //ErrorManager.Instance.ShowMessages = false;
            //clonedInvocationExpression.Accept(visitorSpecializer.visitorTypeInference, obj);
            //ErrorManager.Instance.ShowMessages = previousShowMessages;

            clonedInvocationExpression.Accept(visitorSpecializer, obj);
            return(clonedInvocationExpression);
        }
        public void VisitorWithReturnIsImplemented()
        {
            var sut = new InvocationExpression();

            sut.Accept(23).VerifyWithReturn(v => v.Visit(sut, 23));
        }