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)); }