Skip to content

Commit

Permalink
Adjusted memberExpressionFactory according to PR #931
Browse files Browse the repository at this point in the history
  • Loading branch information
acizmarik committed Mar 11, 2021
1 parent b837fb9 commit 35548cd
Showing 1 changed file with 2 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -165,18 +165,11 @@ public Expression CallMethod(Expression target, BindingFlags flags, string name,
if (method.IsExtension)
{
// Change to a static call
var newArguments = CreateArgumentsForExtensionMethod(target, arguments);
var newArguments = new[] { target }.Concat(arguments);
return Expression.Call(method.Method, newArguments);
}
return Expression.Call(target, method.Method, method.Arguments);
}
private static Expression[] CreateArgumentsForExtensionMethod(Expression target, Expression[] arguments)
{
var newArguments = new Expression[arguments.Length + 1];
Array.Copy(arguments, 0, newArguments, 1, arguments.Length);
newArguments[0] = target;
return newArguments;
}

public Expression CallMethod(Type target, BindingFlags flags, string name, Type[] typeArguments, Expression[] arguments, IDictionary<string, Expression> namedArgs = null)
{
Expand All @@ -196,7 +189,7 @@ private MethodRecognitionResult FindValidMethodOveloads(Expression target, Type
if (target != null)
{
// Change to a static call
var newArguments = CreateArgumentsForExtensionMethod(target, arguments);
var newArguments = new[] { target }.Concat(arguments).ToArray();
var extensions = FindValidMethodOveloads(extensionsProvider.GetExtensionMethods().OfType<MethodInfo>().Where(m => m.Name == name), typeArguments, newArguments, namedArgs)
.Select(method => { method.IsExtension = true; return method; }).ToList();

Expand Down

0 comments on commit 35548cd

Please sign in to comment.