public override ICodeNode VisitMethodInvocationExpression(MethodInvocationExpression node) { ICodeNode newNode = typeOfStep.VisitMethodInvocationExpression(node); if (newNode != null) { return(newNode); } replaceThisWithBaseStep.VisitMethodInvocationExpression(node); newNode = operatorStep.VisitMethodInvocationExpression(node); if (newNode != null) { return(base.Visit(newNode)); } newNode = replaceDelegateInvokeStep.VisitMethodInvocationExpression(node); if (newNode != null) { return(base.VisitDelegateInvokeExpression(newNode as DelegateInvokeExpression)); } newNode = propertyStep.VisitMethodInvocationExpression(node); if (newNode != null) { PropertyReferenceExpression propertyReference = newNode as PropertyReferenceExpression; if (propertyReference != null) // if it was a getter { newNode = this.VisitPropertyReferenceExpression(propertyReference); } if (newNode is BinaryExpression) // if it was a setter { newNode = this.VisitBinaryExpression(newNode as BinaryExpression); } return(newNode); } newNode = rebuildEventsStep.VisitMethodInvocationExpression(node); if (newNode != null) { if (newNode is BinaryExpression) { return(VisitBinaryExpression(newNode as BinaryExpression)); } return(newNode); } return(base.VisitMethodInvocationExpression(node)); }