Browse Source

2009-11-15 Jb Evain <[email protected]>

	* Expression (Call): better filtering of generic methods.
	Fixes #537768.


svn path=/trunk/mcs/; revision=146222
Jb Evain 16 years ago
parent
commit
8998f55b5e

+ 5 - 0
mcs/class/System.Core/System.Linq.Expressions/ChangeLog

@@ -1,3 +1,8 @@
+2009-11-15  Jb Evain  <[email protected]>
+
+	* Expression (Call): better filtering of generic methods.
+	Fixes #537768.
+
 2009-11-14  Jb Evain  <[email protected]>
 
 	* UnaryExpression.cs: isolate quoted expressions.

+ 3 - 2
mcs/class/System.Core/System.Linq.Expressions/Expression.cs

@@ -1083,7 +1083,8 @@ namespace System.Linq.Expressions {
 					return false;
 
 				return MethodMatch (closed, name, parameterTypes, argumentTypes);
-			}
+			} else if (!method.IsGenericMethod && (argumentTypes != null && argumentTypes.Length > 0))
+				return false;
 
 			for (int i = 0; i < parameters.Length; i++)
 				if (!IsAssignableToParameterType (parameterTypes [i], parameters [i]))
@@ -1099,7 +1100,7 @@ namespace System.Linq.Expressions {
 						  select meth;
 
 			if (methods.Count () > 1)
-				throw new InvalidOperationException ("Too much method candidates");
+				throw new InvalidOperationException ("Too many method candidates");
 
 			var method = TryMakeGeneric (methods.FirstOrDefault (), argumentTypes);
 			if (method != null)