New tests.
authorMarek Safar <marek.safar@gmail.com>
Mon, 7 Jul 2008 09:41:45 +0000 (09:41 -0000)
committerMarek Safar <marek.safar@gmail.com>
Mon, 7 Jul 2008 09:41:45 +0000 (09:41 -0000)
svn path=/trunk/mcs/; revision=107363

mcs/tests/gtest-anon-35.cs [new file with mode: 0755]
mcs/tests/gtest-iter-03.cs [new file with mode: 0644]
mcs/tests/ver-il-gmcs.xml

diff --git a/mcs/tests/gtest-anon-35.cs b/mcs/tests/gtest-anon-35.cs
new file mode 100755 (executable)
index 0000000..4994464
--- /dev/null
@@ -0,0 +1,53 @@
+using System;
+using System.Reflection;
+
+// Delegate Cache
+class C<T>
+{
+       static Func<T> XX ()
+       {
+               System.Func<T> t = () => default (T);
+               return t;
+       }
+}
+
+// Delegate Cache
+class C2<T>
+{
+       static Func<C<T>> XX ()
+       {
+               System.Func<C<T>> t = () => default (C<T>);
+               return t;
+       }
+}
+
+// No delegate cache
+class N1
+{
+       static Func<T> XX<T> ()
+       {
+               System.Func<T> t = () => default (T);
+               return t;
+       }
+}
+
+public class Test
+{
+       public static int Main ()
+       {
+               var t = typeof (C<>);
+               if (t.GetFields (BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static).Length != 1)
+                       return 1;
+               
+               t = typeof (C2<>);
+               if (t.GetFields (BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static).Length != 1)
+                       return 1;
+               
+               t = typeof (N1);
+               if (t.GetFields (BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static).Length != 0)
+                       return 1;
+               
+               Console.WriteLine ("OK");
+               return 0;
+       }
+}
diff --git a/mcs/tests/gtest-iter-03.cs b/mcs/tests/gtest-iter-03.cs
new file mode 100644 (file)
index 0000000..24b2b30
--- /dev/null
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+
+public class Test {
+
+       List<object> annotations = new List<object> ();
+
+       public IEnumerable<T> Annotations<T> () where T : class
+       {
+               foreach (T o in Annotations (typeof (T)))
+                       yield return o;
+       }
+
+       public IEnumerable<object> Annotations (Type type)
+       {
+               if (annotations == null)
+                       yield break;
+               foreach (object o in annotations)
+                       if (o.GetType () == type)
+                               yield return o;
+       }
+       
+       static void Main ()
+       {
+               var test = new Test ();
+               test.Annotations<Test> ();
+       }
+}
index 1521c84be863bb2f7ed9e58113eaef085746e694..480756187f395a7a39d2643cceb58b3c48f42e7f 100644 (file)
         <size>7</size>
       </method>
       <method name="T`1[X] M[X]()">
-        <size>30</size>
+        <size>13</size>
       </method>
       <method name="T`1[System.Int64] N()">
         <size>30</size>
         <size>7</size>
       </method>
       <method name="X+ModuleBinder`1[TDelegate] CreateMethodUnscoped[TDelegate]()">
-        <size>30</size>
+        <size>13</size>
       </method>
       <method name="Void Main()">
         <size>1</size>
         <size>10</size>
       </method>
       <method name="Void Test2[T]()">
-        <size>36</size>
+        <size>19</size>
       </method>
       <method name="Void Main()">
         <size>100</size>
         <size>7</size>
       </method>
       <method name="System.Converter`2[TSource,TDest] GetUpcaster[TSource,TDest]()">
-        <size>30</size>
+        <size>13</size>
       </method>
       <method name="System.Converter`2[TSource,TDest] GetDowncaster[TSource,TDest]()">
-        <size>30</size>
+        <size>13</size>
       </method>
       <method name="Void Main()">
         <size>1</size>
       </method>
     </type>
   </test>
+  <test name="gtest-anon-35.cs">
+    <type name="C`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.Func`1[T] XX()">
+        <size>32</size>
+      </method>
+      <method name="T &lt;XX&gt;m__0()">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="C2`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.Func`1[C`1[T]] XX()">
+        <size>32</size>
+      </method>
+      <method name="C`1[T] &lt;XX&gt;m__1()">
+        <size>4</size>
+      </method>
+    </type>
+    <type name="N1">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.Func`1[T] XX[T]()">
+        <size>15</size>
+      </method>
+      <method name="T &lt;XX&gt;m__2[T]()">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>98</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-anon-4.cs">
     <type name="Test">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
+  <test name="gtest-iter-03.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>18</size>
+      </method>
+      <method name="IEnumerable`1 Annotations[T]()">
+        <size>23</size>
+      </method>
+      <method name="IEnumerable`1 Annotations(System.Type)">
+        <size>30</size>
+      </method>
+      <method name="Void Main()">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Annotations&gt;c__Iterator0`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="T System.Collections.Generic.IEnumerator`1[T].get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>12</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>39</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable`1[T].GetEnumerator()">
+        <size>39</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>194</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>60</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Annotations&gt;c__Iterator1">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.Generic.IEnumerator`1[[System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>12</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>53</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable`1[[System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetEnumerator()">
+        <size>53</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>213</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>51</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-linq-01.cs">
     <type name="from.ITest">
       <method name="Int32 get_Id()">
         <size>7</size>
       </method>
       <method name="Void Foo[T]()">
-        <size>31</size>
+        <size>14</size>
       </method>
       <method name="Void Main()">
         <size>1</size>