Author: jbevain
Date: 2008-01-31 11:54:11 -0500 (Thu, 31 Jan 2008)
New Revision: 94476
Modified:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ChangeLog
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Field.cs
Log:
2008-01-31 Jb Evain <[EMAIL PROTECTED]>
* ExpressionTest_Field.cs: add field access tests.
Modified: trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ChangeLog
===================================================================
--- trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ChangeLog
2008-01-31 16:53:42 UTC (rev 94475)
+++ trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ChangeLog
2008-01-31 16:54:11 UTC (rev 94476)
@@ -1,3 +1,7 @@
+2008-01-31 Jb Evain <[EMAIL PROTECTED]>
+
+ * ExpressionTest_Field.cs: add field access tests.
+
2008-01-30 Jb Evain <[EMAIL PROTECTED]>
* ExpressionTest_CallWithExpression.cs: add tests for very simple calls.
Modified:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Field.cs
===================================================================
---
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Field.cs
2008-01-31 16:53:42 UTC (rev 94475)
+++
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Field.cs
2008-01-31 16:54:11 UTC (rev 94476)
@@ -85,5 +85,36 @@
Assert.AreEqual ("MemberClass.StaticField",
expr.ToString(), "Field#09");
}
+ public static string foo = "foo";
+
+ [Test]
+ public void CompileStaticField ()
+ {
+ var foo = Expression.Lambda<Func<string>> (
+ Expression.Field (null, GetType ().GetField (
+ "foo", BindingFlags.Static |
BindingFlags.Public))).Compile ();
+
+ Assert.AreEqual ("foo", foo ());
+ }
+
+ public class Bar {
+ public string baz;
+
+ public Bar ()
+ {
+ baz = "baz";
+ }
+ }
+
+ [Test]
+ public void CompileInstanceField ()
+ {
+ var p = Expression.Parameter (typeof (Bar), "bar");
+ var baz = Expression.Lambda<Func<Bar, string>> (
+ Expression.Field (p, typeof (Bar).GetField (
+ "baz", BindingFlags.Public |
BindingFlags.Instance)), p).Compile ();
+
+ Assert.AreEqual ("baz", baz (new Bar ()));
+ }
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches