Skip to content

Commit

Permalink
Use existing ExpressionVisitor.Visit overload in BCL
Browse files Browse the repository at this point in the history
  • Loading branch information
stakx committed Mar 28, 2020
1 parent 3a0fec0 commit 9fab772
Showing 1 changed file with 1 addition and 24 deletions.
25 changes: 1 addition & 24 deletions src/Moq/Expressions/Visitors/UpgradePropertyAccessorMethods.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ private UpgradePropertyAccessorMethods()
protected override Expression VisitMethodCall(MethodCallExpression node)
{
var instance = node.Object != null ? this.Visit(node.Object) : null;
var arguments = VisitArguments(node.Arguments);
var arguments = this.Visit(node.Arguments);

if (node.Method.IsSpecialName)
{
Expand Down Expand Up @@ -95,28 +95,5 @@ protected override Expression VisitMethodCall(MethodCallExpression node)
return instance != node.Object || arguments != node.Arguments ? Expression.Call(instance, node.Method, arguments)
: node;
}

private IReadOnlyList<Expression> VisitArguments(ReadOnlyCollection<Expression> arguments)
{
if (arguments.Count > 0)
{
var argumentCount = arguments.Count;
var visitedArguments = new Expression[argumentCount];
var changed = false;

for (int i = 0; i < argumentCount; ++i)
{
var argument = arguments[i];
var visitedArgument = visitedArguments[i] = this.Visit(argument);
changed |= visitedArgument != argument;
}

return changed ? (IReadOnlyList<Expression>)visitedArguments : arguments;
}
else
{
return arguments;
}
}
}
}

0 comments on commit 9fab772

Please sign in to comment.