2
0
Эх сурвалжийг харах

simplify

svn path=/trunk/mcs/; revision=108211
Jb Evain 17 жил өмнө
parent
commit
5fb3229bc4

+ 5 - 12
mcs/class/System.Core/System.Linq.Expressions/Expression.cs

@@ -764,7 +764,7 @@ namespace System.Linq.Expressions {
 			Type result = null;
 
 			if (left.Type.IsNullable ()) {
-				Type lbase = GetNullableArgumentType (left.Type);
+				Type lbase = GetNotNullableOf (left.Type);
 
 				if (!right.Type.IsNullable () && right.Type.IsAssignableTo (lbase))
 					result = lbase;
@@ -774,7 +774,7 @@ namespace System.Linq.Expressions {
 				result = left.Type;
 
 			if (result == null) {
-				if (left.Type.IsNullable () && GetNullableArgumentType (left.Type).IsAssignableTo (right.Type))
+				if (left.Type.IsNullable () && GetNotNullableOf (left.Type).IsAssignableTo (right.Type))
 					result = right.Type;
 			}
 
@@ -1985,7 +1985,8 @@ namespace System.Linq.Expressions {
 					throw new ArgumentNullException ("initializers");
 
 				if (!expression.Type.IsAssignableTo (type))
-					throw new InvalidOperationException ();
+					throw new InvalidOperationException (
+						string.Format ("{0} IsAssignableTo {1}, expression [ {2} ] : {3}", expression.Type, type, expression.NodeType, expression));
 
 				// TODO: Quote elements if type == typeof (Expression)
 			}
@@ -2189,17 +2190,9 @@ namespace System.Linq.Expressions {
 				t == typeof (byte);
 		}
 
-		//
-		// returns the T in a a Nullable<T> type.
-		//
-		internal static Type GetNullableArgumentType (Type type)
-		{
-			return type.GetFirstGenericArgument ();
-		}
-
 		internal static Type GetNotNullableOf (Type type)
 		{
-			return type.IsNullable () ? GetNullableArgumentType (type) : type;
+			return type.IsNullable () ? type.GetFirstGenericArgument () : type;
 		}
 
 		//