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

Reply via email to