From 35548cdc21a52d7d2fae6116f3f3cb81cbb88e0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrej=20=C4=8Ci=C5=BEm=C3=A1rik?= Date: Thu, 11 Mar 2021 11:35:48 +0100 Subject: [PATCH] Adjusted memberExpressionFactory according to PR #931 --- .../Compilation/Binding/MemberExpressionFactory.cs | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/DotVVM.Framework/Compilation/Binding/MemberExpressionFactory.cs b/src/DotVVM.Framework/Compilation/Binding/MemberExpressionFactory.cs index 3987a6554e..01293b3d05 100644 --- a/src/DotVVM.Framework/Compilation/Binding/MemberExpressionFactory.cs +++ b/src/DotVVM.Framework/Compilation/Binding/MemberExpressionFactory.cs @@ -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 namedArgs = null) { @@ -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().Where(m => m.Name == name), typeArguments, newArguments, namedArgs) .Select(method => { method.IsExtension = true; return method; }).ToList();