Jelajahi Sumber

2009-09-03 Jb Evain <[email protected]>

	* ConstantExpression.cs (Emit): add support for emitting
	DateTime constants.


svn path=/trunk/mcs/; revision=141238
Jb Evain 16 tahun lalu
induk
melakukan
332e5b400d

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

@@ -1,3 +1,8 @@
+2009-09-03  Jb Evain  <[email protected]>
+
+	* ConstantExpression.cs (Emit): add support for emitting
+	DateTime constants.
+
 2009-03-05  Jb Evain  <[email protected]>
 
 	* EmitContext.cs

+ 13 - 0
mcs/class/System.Core/System.Linq.Expressions/ConstantExpression.cs

@@ -131,6 +131,19 @@ namespace System.Linq.Expressions {
 				return;
 			}
 
+			case TypeCode.DateTime: {
+				var date = (DateTime) value;
+				var local = ig.DeclareLocal (typeof (DateTime));
+
+				ig.Emit (OpCodes.Ldloca, local);
+				ig.Emit (OpCodes.Ldc_I8, date.Ticks);
+				ig.Emit (OpCodes.Ldc_I4, (int) date.Kind);
+				ig.Emit (OpCodes.Call, typeof (DateTime).GetConstructor (new [] { typeof (long), typeof (DateTimeKind) }));
+				ig.Emit (OpCodes.Ldloc, local);
+
+				return;
+			}
+
 			case TypeCode.String:
 				EmitIfNotNull (ec, c => c.ig.Emit (OpCodes.Ldstr, (string) value));
 				return;