New tests.
[mono.git] / mcs / tests / ver-il-gmcs.xml
index 3927c3067c35a05742bb7841ad31ec469dc685db..259b8bfde02e19438baf2aeab0db82f410537e27 100644 (file)
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>31</size>
+    </type>
+    <type name="A`1[U]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Test`1[U,T]">
+      <method name="A`1+Test`1+Nested`1[U,T,T] Foo()">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Test`1+Nested`1[U,T,X]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()">
+        <size>39</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>90</size>
+        <size>86</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>483</size>
+        <size>459</size>
       </method>
     </type>
     <type name="Mapper`2[A,R]">
         <size>17</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-116.cs">
     <type name="Slow.Test">
       </method>
     </type>
     <type name="B">
-      <method name="Int32 &lt;M&gt;m__0[X](X)">
+      <method name="Int32 &lt;N&gt;m__1(Int64)">
         <size>2</size>
       </method>
-      <method name="Int32 &lt;N&gt;m__1(Int64)">
+      <method name="Int32 &lt;M`1&gt;m__0[X](X)">
         <size>2</size>
       </method>
     </type>
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>118</size>
+        <size>117</size>
       </method>
     </type>
     <type name="X+A">
         <size>40</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-166.cs">
     <type name="C">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>147</size>
+        <size>145</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
     </type>
     <type name="Fault">
       <method name="Void Main()">
-        <size>45</size>
+        <size>47</size>
       </method>
       <method name="System.String ToString()">
         <size>6</size>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>85</size>
+      <method name="Int32 Main()">
+        <size>145</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
-  <test name="gtest-232.cs">
-    <type name="H">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerable`1 Merge[T](IEnumerator`1)">
-        <size>30</size>
-      </method>
-      <method name="Void Main(System.String[])">
-        <size>1</size>
-      </method>
-    </type>
-    <type name="H+&lt;Merge&gt;c__Iterator0`1[T]">
-      <method name="Void .ctor()">
-        <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>7</size>
-      </method>
-      <method name="Boolean MoveNext()">
-        <size>117</size>
-      </method>
-      <method name="Void Dispose()">
-        <size>8</size>
-      </method>
-      <method name="Void Reset()">
-        <size>6</size>
-      </method>
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()">
-        <size>40</size>
-      </method>
-    </type>
-  </test>
   <test name="gtest-233.cs">
     <type name="Program">
       <method name="Void .ctor()">
       <method name="Void Main()">
         <size>163</size>
       </method>
+      <method name="Void f6(ParamEnum)">
+        <size>1</size>
+      </method>
     </type>
   </test>
   <test name="gtest-263.cs">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>74</size>
+        <size>94</size>
       </method>
     </type>
     <type name="D">
       </method>
     </type>
     <type name="TestClass">
-      <method name="Void &lt;TestClass&gt;m__0(Int32)">
+      <method name="Void &lt;a&gt;m__0(Int32)">
         <size>7</size>
       </method>
     </type>
       </method>
     </type>
   </test>
-  <test name="gtest-316.cs">
-    <type name="X">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Main()">
-        <size>1</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Method[R]()">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Method[S]()">
-        <size>7</size>
-      </method>
-      <method name="Void Method2[T]()">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
   <test name="gtest-317.cs">
     <type name="Foo`1[K]">
       <method name="Void .ctor()">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 SetEnum(System.String, Enum)">
-        <size>2</size>
-      </method>
-      <method name="Int32 SetEnum(Int32, Enum)">
-        <size>2</size>
-      </method>
     </type>
     <type name="Test">
       <method name="Void .ctor()">
         <size>31</size>
       </method>
     </type>
+    <type name="TestThing">
+      <method name="Int32 SetEnum(System.String, System.Enum)">
+        <size>2</size>
+      </method>
+      <method name="Int32 SetEnum(Int32, System.Enum)">
+        <size>2</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-352.cs">
     <type name="T">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>90</size>
+        <size>86</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Boolean Check(T, T)">
-        <size>5</size>
+        <size>15</size>
       </method>
     </type>
     <type name="C">
         <size>7</size>
       </method>
       <method name="Boolean Check(T, T)">
-        <size>5</size>
+        <size>15</size>
       </method>
     </type>
     <type name="X">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="Int32 Main()">
+        <size>28</size>
       </method>
     </type>
   </test>
         <size>45</size>
       </method>
       <method name="Void Test_6(Boolean)">
-        <size>51</size>
+        <size>47</size>
       </method>
       <method name="Void Test_7(System.Object)">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>75</size>
+        <size>50</size>
       </method>
       <method name="T[] Clone[T](T[])">
         <size>166</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-422.cs">
     <type name="A">
       </method>
     </type>
   </test>
-  <test name="gtest-448.cs">
-    <type name="C">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void TestA(Int32)">
-        <size>1</size>
-      </method>
-      <method name="Void TestB(Int64)">
-        <size>1</size>
-      </method>
-      <method name="Void TestC(Decimal)">
-        <size>1</size>
-      </method>
-      <method name="Int32 Main()">
-        <size>309</size>
-      </method>
-    </type>
-  </test>
   <test name="gtest-449.cs">
     <type name="Program">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
-  <test name="gtest-451.cs">
-    <type name="C">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Int32 Test(Int32, System.String, Boolean, UInt16)">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()">
-        <size>232</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-452.cs">
-    <type name="C">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Foo[T](T, T)">
-        <size>1</size>
-      </method>
-      <method name="Void TestParams(System.Int32[])">
-        <size>6</size>
-      </method>
-      <method name="Void TestParams(Int32)">
-        <size>1</size>
-      </method>
-      <method name="System.String get_Item(Int32, System.String)">
-        <size>2</size>
-      </method>
-      <method name="Void set_Item(Int32, System.String, System.String)">
-        <size>4</size>
-      </method>
-      <method name="Int32 Main()">
-        <size>123</size>
-      </method>
-      <method name="Void TestStruct(Nullable`1)">
-        <size>1</size>
-      </method>
-    </type>
-  </test>
   <test name="gtest-453.cs">
     <type name="Test.CompilerTest">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
-  <test name="gtest-anon-1.cs">
-    <type name="X">
+  <test name="gtest-454.cs">
+    <type name="TestNS.TestCase">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Hello[U](U)">
-        <size>1</size>
+      <method name="Int32 Compare[T](T[], T[])">
+        <size>2</size>
       </method>
-      <method name="Void Test[T](T)">
-        <size>64</size>
+      <method name="Void DoSomething[T](System.Func`3[T,T,System.Int32])">
+        <size>30</size>
       </method>
-      <method name="Void Main()">
-        <size>14</size>
+      <method name="Int32 Main()">
+        <size>19</size>
       </method>
     </type>
-    <type name="Foo">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
-      </method>
-      <method name="Void Invoke()">
-        <size>0</size>
-      </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+  </test>
+  <test name="gtest-455.cs">
+    <type name="ConsoleApplication1.Program">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void Main()">
+        <size>14</size>
       </method>
     </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0`1[T]">
+    <type name="ConsoleApplication1.Inner`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__0()">
-        <size>18</size>
+      <method name="Void Compare(System.Object, T)">
+        <size>13</size>
       </method>
     </type>
   </test>
-  <test name="gtest-anon-10.cs">
-    <type name="X">
+  <test name="gtest-456.cs">
+    <type name="G`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IEnumerable`1 Test[T](T, T)">
-        <size>44</size>
+    </type>
+    <type name="G`1+S[T]">
+      <method name="System.String Test()">
+        <size>22</size>
       </method>
+    </type>
+    <type name="C">
       <method name="Int32 Main()">
-        <size>95</size>
+        <size>36</size>
       </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__Iterator0`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>12</size>
+    </type>
+  </test>
+  <test name="gtest-457.cs">
+    <type name="Program">
+      <method name="Void Foo[T]()">
+        <size>1</size>
       </method>
-      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+      <method name="Int32 Main()">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean MoveNext()">
-        <size>110</size>
+    </type>
+    <type name="Program+C">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void Dispose()">
-        <size>8</size>
+    </type>
+  </test>
+  <test name="gtest-458.cs">
+    <type name="MyList`1[T]">
+      <method name="MyList`1+Helper`2[T,U,V] GetHelper[U,V]()">
+        <size>2</size>
       </method>
-      <method name="Void Reset()">
-        <size>6</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()">
+    </type>
+    <type name="MyList`1+Helper`2[T,U,V]">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()">
-        <size>52</size>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
-  <test name="gtest-anon-11.cs">
-    <type name="Test`1[R]">
+  <test name="gtest-459.cs">
+    <type name="GenericTest.OuterGeneric`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void World[S,T](S, T)">
-        <size>1</size>
-      </method>
-      <method name="Void Hello[U,V](U, V)">
+    </type>
+    <type name="GenericTest.OuterGeneric`1+InnerGeneric`1[T,U]">
+      <method name="System.String GetTypeNames()">
         <size>41</size>
       </method>
-    </type>
-    <type name="X">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>21</size>
-      </method>
     </type>
-    <type name="Foo">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="GenericTest.Program">
+      <method name="Int32 Main()">
+        <size>14</size>
       </method>
-      <method name="Void Invoke()">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+    </type>
+  </test>
+  <test name="gtest-460.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+    <type name="Foo`1+Bar`1[T,V]">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="Test`1+&lt;Hello&gt;c__AnonStorey0`2[R,U,V]">
+    <type name="FooImpl">
+      <method name="Int32 Main()">
+        <size>8</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__0()">
-        <size>24</size>
+    </type>
+    <type name="FooImpl+BarImpl">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
-  <test name="gtest-anon-12.cs">
-    <type name="World`1[T]">
+  <test name="gtest-461.cs">
+    <type name="Test.BaseContext">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Hello[U](U)">
-        <size>1</size>
-      </method>
-      <method name="Void Test(T)">
-        <size>46</size>
-      </method>
     </type>
-    <type name="X">
+    <type name="Test.MyDataContext">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>18</size>
-      </method>
     </type>
-    <type name="Foo">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="Test.Entity`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void Invoke()">
-        <size>0</size>
+    </type>
+    <type name="Test.Person">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+    </type>
+    <type name="Test.TheBox`1[T]">
+      <method name="U GetById[U](Guid)">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="World`1+&lt;Test&gt;c__AnonStorey0[T]">
+    <type name="Test.Program">
+      <method name="Void Main()">
+        <size>19</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__0()">
-        <size>18</size>
-      </method>
     </type>
   </test>
-  <test name="gtest-anon-13.cs">
-    <type name="X">
+  <test name="gtest-462.cs">
+    <type name="Program">
+      <method name="Int32 Main()">
+        <size>79</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="X+ModuleBinder`1[TDelegate] CreateMethodUnscoped[TDelegate]()">
-        <size>13</size>
-      </method>
-      <method name="Void Main()">
-        <size>1</size>
-      </method>
     </type>
-    <type name="X+ModuleBinder`1[T]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
-      </method>
-      <method name="T Invoke(System.Object)">
-        <size>0</size>
+    <type name="Program+Tester`1[T]">
+      <method name="T Get(System.Object)">
+        <size>30</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="T EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+  </test>
+  <test name="gtest-463.cs">
+    <type name="STuple`1[Ta]">
+      <method name="Void .ctor(Ta)">
+        <size>8</size>
       </method>
     </type>
-    <type name="X">
-      <method name="TDelegate &lt;CreateMethodUnscoped&gt;m__0[TDelegate](System.Object)">
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
   </test>
-  <test name="gtest-anon-14.cs">
-    <type name="T">
+  <test name="gtest-464.cs">
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>28</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void SomeMethod(System.Converter`2[System.Int32,System.Int32])">
+    </type>
+  </test>
+  <test name="gtest-465.cs">
+    <type name="DerivedClass">
+      <method name="Void GenericMethod_1[T]()">
         <size>1</size>
       </method>
-      <method name="Void SomeCaller()">
-        <size>36</size>
+      <method name="Void GenericMethod_2[T]()">
+        <size>1</size>
       </method>
-      <method name="Void Main()">
+      <method name="Void GenericMethod_3[T]()">
         <size>1</size>
       </method>
-      <method name="Int32 &lt;SomeCaller&gt;m__0(Int32)">
-        <size>2</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-anon-15.cs">
-    <type name="Test`1[T]">
+    <type name="Program">
+      <method name="Int32 Main()">
+        <size>8</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Hello[S](T, S)">
-        <size>42</size>
-      </method>
     </type>
-    <type name="X">
+  </test>
+  <test name="gtest-466.cs">
+    <type name="Program">
+      <method name="Boolean Test[T](T)">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>40</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>16</size>
-      </method>
     </type>
-    <type name="Foo`1[V]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+  </test>
+  <test name="gtest-467.cs">
+    <type name="S">
+      <method name="Int32 Main()">
+        <size>79</size>
       </method>
-      <method name="Void Invoke(V)">
-        <size>0</size>
+    </type>
+    <type name="A">
+      <method name="A op_Implicit(S)">
+        <size>6</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(V, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="Bar`1[W]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+  </test>
+  <test name="gtest-468.cs">
+    <type name="TS">
+      <method name="Nullable`1 get_v()">
+        <size>7</size>
       </method>
-      <method name="Void Invoke(W)">
-        <size>0</size>
+      <method name="Int32 Main()">
+        <size>43</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(W, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Nullable`1 op_Implicit(TS)">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="TS op_Implicit(Nullable`1)">
+        <size>2</size>
       </method>
-    </type>
-    <type name="Test`1+&lt;Hello&gt;c__AnonStorey1`1[T,S]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__0(Int64)">
-        <size>57</size>
+    </type>
+  </test>
+  <test name="gtest-469.cs">
+    <type name="Foo`2[T1,T2]">
+      <method name="Void .ctor(T2)">
+        <size>7</size>
       </method>
     </type>
-    <type name="Test`1+&lt;Hello&gt;c__AnonStorey1`1+&lt;Hello&gt;c__AnonStorey0`1[T,S]">
+    <type name="Bar">
+      <method name="Int32 Main()">
+        <size>13</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__1(T)">
-        <size>65</size>
-      </method>
     </type>
   </test>
-  <test name="gtest-anon-16.cs">
-    <type name="A">
-      <method name="Void .ctor(TestFunc`1)">
-        <size>7</size>
-      </method>
+  <test name="gtest-470.cs">
+    <type name="C">
       <method name="Void Main()">
-        <size>1</size>
+        <size>13</size>
       </method>
-    </type>
-    <type name="TestClass">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-471.cs">
+    <type name="Q">
+      <method name="Void bar[T](T ByRef)">
+        <size>16</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-472.cs">
+    <type name="C`1[T]">
+      <method name="Void CopyUnsafe(T[], System.Int64[])">
+        <size>1</size>
+      </method>
+      <method name="Boolean CopyUnsafe(T[], Int64)">
+        <size>2</size>
+      </method>
+      <method name="Void CopyUnsafe(T[])">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-473.cs">
+    <type name="A`1[X]">
+      <method name="Void Foo[T]()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo[T]()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-474.cs">
+    <type name="A`1[X]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-475.cs">
+    <type name="Value`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="Test`2[T,U]">
+      <method name="Value`1[T] get_Value()">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`2+B[T,U]">
+      <method name="Void .ctor(Value`1)">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-476.cs">
+    <type name="Test`1[T]">
+      <method name="B First()">
+        <size>10</size>
+      </method>
+      <method name="IFoo Second()">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-477.cs">
+    <type name="B`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1+BNested[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AA`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AA`1+ANested[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-478.cs">
+    <type name="M">
+      <method name="Void Foo()">
+        <size>1</size>
+      </method>
+      <method name="Void GenFoo()">
+        <size>1</size>
+      </method>
+      <method name="Void Main()">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-479.cs">
+    <type name="A">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Test[T](I`1)">
+        <size>1</size>
+      </method>
+      <method name="Void Main()">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-480.cs">
+    <type name="C">
+      <method name="Void Foo()">
+        <size>55</size>
+      </method>
+      <method name="Void Main()">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-481.cs">
+    <type name="TestClass`1[T]">
+      <method name="Void Add(T[][] ByRef)">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor(Int32)">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-1.cs">
+    <type name="X">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Hello[U](U)">
+        <size>1</size>
+      </method>
+      <method name="Void Test[T](T)">
+        <size>64</size>
+      </method>
+      <method name="Void Main()">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-10.cs">
+    <type name="X">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerable`1 Test[T](T, T)">
+        <size>44</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>95</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__Iterator0`1[T]">
+      <method name="Void .ctor()">
+        <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>7</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>110</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()">
+        <size>52</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-11.cs">
+    <type name="Test`1[R]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void World[S,T](S, T)">
+        <size>1</size>
+      </method>
+      <method name="Void Hello[U,V](U, V)">
+        <size>47</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test`1+&lt;Hello&gt;c__AnonStorey0`2[R,U,V]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()">
+        <size>24</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-12.cs">
+    <type name="World`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Hello[U](U)">
+        <size>1</size>
+      </method>
+      <method name="Void Test(T)">
+        <size>46</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="World`1+&lt;Test&gt;c__AnonStorey0[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-13.cs">
+    <type name="X">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="X+ModuleBinder`1[TDelegate] CreateMethodUnscoped[TDelegate]()">
+        <size>13</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="X+ModuleBinder`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="T Invoke(System.Object)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="TDelegate &lt;CreateMethodUnscoped`1&gt;m__0[TDelegate](System.Object)">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-14.cs">
+    <type name="T">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void SomeMethod(System.Converter`2[System.Int32,System.Int32])">
+        <size>1</size>
+      </method>
+      <method name="Void SomeCaller()">
+        <size>36</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Int32 &lt;SomeCaller&gt;m__0(Int32)">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-15.cs">
+    <type name="Test`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Hello[S](T, S)">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="Foo`1[V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(V)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(V, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bar`1[W]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(W)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(W, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test`1+&lt;Hello&gt;c__AnonStorey1`1[T,S]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0(Int64)">
+        <size>57</size>
+      </method>
+    </type>
+    <type name="Test`1+&lt;Hello&gt;c__AnonStorey1`1+&lt;Hello&gt;c__AnonStorey0`1[T,S]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__1(T)">
+        <size>65</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-16.cs">
+    <type name="A">
+      <method name="Void .ctor(TestFunc`1)">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="TestClass">
       <method name="Void .ctor()">
         <size>47</size>
       </method>
       </method>
     </type>
     <type name="TestClass">
-      <method name="Void &lt;TestClass&gt;m__0(Int32)">
+      <method name="Void &lt;a&gt;m__0(Int32)">
         <size>1</size>
       </method>
     </type>
       </method>
     </type>
     <type name="C">
-      <method name="T &lt;Test2&gt;m__0[T](T)">
-        <size>2</size>
-      </method>
       <method name="Int32 &lt;Main&gt;m__1(Int32)">
         <size>16</size>
       </method>
       <method name="System.String &lt;Main&gt;m__3(Int32)">
         <size>6</size>
       </method>
+      <method name="T &lt;Test2`1&gt;m__0[T](T)">
+        <size>2</size>
+      </method>
     </type>
   </test>
   <test name="gtest-anon-19.cs">
         <size>1</size>
       </method>
       <method name="Void Main()">
-        <size>201</size>
+        <size>200</size>
       </method>
     </type>
     <type name="C+D">
         <size>53</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-anon-24.cs">
-    <type name="Disposable`1[T]">
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-24.cs">
+    <type name="Disposable`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
         <size>26</size>
       </method>
       <method name="Int32 Main()">
-        <size>431</size>
+        <size>501</size>
       </method>
     </type>
     <type name="Test+&lt;For&gt;c__AnonStorey0`1[T]">
         <size>23</size>
       </method>
     </type>
-    <type name="Test+&lt;Do&gt;c__AnonStorey2`1[T]">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="Test">
+      <method name="Void ArrayMutate[T](T[])">
+        <size>27</size>
       </method>
-      <method name="T &lt;&gt;m__2()">
-        <size>28</size>
+      <method name="System.Func`1[T[][]] ArrayMultiMutate[T](T[][])">
+        <size>26</size>
+      </method>
+      <method name="System.Func`1[System.Type] TypeOf[T](T)">
+        <size>38</size>
       </method>
     </type>
-    <type name="Test+&lt;Lock&gt;c__AnonStorey3`1[T]">
+    <type name="Test+&lt;TypeOf&gt;c__AnonStorey2`1[T]">
+      <method name="System.Type &lt;&gt;m__2()">
+        <size>56</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+    </type>
+    <type name="Test+&lt;Do&gt;c__AnonStorey3`1[T]">
       <method name="T &lt;&gt;m__3()">
-        <size>65</size>
+        <size>28</size>
       </method>
-    </type>
-    <type name="Test+&lt;Catch&gt;c__AnonStorey4`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+    </type>
+    <type name="Test+&lt;Lock&gt;c__AnonStorey4`1[T]">
       <method name="T &lt;&gt;m__4()">
-        <size>48</size>
+        <size>65</size>
       </method>
-    </type>
-    <type name="Test+&lt;Finally&gt;c__AnonStorey5`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+    </type>
+    <type name="Test+&lt;Catch&gt;c__AnonStorey5`1[T]">
       <method name="T &lt;&gt;m__5()">
-        <size>50</size>
+        <size>48</size>
       </method>
-    </type>
-    <type name="Test+&lt;Using&gt;c__AnonStorey6`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+    </type>
+    <type name="Test+&lt;Finally&gt;c__AnonStorey6`1[T]">
       <method name="T &lt;&gt;m__6()">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Test+&lt;Switch&gt;c__AnonStorey7`1[T]">
+    <type name="Test+&lt;Using&gt;c__AnonStorey7`1[T]">
+      <method name="T &lt;&gt;m__7()">
+        <size>7</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="T &lt;&gt;m__7()">
+    </type>
+    <type name="Test+&lt;Switch&gt;c__AnonStorey8`1[T]">
+      <method name="T &lt;&gt;m__8()">
         <size>35</size>
       </method>
-    </type>
-    <type name="Test+&lt;ForForeach&gt;c__AnonStorey8`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Collections.Generic.List`1[T] &lt;&gt;m__8()">
+    </type>
+    <type name="Test+&lt;ForForeach&gt;c__AnonStorey9`1[T]">
+      <method name="System.Collections.Generic.List`1[T] &lt;&gt;m__9()">
         <size>56</size>
       </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
     </type>
-    <type name="Test">
-      <method name="Void ArrayMutate[T](T[])">
-        <size>27</size>
+    <type name="Test+&lt;ArrayMutate&gt;c__AnonStoreyA`1[T]">
+      <method name="Void &lt;&gt;m__A(Int32)">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="Test+&lt;ArrayMutate&gt;c__AnonStorey9`1[T]">
+    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyB`1[T]">
+      <method name="T[][] &lt;&gt;m__B()">
+        <size>48</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__9(Int32)">
-        <size>36</size>
+    </type>
+    <type name="CA`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
     <type name="Test">
-      <method name="System.Func`1[T[][]] ArrayMultiMutate[T](T[][])">
-        <size>26</size>
+      <method name="System.Func`1[T[]] NestedTypeMutate[T]()">
+        <size>34</size>
       </method>
     </type>
-    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyA`1[T]">
+    <type name="Test+&lt;NestedTypeMutate&gt;c__AnonStoreyC`1[T]">
+      <method name="T[] &lt;&gt;m__C()">
+        <size>37</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="T[][] &lt;&gt;m__A()">
-        <size>48</size>
-      </method>
     </type>
   </test>
   <test name="gtest-anon-25.cs">
       <method name="Void Main()">
         <size>1</size>
       </method>
-      <method name="TDest &lt;GetUpcaster&gt;m__0[TSource,TDest](TSource)">
+      <method name="TDest &lt;GetUpcaster`2&gt;m__0[TSource,TDest](TSource)">
         <size>12</size>
       </method>
-      <method name="TDest &lt;GetDowncaster&gt;m__1[TSource,TDest](TSource)">
+      <method name="TDest &lt;GetDowncaster`2&gt;m__1[TSource,TDest](TSource)">
         <size>12</size>
       </method>
     </type>
       </method>
     </type>
     <type name="B">
-      <method name="Void &lt;Foo&gt;m__0[T]()">
+      <method name="Void &lt;Foo`1&gt;m__0[T]()">
         <size>7</size>
       </method>
     </type>
       </method>
     </type>
     <type name="X">
-      <method name="Void &lt;Test&gt;m__0[T](T)">
+      <method name="Void &lt;Test`1&gt;m__0[T](T)">
         <size>8</size>
       </method>
     </type>
       <method name="System.Func`1[T] XX[T]()">
         <size>15</size>
       </method>
-      <method name="T &lt;XX&gt;m__2[T]()">
-        <size>10</size>
-      </method>
     </type>
     <type name="Test">
       <method name="Void .ctor()">
         <size>98</size>
       </method>
     </type>
+    <type name="N1">
+      <method name="T &lt;XX`1&gt;m__2[T]()">
+        <size>10</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-anon-36.cs">
     <type name="Foo`1[T]">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>44</size>
+        <size>42</size>
       </method>
     </type>
     <type name="Foo`1+&lt;ContainsAll&gt;c__AnonStorey0`1[T,U]">
         <size>7</size>
       </method>
       <method name="Boolean &lt;&gt;m__0()">
-        <size>194</size>
+        <size>199</size>
       </method>
     </type>
     <type name="Foo`1+&lt;ContainsAll&gt;c__AnonStorey0`1+&lt;ContainsAll&gt;c__AnonStorey1`1[T,U]">
         <size>7</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-anon-39.cs">
     <type name="Test">
       <method name="Void Main()">
         <size>1</size>
       </method>
-      <method name="Decimal &lt;Average&gt;m__0[TSource](Decimal, Decimal)">
+      <method name="Decimal &lt;Average`1&gt;m__0[TSource](Decimal, Decimal)">
         <size>8</size>
       </method>
-      <method name="Decimal &lt;Average&gt;m__1[TSource](Decimal, Decimal)">
+      <method name="Decimal &lt;Average`1&gt;m__1[TSource](Decimal, Decimal)">
         <size>8</size>
       </method>
     </type>
       <method name="Int32 Main()">
         <size>12</size>
       </method>
-      <method name="Void &lt;Test_3&gt;m__0[T]()">
-        <size>11</size>
-      </method>
     </type>
     <type name="Test+D">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
     </type>
+    <type name="Test">
+      <method name="Void &lt;Test_3`1&gt;m__0[T]()">
+        <size>11</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-anon-43.cs">
     <type name="TestC">
       <method name="Int32 Main()">
         <size>66</size>
       </method>
-      <method name="System.Type &lt;Test&gt;m__0[T]()">
+      <method name="System.Type &lt;Test`1&gt;m__0[T]()">
         <size>11</size>
       </method>
     </type>
       <method name="Void Main()">
         <size>1</size>
       </method>
-      <method name="Void &lt;ThisCausesACrash&gt;m__0[I](System.Object, System.EventArgs)">
+      <method name="Void &lt;ThisCausesACrash`1&gt;m__0[I](System.Object, System.EventArgs)">
         <size>1</size>
       </method>
     </type>
       <method name="Int32 Main()">
         <size>12</size>
       </method>
-      <method name="Void &lt;AnyMethod&gt;m__0[T]()">
-        <size>31</size>
-      </method>
     </type>
     <type name="C+&lt;AnyMethod&gt;c__AnonStorey0`1[T]">
       <method name="Void .ctor()">
         <size>14</size>
       </method>
     </type>
+    <type name="C">
+      <method name="Void &lt;AnyMethod`1&gt;m__0[T]()">
+        <size>31</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-anon-46.cs">
     <type name="TheClass">
       </method>
     </type>
   </test>
-  <test name="gtest-anon-47.cs">
-    <type name="C">
-      <method name="System.Func`2[T1,System.Func`2[T2,System.Action`1[T3]]] Curry[T1,T2,T3](System.Action`3[T1,T2,T3])">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Int32 Main()">
-        <size>59</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__3(Int32, Int32, Int32)">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C+&lt;Curry&gt;c__AnonStorey0`3[T1,T2,T3]">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="System.Func`2[T2,System.Action`1[T3]] &lt;&gt;m__0(T1)">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="C+&lt;Curry&gt;c__AnonStorey0`3+&lt;Curry&gt;c__AnonStorey1`3[T1,T2,T3]">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="System.Action`1[T3] &lt;&gt;m__1(T2)">
-        <size>45</size>
-      </method>
-    </type>
-    <type name="C+&lt;Curry&gt;c__AnonStorey0`3+&lt;Curry&gt;c__AnonStorey1`3+&lt;Curry&gt;c__AnonStorey2`3[T1,T2,T3]">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__2(T3)">
-        <size>35</size>
-      </method>
-    </type>
-  </test>
   <test name="gtest-anon-48.cs">
     <type name="GeneratorEnumerable`1[T]">
       <method name="Void .ctor(Func`1)">
       </method>
     </type>
   </test>
+  <test name="gtest-anon-57.cs">
+    <type name="X`1[T]">
+      <method name="Void IFoo&lt;T&gt;.Test()">
+        <size>37</size>
+      </method>
+      <method name="Void &lt;Test&gt;m__0()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-58.cs">
+    <type name="Test">
+      <method name="X Foo[X](Boolean)">
+        <size>45</size>
+      </method>
+      <method name="X FooNested[X](Boolean)">
+        <size>66</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__AnonStorey0`1[X]">
+      <method name="X &lt;&gt;m__0()">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;FooNested&gt;c__AnonStorey1`1[X]">
+      <method name="Call`1[X] &lt;&gt;m__1()">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-59.cs">
+    <type name="TestGenericsSubtypeMatching.Sender`1[T]">
+      <method name="Void DoSend[TMessage](System.Action`1[T])">
+        <size>83</size>
+      </method>
+      <method name="Void Send(System.Action`1[T])">
+        <size>1</size>
+      </method>
+      <method name="Void ActionOnObject(System.Object)">
+        <size>8</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.C">
+      <method name="Void Main()">
+        <size>40</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__1(System.String)">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey0`1[T,TMessage]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey1`1[T,TMessage]">
+      <method name="Void &lt;&gt;m__0(T)">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-anon-6.cs">
     <type name="X">
       <method name="Void .ctor()">
         <size>115</size>
       </method>
       <method name="Void ArrayIndexTest_3()">
-        <size>229</size>
+        <size>199</size>
       </method>
       <method name="Void ArrayIndexTest_4()">
-        <size>258</size>
+        <size>243</size>
       </method>
       <method name="Void ArrayIndexTest_5()">
         <size>108</size>
         <size>54</size>
       </method>
       <method name="Void ConstantTest_4()">
-        <size>54</size>
+        <size>44</size>
       </method>
       <method name="Void ConstantTest_5()">
         <size>59</size>
         <size>101</size>
       </method>
       <method name="Void ConvertTest_12()">
-        <size>166</size>
+        <size>156</size>
       </method>
       <method name="Void ConvertTest_13()">
         <size>86</size>
         <size>167</size>
       </method>
       <method name="Void EqualTest_8()">
-        <size>126</size>
+        <size>116</size>
       </method>
       <method name="Void EqualTest_9()">
         <size>146</size>
         <size>169</size>
       </method>
       <method name="Void ListInitTest()">
-        <size>414</size>
+        <size>404</size>
       </method>
       <method name="Void ListInitTest_2()">
         <size>292</size>
         <size>63</size>
       </method>
       <method name="Void MemberAccessTest_9()">
-        <size>80</size>
+        <size>91</size>
       </method>
       <method name="Void MemberInitTest()">
         <size>302</size>
         <size>86</size>
       </method>
       <method name="Void NewArrayInitTest()">
-        <size>64</size>
+        <size>92</size>
       </method>
       <method name="Void NewArrayInitTest_2()">
         <size>64</size>
         <size>252</size>
       </method>
       <method name="Void NewTest_5()">
-        <size>128</size>
+        <size>371</size>
       </method>
       <method name="Void NotTest()">
         <size>70</size>
         <size>167</size>
       </method>
       <method name="Void NotEqualTest_8()">
-        <size>126</size>
+        <size>116</size>
       </method>
       <method name="Void NotEqualTest_9()">
         <size>146</size>
         <size>144</size>
       </method>
       <method name="Void TypeAsTest_3()">
-        <size>95</size>
+        <size>85</size>
       </method>
       <method name="Void TypeIsTest()">
         <size>103</size>
         <size>103</size>
       </method>
       <method name="Void TypeIsTest_3()">
-        <size>95</size>
+        <size>85</size>
       </method>
       <method name="Void TypeIsTest_5()">
         <size>74</size>
         <size>66</size>
       </method>
       <method name="Void NewTest_6()">
-        <size>53</size>
+        <size>182</size>
       </method>
     </type>
     <type name="InverseLogicalOperator">
       <method name="Void LambdaTest()">
         <size>89</size>
       </method>
+      <method name="Void EqualTest_15()">
+        <size>159</size>
+      </method>
+      <method name="Void ArrayIndexTest_6()">
+        <size>122</size>
+      </method>
+      <method name="Void ArrayIndexTest_7()">
+        <size>128</size>
+      </method>
+      <method name="Void NewArrayBoundsTest_3()">
+        <size>85</size>
+      </method>
+      <method name="Void NewArrayBoundsTest_4()">
+        <size>82</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void LeftShiftTest_6()">
+        <size>155</size>
+      </method>
+      <method name="Void RightShiftTest_5()">
+        <size>152</size>
+      </method>
+      <method name="Void QuoteTest_2()">
+        <size>99</size>
+      </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest&gt;c__AnonStorey2">
+    <type name="Tester+&lt;MemberAccessTest&gt;c__AnonStorey1">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest_3&gt;c__AnonStorey3">
+    <type name="Tester+&lt;MemberAccessTest_3&gt;c__AnonStorey2">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest_4&gt;c__AnonStorey4">
+    <type name="Tester+&lt;MemberAccessTest_4&gt;c__AnonStorey3">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest_6&gt;c__AnonStorey5">
+    <type name="Tester+&lt;MemberAccessTest_6&gt;c__AnonStorey4">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest_9&gt;c__AnonStorey6">
+    <type name="Tester+&lt;MemberAccessTest_9&gt;c__AnonStorey5">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
     <type name="Tester">
-      <method name="Void EqualTest_15()">
-        <size>159</size>
+      <method name="Void NewTest_7()">
+        <size>53</size>
       </method>
     </type>
   </test>
       <method name="Void Foo[T](System.Linq.Expressions.Expression`1[System.Func`2[T,T]])">
         <size>1</size>
       </method>
-      <method name="Void Main()">
-        <size>129</size>
+      <method name="System.String Param(System.String)">
+        <size>114</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>157</size>
+      </method>
+    </type>
+    <type name="M+&lt;Param&gt;c__AnonStorey0">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
         <size>56</size>
       </method>
       <method name="Int32 Main()">
-        <size>360</size>
+        <size>350</size>
       </method>
     </type>
   </test>
         <size>3</size>
       </method>
       <method name="Int32 Main()">
-        <size>594</size>
+        <size>564</size>
       </method>
     </type>
     <type name="EmptyDelegate">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>299</size>
+        <size>300</size>
       </method>
       <method name="System.Int64[] GetValues()">
-        <size>23</size>
+        <size>18</size>
       </method>
     </type>
     <type name="Mono.C+&lt;Main&gt;c__AnonStorey0">
         <size>7</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-etree-10.cs">
     <type name="Foo`1[T]">
         <size>7</size>
       </method>
       <method name="Boolean ContainsAll[U](IEnumerable`1)">
-        <size>184</size>
+        <size>189</size>
       </method>
       <method name="Boolean Contains(T)">
         <size>2</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>44</size>
+        <size>42</size>
       </method>
     </type>
     <type name="Foo`1+&lt;ContainsAll&gt;c__AnonStorey0`1[T,U]">
         <size>7</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-etree-11.cs">
     <type name="C">
         <size>40</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>103</size>
+        <size>108</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>52</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>288</size>
+        <size>293</size>
       </method>
       <method name="Void Dispose()">
         <size>60</size>
       </method>
     </type>
   </test>
+  <test name="gtest-etree-20.cs">
+    <type name="S">
+      <method name="Int32 Main()">
+        <size>215</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="A op_Implicit(S)">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-exmethod-01.cs">
     <type name="SimpleTest">
       <method name="System.String Prefix(System.String, System.String)">
       </method>
     </type>
   </test>
+  <test name="gtest-exmethod-29.cs">
+    <type name="My">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>40</size>
+      </method>
+      <method name="Int32 ContentTransferEncoding[T](My)">
+        <size>2</size>
+      </method>
+      <method name="Int32 ContentTransferEncoding(My)">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="My">
+      <method name="Void set_ContentTransferEncoding(Boolean)">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-30.cs">
+    <type name="Test">
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_First()">
+        <size>2</size>
+      </method>
+      <method name="IEnumerator`1 GetEnumerator()">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test()">
+        <size>14</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-31.cs">
+    <type name="N.S">
+      <method name="Void Map[T](Int32, System.Func`2[T,System.String])">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="N2.S2">
+      <method name="Void Map(Int32, Int32)">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="M.C">
+      <method name="Void Main()">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-friend-01.cs">
     <type name="Test">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>282</size>
+        <size>280</size>
       </method>
     </type>
     <type name="&lt;PrivateImplementationDetails&gt;">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>54</size>
+        <size>53</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>183</size>
+        <size>184</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>94</size>
+        <size>78</size>
       </method>
     </type>
     <type name="Test+&lt;Create&gt;c__Iterator0`1[T]">
         <size>40</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-iter-10.cs">
     <type name="Test">
       </method>
     </type>
   </test>
-  <test name="gtest-linq-01.cs">
-    <type name="from.C">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Main()">
-        <size>2137</size>
-      </method>
-      <method name="Void Foo(Int32, Boolean)">
-        <size>11</size>
+  <test name="gtest-iter-12.cs">
+    <type name="H">
+      <method name="Void Main(System.String[])">
+        <size>1</size>
       </method>
-      <method name="Void Do(System.String[])">
-        <size>16</size>
+      <method name="IEnumerable`1 Merge[T](IEnumerator`1)">
+        <size>30</size>
       </method>
-    </type>
-    <type name="from.D">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean check(System.Object, System.Object)">
-        <size>26</size>
-      </method>
     </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;i&gt;__T,&lt;j&gt;__T]">
-      <method name="Void .ctor(&lt;i&gt;__T, &lt;j&gt;__T)">
-        <size>21</size>
-      </method>
-      <method name="&lt;i&gt;__T get_i()">
+    <type name="H+&lt;Merge&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()">
         <size>7</size>
       </method>
-      <method name="&lt;j&gt;__T get_j()">
-        <size>7</size>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>12</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()">
+        <size>40</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="Boolean MoveNext()">
+        <size>117</size>
       </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;i&gt;__T,&lt;l&gt;__T]">
-      <method name="Void .ctor(&lt;i&gt;__T, &lt;l&gt;__T)">
-        <size>21</size>
+      <method name="Void Dispose()">
+        <size>8</size>
       </method>
-      <method name="&lt;i&gt;__T get_i()">
-        <size>7</size>
+      <method name="Void Reset()">
+        <size>6</size>
       </method>
-      <method name="&lt;l&gt;__T get_l()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+    </type>
+  </test>
+  <test name="gtest-iter-13.cs">
+    <type name="C`1[T]">
+      <method name="IEnumerator GetEnumerator()">
+        <size>12</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+      <method name="IEnumerable`1 Filter(System.Func`2[T,System.Boolean])">
+        <size>37</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType3`2[&lt;i9&gt;__T,&lt;i&gt;__T]">
-      <method name="Void .ctor(&lt;i9&gt;__T, &lt;i&gt;__T)">
-        <size>21</size>
+    <type name="M">
+      <method name="Void Main()">
+        <size>57</size>
       </method>
-      <method name="&lt;i9&gt;__T get_i9()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="&lt;i&gt;__T get_i()">
+    </type>
+    <type name="C`1+&lt;Filter&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>12</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()">
+        <size>52</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>203</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>62</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="from.C">
+  </test>
+  <test name="gtest-lambda-01.cs">
+    <type name="X">
+      <method name="Int32 Main()">
+        <size>300</size>
+      </method>
       <method name="Int32 &lt;Main&gt;m__0(Int32)">
-        <size>2</size>
+        <size>4</size>
       </method>
       <method name="Int32 &lt;Main&gt;m__1(Int32)">
-        <size>2</size>
+        <size>4</size>
       </method>
-      <method name="Nullable`1 &lt;Main&gt;m__2(Nullable`1)">
-        <size>2</size>
+      <method name="Void &lt;Main&gt;m__3(Int32)">
+        <size>8</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__3(Int32)">
-        <size>2</size>
+      <method name="Void .ctor(Int32)">
+        <size>13</size>
       </method>
     </type>
-    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerable`1 &lt;&gt;m__4(Int32)">
-        <size>7</size>
+    <type name="IntFunc">
+      <method name="Int32 Invoke(Int32)">
+        <size>0</size>
       </method>
-    </type>
-    <type name="from.C">
-      <method name="Int32 &lt;Main&gt;m__5(Int32, Int32)">
-        <size>2</size>
+      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__6(Int32)">
-        <size>10</size>
+      <method name="Int32 EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__7(Int32)">
-        <size>2</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__8(Int32)">
-        <size>2</size>
+    </type>
+    <type name="VoidFunc">
+      <method name="Void Invoke(Int32)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__9(Int32)">
-        <size>2</size>
+      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__A(Int32)">
-        <size>2</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__B(Int32)">
-        <size>2</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__C(Int32)">
-        <size>2</size>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__2(Int32)">
+        <size>8</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1B(Int32)">
-        <size>2</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1E(Int32)">
-        <size>2</size>
+    </type>
+  </test>
+  <test name="gtest-lambda-02.cs">
+    <type name="X">
+      <method name="Void Foo(funci)">
+        <size>16</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__20(Int32)">
-        <size>2</size>
+      <method name="Void Foo(funcs)">
+        <size>19</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__21(Int32)">
-        <size>2</size>
+      <method name="Void Main()">
+        <size>35</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__25(Int32)">
-        <size>10</size>
+      <method name="System.String &lt;Main&gt;m__0(System.String)">
+        <size>12</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__D(ITest)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__E(Int32, ITest)">
-        <size>2</size>
+    </type>
+    <type name="funcs">
+      <method name="System.String Invoke(System.String)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__F(Int32)">
-        <size>2</size>
+      <method name="IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__10(ITest)">
-        <size>7</size>
+      <method name="System.String EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__11(Int32, ITest)">
-        <size>2</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__12(Int32)">
-        <size>2</size>
+    </type>
+    <type name="funci">
+      <method name="Int32 Invoke(Int32)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__13(ITest)">
-        <size>7</size>
+      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,from.ITest] &lt;Main&gt;m__14(Int32, ITest)">
+      <method name="Int32 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-03.cs">
+    <type name="Demo">
+      <method name="Y F[X,Y](Int32, X, Func`2[X,Y])">
         <size>8</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__15(&lt;&gt;__AnonType0`2[System.Int32,from.ITest])">
-        <size>7</size>
+      <method name="Int32 Main()">
+        <size>54</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__16(ITest)">
+      <method name="TimeSpan &lt;Main&gt;m__0(System.String)">
         <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__17(&lt;&gt;__AnonType0`2[System.Int32,from.ITest], ITest)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__18(Int32)">
-        <size>2</size>
+    </type>
+    <type name="Func`2[TArg0,TResult]">
+      <method name="TResult Invoke(TArg0)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__19(Int32)">
-        <size>2</size>
+      <method name="IAsyncResult BeginInvoke(TArg0, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1A(Int32, IEnumerable`1)">
-        <size>2</size>
+      <method name="TResult EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1C(Int32)">
-        <size>2</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1D(Int32, IEnumerable`1)">
-        <size>2</size>
+    </type>
+  </test>
+  <test name="gtest-lambda-04.cs">
+    <type name="Demo">
+      <method name="Z F[X,Y,Z](X, Func`2[X,Y], Func`2[Y,Z])">
+        <size>14</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1F(Int32)">
-        <size>2</size>
+      <method name="Int32 Main()">
+        <size>103</size>
       </method>
-      <method name="IGrouping`2 &lt;Main&gt;m__22(IGrouping`2)">
-        <size>2</size>
+      <method name="TimeSpan &lt;Main&gt;m__0(System.String)">
+        <size>7</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__23(Int32)">
-        <size>10</size>
+      <method name="Double &lt;Main&gt;m__1(TimeSpan)">
+        <size>8</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__24(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__26(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])">
-        <size>15</size>
+    </type>
+    <type name="Func`2[TArg0,TResult]">
+      <method name="TResult Invoke(TArg0)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__27(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])">
-        <size>12</size>
+      <method name="IAsyncResult BeginInvoke(TArg0, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__28(Int32)">
-        <size>2</size>
+      <method name="TResult EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__29(Int32)">
-        <size>2</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__2B(IGrouping`2, Int32)">
+    </type>
+  </test>
+  <test name="gtest-lambda-05.cs">
+    <type name="C">
+      <method name="Boolean M(C+db)">
         <size>8</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__2C(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
-        <size>2</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2D(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
-        <size>7</size>
+      <method name="System.String M(C+ds)">
+        <size>6</size>
       </method>
-      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__2F(IGrouping`2, Int32)">
+      <method name="Int32 M(C+di)">
         <size>8</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__30(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
-        <size>2</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__31(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
-        <size>7</size>
+      <method name="Int32 Main()">
+        <size>125</size>
       </method>
-      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__33(IGrouping`2, Int32)">
-        <size>8</size>
+      <method name="System.String &lt;Main&gt;m__0(System.String)">
+        <size>31</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__34(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
-        <size>2</size>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)">
+        <size>31</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__35(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IGrouping`2 &lt;Main&gt;m__36(IGrouping`2)">
-        <size>2</size>
+    </type>
+    <type name="C+di">
+      <method name="Int32 Invoke(Int32)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__37(Int32)">
-        <size>2</size>
+      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__38(Int32)">
-        <size>2</size>
+      <method name="Int32 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType2`2[&lt;&lt;&gt;__TranspIdent8&gt;__T,&lt;l2&gt;__T]">
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent8&gt;__T, &lt;l2&gt;__T)">
-        <size>21</size>
+    <type name="C+ds">
+      <method name="System.String Invoke(System.String)">
+        <size>0</size>
       </method>
-      <method name="&lt;&lt;&gt;__TranspIdent8&gt;__T get_&lt;&gt;__TranspIdent8()">
-        <size>7</size>
+      <method name="IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="&lt;l2&gt;__T get_l2()">
-        <size>7</size>
+      <method name="System.String EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+    </type>
+    <type name="C+db">
+      <method name="Boolean Invoke(Boolean)">
+        <size>0</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Boolean EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
-    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
-      <method name="IEnumerable`1 &lt;&gt;m__2A(IGrouping`2)">
-        <size>7</size>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.String &lt;&gt;m__2(System.String)">
+        <size>12</size>
       </method>
-      <method name="IEnumerable`1 &lt;&gt;m__2E(IGrouping`2)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IEnumerable`1 &lt;&gt;m__32(IGrouping`2)">
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey1">
+      <method name="Int32 &lt;&gt;m__3(Int32)">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="from.C">
-      <method name="Int32 &lt;Main&gt;m__39(Int32)">
-        <size>2</size>
+  </test>
+  <test name="gtest-lambda-06.cs">
+    <type name="TestClass">
+      <method name="Void P(TestClass+DT)">
+        <size>26</size>
       </method>
-      <method name="&lt;&gt;__AnonType4`2[&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]],System.Int32] &lt;Main&gt;m__3B(&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]])">
-        <size>9</size>
+      <method name="Void P(TestClass+DF)">
+        <size>26</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__3C(&lt;&gt;__AnonType4`2[&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]],System.Int32])">
-        <size>2</size>
+      <method name="T And(T, T)">
+        <size>10</size>
       </method>
-    </type>
-    <type name="&lt;&gt;__AnonType4`2[&lt;&lt;&gt;__TranspIdent13&gt;__T,&lt;l2&gt;__T]">
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent13&gt;__T, &lt;l2&gt;__T)">
-        <size>21</size>
+      <method name="F And(T, F)">
+        <size>10</size>
       </method>
-      <method name="&lt;&lt;&gt;__TranspIdent13&gt;__T get_&lt;&gt;__TranspIdent13()">
-        <size>7</size>
+      <method name="F And(F, T)">
+        <size>10</size>
       </method>
-      <method name="&lt;l2&gt;__T get_l2()">
-        <size>7</size>
+      <method name="F And(F, F)">
+        <size>10</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+      <method name="T Or(T, T)">
+        <size>10</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+      <method name="T Or(T, F)">
+        <size>10</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="T Or(F, T)">
+        <size>10</size>
       </method>
-    </type>
-    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
-      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]] &lt;&gt;m__3A(Int32)">
-        <size>47</size>
+      <method name="F Or(F, F)">
+        <size>10</size>
       </method>
-      <method name="Int32 &lt;&gt;m__3D(Int32)">
-        <size>2</size>
+      <method name="F Not(T)">
+        <size>10</size>
       </method>
-    </type>
-  </test>
-  <test name="gtest-linq-02.cs">
-    <type name="Test">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="T Not(F)">
+        <size>10</size>
+      </method>
+      <method name="Void StopTrue(T)">
+        <size>1</size>
       </method>
       <method name="Int32 Main()">
-        <size>501</size>
+        <size>36</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__0(Int32)">
-        <size>2</size>
+      <method name="Void &lt;Main&gt;m__0(F)">
+        <size>31</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)">
-        <size>3</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)">
-        <size>2</size>
+    </type>
+    <type name="TestClass+DT">
+      <method name="Void Invoke(T)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__3(Int32)">
-        <size>3</size>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-    </type>
-  </test>
-  <test name="gtest-linq-03.cs">
-    <type name="WhereTest">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Int32 Main()">
-        <size>179</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__0(Int32)">
-        <size>5</size>
+    </type>
+    <type name="TestClass+DF">
+      <method name="Void Invoke(F)">
+        <size>0</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__1(Int32)">
-        <size>5</size>
+      <method name="IAsyncResult BeginInvoke(F, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)">
-        <size>4</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-linq-04.cs">
-    <type name="TestGroupBy">
+    <type name="TestClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__1(T)">
+        <size>38</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>553</size>
-      </method>
     </type>
-    <type name="&lt;PrivateImplementationDetails&gt;">
+    <type name="TestClass+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__2(F)">
+        <size>77</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="TestGroupBy">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)">
-        <size>4</size>
+  </test>
+  <test name="gtest-lambda-07.cs">
+    <type name="C">
+      <method name="Void Test(D)">
+        <size>1</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)">
-        <size>2</size>
+      <method name="Void Test(System.Object, D)">
+        <size>1</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)">
-        <size>4</size>
+      <method name="Void Test(D, D)">
+        <size>1</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__3(Int32)">
-        <size>2</size>
+      <method name="Void Test2(System.Object, E)">
+        <size>1</size>
       </method>
-    </type>
-  </test>
-  <test name="gtest-linq-05.cs">
-    <type name="OrderByTests">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Void Main()">
+        <size>207</size>
       </method>
-      <method name="Int32 Main()">
-        <size>1254</size>
+      <method name="Void &lt;Main&gt;m__0()">
+        <size>1</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__1()">
+        <size>1</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__2()">
+        <size>1</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__3()">
+        <size>1</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__4()">
+        <size>1</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__5(Boolean)">
+        <size>1</size>
       </method>
-    </type>
-    <type name="OrderByTests+Data">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 get_ID()">
-        <size>7</size>
+    </type>
+    <type name="D">
+      <method name="Void Invoke()">
+        <size>0</size>
       </method>
-      <method name="Void set_ID(Int32)">
-        <size>8</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="System.String get_Name()">
-        <size>7</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Void set_Name(System.String)">
-        <size>8</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="System.String ToString()">
-        <size>28</size>
+    </type>
+    <type name="E">
+      <method name="Void Invoke(Boolean)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
-    <type name="OrderByTests">
+  </test>
+  <test name="gtest-lambda-08.cs">
+    <type name="C">
+      <method name="Void Test[T,R](System.Func`2[T,R])">
+        <size>1</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>321</size>
+      </method>
       <method name="Int32 &lt;Main&gt;m__0(Int32)">
-        <size>2</size>
+        <size>4</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)">
-        <size>2</size>
+      <method name="Boolean &lt;Main&gt;m__1(Int32)">
+        <size>5</size>
       </method>
       <method name="Int32 &lt;Main&gt;m__2(Int32)">
-        <size>2</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__3(Int32)">
         <size>4</size>
       </method>
-      <method name="System.String &lt;Main&gt;m__4(System.String)">
-        <size>2</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__5(System.String)">
-        <size>7</size>
+      <method name="Boolean &lt;Main&gt;m__3(Int32)">
+        <size>5</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__6(OrderByTests+Data)">
-        <size>7</size>
+      <method name="Int32 &lt;Main&gt;m__4(Int32)">
+        <size>4</size>
       </method>
-      <method name="System.String &lt;Main&gt;m__7(OrderByTests+Data)">
-        <size>7</size>
+      <method name="Boolean &lt;Main&gt;m__5(Int32)">
+        <size>5</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__8(OrderByTests+Data)">
-        <size>7</size>
+      <method name="Int32 &lt;Main&gt;m__6(Int32)">
+        <size>4</size>
       </method>
-      <method name="System.String &lt;Main&gt;m__9(OrderByTests+Data)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__A(OrderByTests+Data)">
-        <size>11</size>
+    </type>
+  </test>
+  <test name="gtest-lambda-09.cs">
+    <type name="C">
+      <method name="IEnumerable`1 Test[T](T)">
+        <size>2</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__B(OrderByTests+Data)">
-        <size>7</size>
+      <method name="IEnumerable`1 Test[T](Func`1[T])">
+        <size>2</size>
       </method>
-      <method name="System.String &lt;Main&gt;m__C(OrderByTests+Data)">
-        <size>7</size>
+      <method name="IEnumerable`1 Test2[T](Func`2[T,T])">
+        <size>2</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__D(OrderByTests+Data)">
-        <size>11</size>
+      <method name="Void Main()">
+        <size>113</size>
       </method>
-      <method name="System.String &lt;Main&gt;m__E(OrderByTests+Data)">
-        <size>7</size>
+      <method name="System.String &lt;Main&gt;m__0()">
+        <size>6</size>
       </method>
-      <method name="System.String &lt;Main&gt;m__F(OrderByTests+Data)">
-        <size>7</size>
+      <method name="System.String &lt;Main&gt;m__1()">
+        <size>6</size>
       </method>
-      <method name="OrderByTests+Data &lt;Main&gt;m__10(OrderByTests+Data)">
-        <size>2</size>
+      <method name="System.String &lt;Main&gt;m__2(System.String)">
+        <size>6</size>
       </method>
-    </type>
-  </test>
-  <test name="gtest-linq-06.cs">
-    <type name="Let">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>406</size>
-      </method>
     </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;i&gt;__T,&lt;u&gt;__T]">
-      <method name="Void .ctor(&lt;i&gt;__T, &lt;u&gt;__T)">
-        <size>21</size>
+    <type name="Func`1[TD]">
+      <method name="TD Invoke()">
+        <size>0</size>
       </method>
-      <method name="&lt;i&gt;__T get_i()">
-        <size>7</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="&lt;u&gt;__T get_u()">
-        <size>7</size>
+      <method name="TD EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+    </type>
+    <type name="Func`2[TA,TR]">
+      <method name="TR Invoke(TA)">
+        <size>0</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="TR EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
-    <type name="Let">
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__0(Int32)">
-        <size>10</size>
+  </test>
+  <test name="gtest-lambda-10.cs">
+    <type name="C">
+      <method name="Void Foo[TSource](IEnumerable`1)">
+        <size>1</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])">
-        <size>7</size>
+      <method name="Void Foo[TCollection,TSource](IEnumerable`1, System.Func`2[TSource,System.Collections.Generic.IEnumerable`1[TCollection]])">
+        <size>1</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__2(Int32)">
-        <size>10</size>
+      <method name="Void Foo[TCollection,TSource](IEnumerable`1, System.Func`3[TSource,TCollection[],System.Collections.Generic.IEnumerable`1[TCollection]])">
+        <size>1</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])">
-        <size>15</size>
+      <method name="Void Foo[TCollection,TSource](System.Func`2[TCollection[],System.Collections.Generic.IEnumerable`1[TSource]])">
+        <size>1</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__4(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32])">
-        <size>18</size>
+      <method name="Void Main()">
+        <size>97</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__5(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32])">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;v&gt;__T]">
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;v&gt;__T)">
-        <size>21</size>
-      </method>
-      <method name="&lt;&lt;&gt;__TranspIdent1&gt;__T get_&lt;&gt;__TranspIdent1()">
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="IEnumerable`1 &lt;&gt;m__0(Int32)">
         <size>7</size>
       </method>
-      <method name="&lt;v&gt;__T get_v()">
+      <method name="IEnumerable`1 &lt;&gt;m__1(Int32, System.Int32[])">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+      <method name="IEnumerable`1 &lt;&gt;m__2(System.Int32[])">
+        <size>7</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
-  <test name="gtest-linq-07.cs">
-    <type name="SelectMany">
+  <test name="gtest-lambda-11.cs">
+    <type name="Pair`2[T1,T2]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>748</size>
+    </type>
+    <type name="C">
+      <method name="Void Foo[TInput,TValue,TIntermediate](Group`2[TInput,TValue], System.Func`2[TValue,Group`2[TInput,TIntermediate]])">
+        <size>1</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;i1&gt;__T,&lt;i2&gt;__T]">
-      <method name="Void .ctor(&lt;i1&gt;__T, &lt;i2&gt;__T)">
-        <size>21</size>
+    <type name="E`1[TI]">
+      <method name="Void Rep1[TV](Group`2[TI,TV])">
+        <size>37</size>
       </method>
-      <method name="&lt;i1&gt;__T get_i1()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="&lt;i2&gt;__T get_i2()">
+    </type>
+    <type name="M">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+    </type>
+    <type name="Group`2[T1,T2]">
+      <method name="Pair`2[T1,T2] Invoke(T1)">
+        <size>0</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+      <method name="IAsyncResult BeginInvoke(T1, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="Pair`2[T1,T2] EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-    </type>
-    <type name="&lt;&gt;__AnonType2`3[&lt;pp&gt;__T,&lt;i1&gt;__T,&lt;i3&gt;__T]">
-      <method name="Void .ctor(&lt;pp&gt;__T, &lt;i1&gt;__T, &lt;i3&gt;__T)">
-        <size>28</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="&lt;pp&gt;__T get_pp()">
+    </type>
+    <type name="E`1+&lt;Rep1&gt;c__AnonStorey0`1[TI,TV]">
+      <method name="Group`2[TI,TV] &lt;&gt;m__0(TV)">
         <size>7</size>
       </method>
-      <method name="&lt;i1&gt;__T get_i1()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="&lt;i3&gt;__T get_i3()">
+    </type>
+  </test>
+  <test name="gtest-lambda-12.cs">
+    <type name="Demo">
+      <method name="Void F[T](T[], T, Func`1[T])">
+        <size>42</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>65</size>
+      </method>
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>96</size>
+    </type>
+    <type name="Func`1[TA]">
+      <method name="Void Invoke(TA)">
+        <size>0</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>109</size>
+      <method name="IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="System.String ToString()">
-        <size>199</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
-    <type name="SelectMany+&lt;Main&gt;c__AnonStorey0">
+    <type name="Demo+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(Int32)">
+        <size>10</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IEnumerable`1 &lt;&gt;m__0(Int32)">
-        <size>12</size>
+    </type>
+  </test>
+  <test name="gtest-lambda-13.cs">
+    <type name="TestUnary">
+      <method name="Void Foo(System.Action`1[System.Int32])">
+        <size>1</size>
       </method>
-      <method name="IEnumerable`1 &lt;&gt;m__3(Int32)">
-        <size>12</size>
+      <method name="Void Bar()">
+        <size>35</size>
       </method>
-      <method name="IEnumerable`1 &lt;&gt;m__5(&lt;&gt;__AnonType0`2[System.Int32,System.String])">
-        <size>12</size>
+      <method name="Void &lt;Bar&gt;m__0(Int32)">
+        <size>6</size>
       </method>
-      <method name="IEnumerable`1 &lt;&gt;m__9(Int32)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="SelectMany">
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__1(Int32, System.String)">
-        <size>8</size>
+    <type name="Program">
+      <method name="Void Foo(System.Action`1[System.String])">
+        <size>12</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__2(Int32)">
-        <size>5</size>
+      <method name="T Foo[T](System.Func`2[System.String,T])">
+        <size>12</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__4(Int32, System.String)">
-        <size>8</size>
+      <method name="System.String Bar()">
+        <size>35</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32] &lt;Main&gt;m__6(&lt;&gt;__AnonType0`2[System.Int32,System.String], Int32)">
-        <size>8</size>
+      <method name="Void Main()">
+        <size>76</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__7(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32])">
+      <method name="System.String &lt;Bar&gt;m__1(System.String)">
         <size>7</size>
       </method>
-      <method name="&lt;&gt;__AnonType2`3[System.Int32,System.Int32,System.Int32] &lt;Main&gt;m__8(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32])">
-        <size>25</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__A(Int32, System.String)">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;i3&gt;__T]">
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;i3&gt;__T)">
-        <size>21</size>
+      <method name="System.String &lt;Main&gt;m__2(System.String)">
+        <size>2</size>
       </method>
-      <method name="&lt;&lt;&gt;__TranspIdent1&gt;__T get_&lt;&gt;__TranspIdent1()">
+      <method name="Void &lt;Main&gt;m__3(System.String)">
         <size>7</size>
       </method>
-      <method name="&lt;i3&gt;__T get_i3()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+    </type>
+  </test>
+  <test name="gtest-lambda-14.cs">
+    <type name="Test">
+      <method name="Void Main()">
+        <size>1</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+      <method name="Void Foo[T]()">
+        <size>14</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="T &lt;Foo`1&gt;m__0[T](T)">
+        <size>2</size>
       </method>
     </type>
   </test>
-  <test name="gtest-linq-08.cs">
-    <type name="TestA">
-      <method name="Void .ctor(String)">
-        <size>14</size>
+  <test name="gtest-lambda-15.cs">
+    <type name="Enumerable">
+      <method name="Int32 Sum[TSource](IEnumerable`1, System.Func`2[TSource,System.Int32])">
+        <size>32</size>
       </method>
-      <method name="System.String Select[U](System.Func`2[TestA,U])">
-        <size>7</size>
+      <method name="TR Sum[TA,TR](IEnumerable`1, System.Func`3[TR,TA,TR])">
+        <size>120</size>
       </method>
     </type>
-    <type name="TestB">
-      <method name="TestA Where(TestA, System.Func`2[TestA,System.Boolean])">
-        <size>25</size>
+    <type name="Repro">
+      <method name="Int32 Main()">
+        <size>115</size>
       </method>
-    </type>
-    <type name="CustomQueryExpressionPattern">
-      <method name="Void .ctor()">
+      <method name="Int32 &lt;Main&gt;m__1(System.String)">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>153</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="TestA &lt;Main&gt;m__0(TestA)">
-        <size>2</size>
+    </type>
+    <type name="Enumerable+&lt;Sum&gt;c__AnonStorey0`1[TSource]">
+      <method name="Int32 &lt;&gt;m__0(Int32, TSource)">
+        <size>15</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__1(TestA)">
-        <size>17</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
-  <test name="gtest-linq-09.cs">
-    <type name="Data">
+  <test name="gtest-lambda-16.cs">
+    <type name="Repro">
+      <method name="Void AssertFoo[T](IList`1)">
+        <size>34</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Join">
-      <method name="Void .ctor()">
+    <type name="Repro+Runner`1[T]">
+      <method name="Void .ctor(Action`1, T)">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>912</size>
-      </method>
     </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;Result&gt;__T]">
-      <method name="Void .ctor(&lt;Result&gt;__T)">
-        <size>14</size>
+    <type name="Repro+&lt;AssertFoo&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0(Int32)">
+        <size>52</size>
       </method>
-      <method name="&lt;Result&gt;__T get_Result()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()">
-        <size>67</size>
-      </method>
     </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;a&gt;__T,&lt;b&gt;__T]">
-      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)">
-        <size>21</size>
+  </test>
+  <test name="gtest-lambda-17.cs">
+    <type name="TestCase">
+      <method name="Void Testing()">
+        <size>75</size>
       </method>
-      <method name="&lt;a&gt;__T get_a()">
-        <size>7</size>
+      <method name="Void Main()">
+        <size>11</size>
       </method>
-      <method name="&lt;b&gt;__T get_b()">
+      <method name="Void &lt;Testing&gt;m__0()">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+    </type>
+  </test>
+  <test name="gtest-lambda-18.cs">
+    <type name="Test">
+      <method name="Void Foo[T1,T2,TResult](T1, T2, System.Func`3[T1,T2,TResult])">
+        <size>33</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+      <method name="Void Bar[T1,T2,TResult](T1, T2, System.Func`4[T1,T2,System.Int32,TResult])">
+        <size>1</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="Void Main()">
+        <size>1</size>
       </method>
     </type>
-    <type name="Join">
-      <method name="Int32 &lt;Main&gt;m__0(Data)">
+    <type name="Test+&lt;Foo&gt;c__AnonStorey0`3[T1,T2,TResult]">
+      <method name="TResult &lt;&gt;m__0(T1, T2, Int32)">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1(Data)">
+    </type>
+  </test>
+  <test name="gtest-lambda-19.cs">
+    <type name="Crasher">
+      <method name="Void Crash()">
+        <size>36</size>
+      </method>
+      <method name="Void Do(System.Action)">
+        <size>1</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__2(Data, Data)">
-        <size>23</size>
+    </type>
+    <type name="Crasher+&lt;Crash&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()">
+        <size>27</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__3(Data)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__4(Data)">
+    </type>
+  </test>
+  <test name="gtest-lambda-20.cs">
+    <type name="Z">
+      <method name="Void &lt;Z&gt;m__0()">
         <size>7</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[Data,Data] &lt;Main&gt;m__5(Data, Data)">
-        <size>8</size>
+      <method name="Void .ctor()">
+        <size>37</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__6(&lt;&gt;__AnonType1`2[Data,Data])">
-        <size>22</size>
+    </type>
+    <type name="Test">
+      <method name="Boolean Foo()">
+        <size>2</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__7(&lt;&gt;__AnonType1`2[Data,Data])">
-        <size>33</size>
+      <method name="Void Main()">
+        <size>1</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__8(Data)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__9(Data)">
-        <size>7</size>
+    </type>
+    <type name="TestMethod">
+      <method name="Void Invoke()">
+        <size>0</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__A(Data, Data)">
-        <size>23</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__B(Data)">
-        <size>7</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__C(Data)">
-        <size>7</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[Data,Data] &lt;Main&gt;m__D(Data, Data)">
-        <size>8</size>
+    </type>
+  </test>
+  <test name="gtest-lambda-21.cs">
+    <type name="Program">
+      <method name="Void Foo(System.Action`1[System.String])">
+        <size>12</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__E(&lt;&gt;__AnonType1`2[Data,Data])">
+      <method name="T Foo[T](System.Func`2[System.String,T])">
         <size>12</size>
       </method>
-      <method name="Data &lt;Main&gt;m__F(&lt;&gt;__AnonType1`2[Data,Data])">
+      <method name="System.String Bar()">
+        <size>35</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>95</size>
+      </method>
+      <method name="System.String &lt;Bar&gt;m__0(System.String)">
         <size>7</size>
       </method>
-    </type>
-  </test>
-  <test name="gtest-linq-10.cs">
-    <type name="DataA">
-      <method name="Void .ctor()">
+      <method name="System.String &lt;Main&gt;m__1(System.String)">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__2(System.String)">
         <size>7</size>
       </method>
-    </type>
-    <type name="DataB">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="GroupJoin">
+  </test>
+  <test name="gtest-lambda-22.cs">
+    <type name="Product">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>631</size>
-      </method>
     </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;ab&gt;__T]">
-      <method name="Void .ctor(&lt;a&gt;__T, &lt;ab&gt;__T)">
-        <size>21</size>
-      </method>
-      <method name="&lt;a&gt;__T get_a()">
-        <size>7</size>
+    <type name="MainClass">
+      <method name="Void Main()">
+        <size>136</size>
       </method>
-      <method name="&lt;ab&gt;__T get_ab()">
+      <method name="Int32 &lt;Main&gt;m__0(Product)">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
+      <method name="Product &lt;Main&gt;m__1(Product)">
+        <size>2</size>
       </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
+      <method name="&lt;&gt;__AnonType0`2[System.Linq.IGrouping`2[System.Int32,Product],System.Collections.Generic.IEnumerable`1[Product]] &lt;Main&gt;m__2(IGrouping`2)">
+        <size>48</size>
       </method>
-      <method name="System.String ToString()">
-        <size>142</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;a&gt;__T,&lt;b&gt;__T]">
-      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)">
-        <size>21</size>
-      </method>
-      <method name="&lt;a&gt;__T get_a()">
+    <type name="&lt;&gt;__AnonType0`2[&lt;g&gt;__T,&lt;ExpensiveProducts&gt;__T]">
+      <method name="&lt;g&gt;__T get_g()">
         <size>7</size>
       </method>
-      <method name="&lt;b&gt;__T get_b()">
+      <method name="&lt;ExpensiveProducts&gt;__T get_ExpensiveProducts()">
         <size>7</size>
       </method>
       <method name="Boolean Equals(System.Object)">
       <method name="System.String ToString()">
         <size>142</size>
       </method>
+      <method name="Void .ctor(&lt;g&gt;__T, &lt;ExpensiveProducts&gt;__T)">
+        <size>21</size>
+      </method>
     </type>
-    <type name="GroupJoin">
-      <method name="Int32 &lt;Main&gt;m__0(DataA)">
+    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="Boolean &lt;&gt;m__3(Product)">
+        <size>52</size>
+      </method>
+      <method name="Decimal &lt;&gt;m__4(Product)">
         <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1(DataB)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]] &lt;Main&gt;m__2(DataA, IEnumerable`1)">
-        <size>8</size>
+    </type>
+  </test>
+  <test name="gtest-lambda-23.cs">
+    <type name="C">
+      <method name="U Test[T,U](T[], System.Func`2[T,U])">
+        <size>14</size>
       </method>
-      <method name="IEnumerable`1 &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]])">
-        <size>12</size>
+      <method name="Int32 Main()">
+        <size>77</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[System.String,System.String] &lt;Main&gt;m__4(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]], DataB)">
-        <size>39</size>
+      <method name="System.String &lt;Main&gt;m__0(System.String)">
+        <size>27</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__5(DataA)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__6(DataB)">
+    </type>
+  </test>
+  <test name="gtest-linq-01.cs">
+    <type name="from.C">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]] &lt;Main&gt;m__7(DataA, IEnumerable`1)">
-        <size>8</size>
+      <method name="Void Main()">
+        <size>2137</size>
       </method>
-      <method name="IEnumerable`1 &lt;Main&gt;m__8(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]])">
-        <size>12</size>
+      <method name="Void Foo(Int32, Boolean)">
+        <size>11</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[System.String,System.String] &lt;Main&gt;m__9(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]], DataB)">
-        <size>39</size>
+      <method name="Void Do(System.String[])">
+        <size>16</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-linq-11.cs">
-    <type name="IntoTest">
+    <type name="from.D">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>275</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__0(Int32)">
-        <size>5</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)">
-        <size>5</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)">
-        <size>4</size>
+      <method name="Boolean check(System.Object, System.Object)">
+        <size>26</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__3(Int32)">
-        <size>5</size>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;i&gt;__T,&lt;j&gt;__T]">
+      <method name="Void .ctor(&lt;i&gt;__T, &lt;j&gt;__T)">
+        <size>21</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__4(Int32)">
-        <size>4</size>
+      <method name="&lt;i&gt;__T get_i()">
+        <size>7</size>
       </method>
-    </type>
-  </test>
-  <test name="gtest-linq-12.cs">
-    <type name="NestedQuery">
-      <method name="Void .ctor()">
+      <method name="&lt;j&gt;__T get_j()">
         <size>7</size>
       </method>
-      <method name="Void XX()">
-        <size>108</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
       </method>
-      <method name="Int32 Main()">
-        <size>464</size>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;values&gt;__T,&lt;length&gt;__T]">
-      <method name="Void .ctor(&lt;values&gt;__T, &lt;length&gt;__T)">
+    <type name="&lt;&gt;__AnonType1`2[&lt;i&gt;__T,&lt;l&gt;__T]">
+      <method name="Void .ctor(&lt;i&gt;__T, &lt;l&gt;__T)">
         <size>21</size>
       </method>
-      <method name="&lt;values&gt;__T get_values()">
+      <method name="&lt;i&gt;__T get_i()">
         <size>7</size>
       </method>
-      <method name="&lt;length&gt;__T get_length()">
+      <method name="&lt;l&gt;__T get_l()">
         <size>7</size>
       </method>
       <method name="Boolean Equals(System.Object)">
         <size>142</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;type&gt;__T,&lt;x&gt;__T]">
-      <method name="Void .ctor(&lt;type&gt;__T, &lt;x&gt;__T)">
+    <type name="&lt;&gt;__AnonType3`2[&lt;i9&gt;__T,&lt;i&gt;__T]">
+      <method name="Void .ctor(&lt;i9&gt;__T, &lt;i&gt;__T)">
         <size>21</size>
       </method>
-      <method name="&lt;type&gt;__T get_type()">
+      <method name="&lt;i9&gt;__T get_i9()">
         <size>7</size>
       </method>
-      <method name="&lt;x&gt;__T get_x()">
+      <method name="&lt;i&gt;__T get_i()">
         <size>7</size>
       </method>
       <method name="Boolean Equals(System.Object)">
         <size>142</size>
       </method>
     </type>
-    <type name="NestedQuery">
-      <method name="&lt;&gt;__AnonType0`2[System.String,System.Int32] &lt;XX&gt;m__0(System.String)">
-        <size>13</size>
+    <type name="from.C">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Nullable`1 &lt;Main&gt;m__2(Nullable`1)">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3(Int32)">
+        <size>2</size>
       </method>
     </type>
-    <type name="NestedQuery+&lt;XX&gt;c__AnonStorey0">
+    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-    </type>
-    <type name="NestedQuery+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()">
+      <method name="IEnumerable`1 &lt;&gt;m__4(Int32)">
         <size>7</size>
       </method>
     </type>
-    <type name="NestedQuery">
-      <method name="IEnumerable`1 &lt;XX&gt;m__1(&lt;&gt;__AnonType0`2[System.String,System.Int32])">
-        <size>110</size>
+    <type name="from.C">
+      <method name="Int32 &lt;Main&gt;m__5(Int32, Int32)">
+        <size>2</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__2(System.String)">
+      <method name="Boolean &lt;Main&gt;m__6(Int32)">
         <size>10</size>
       </method>
-      <method name="IEnumerable`1 &lt;Main&gt;m__3(System.String)">
-        <size>36</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.String,System.Int32] &lt;Main&gt;m__4(System.String)">
-        <size>13</size>
+      <method name="Int32 &lt;Main&gt;m__7(Int32)">
+        <size>2</size>
       </method>
-      <method name="IEnumerable`1 &lt;Main&gt;m__5(&lt;&gt;__AnonType0`2[System.String,System.Int32])">
-        <size>110</size>
+      <method name="Int32 &lt;Main&gt;m__8(Int32)">
+        <size>2</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Char,System.Int32] &lt;XX&gt;m__6(Char)">
-        <size>9</size>
+      <method name="Int32 &lt;Main&gt;m__9(Int32)">
+        <size>2</size>
       </method>
-      <method name="Char &lt;XX&gt;m__8(&lt;&gt;__AnonType1`2[System.Char,System.Int32])">
-        <size>7</size>
+      <method name="Int32 &lt;Main&gt;m__A(Int32)">
+        <size>2</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__9(Char)">
-        <size>6</size>
+      <method name="Int32 &lt;Main&gt;m__B(Int32)">
+        <size>2</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Char,System.Int32] &lt;Main&gt;m__A(Char)">
-        <size>9</size>
+      <method name="Int32 &lt;Main&gt;m__C(Int32)">
+        <size>2</size>
       </method>
-      <method name="Char &lt;Main&gt;m__C(&lt;&gt;__AnonType1`2[System.Char,System.Int32])">
-        <size>7</size>
+      <method name="Int32 &lt;Main&gt;m__1B(Int32)">
+        <size>2</size>
       </method>
-    </type>
-    <type name="NestedQuery+&lt;XX&gt;c__AnonStorey0">
-      <method name="Boolean &lt;&gt;m__7(&lt;&gt;__AnonType1`2[System.Char,System.Int32])">
-        <size>15</size>
+      <method name="Int32 &lt;Main&gt;m__1E(Int32)">
+        <size>2</size>
       </method>
-    </type>
-    <type name="NestedQuery+&lt;Main&gt;c__AnonStorey1">
-      <method name="Boolean &lt;&gt;m__B(&lt;&gt;__AnonType1`2[System.Char,System.Int32])">
-        <size>15</size>
+      <method name="Int32 &lt;Main&gt;m__20(Int32)">
+        <size>2</size>
       </method>
-    </type>
-  </test>
-  <test name="gtest-linq-13.cs">
-    <type name="Program">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Int32 &lt;Main&gt;m__21(Int32)">
+        <size>2</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__25(Int32)">
+        <size>10</size>
       </method>
-      <method name="Void Foo(TypeDefinition)">
-        <size>47</size>
+      <method name="Int32 &lt;Main&gt;m__D(ITest)">
+        <size>7</size>
       </method>
-      <method name="MethodDefinition &lt;Foo&gt;m__0(MethodDefinition)">
+      <method name="Int32 &lt;Main&gt;m__E(Int32, ITest)">
         <size>2</size>
       </method>
-    </type>
-    <type name="Extension">
-      <method name="IEnumerable`1 Cast[T](IFoo)">
+      <method name="Int32 &lt;Main&gt;m__F(Int32)">
         <size>2</size>
       </method>
-    </type>
-    <type name="MethodDefinition">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TypeDefinition">
-      <method name="Void .ctor()">
+      <method name="Int32 &lt;Main&gt;m__10(ITest)">
         <size>7</size>
       </method>
-      <method name="MethodDefinitionCollection get_Methods()">
+      <method name="Int32 &lt;Main&gt;m__11(Int32, ITest)">
         <size>2</size>
       </method>
-      <method name="Void set_Methods(MethodDefinitionCollection)">
-        <size>1</size>
+      <method name="Int32 &lt;Main&gt;m__12(Int32)">
+        <size>2</size>
       </method>
-    </type>
-    <type name="MethodDefinitionCollection">
-      <method name="Void .ctor()">
+      <method name="Int32 &lt;Main&gt;m__13(ITest)">
         <size>7</size>
       </method>
-    </type>
-  </test>
-  <test name="gtest-linq-14.cs">
-    <type name="Person">
-      <method name="Void .ctor()">
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,from.ITest] &lt;Main&gt;m__14(Int32, ITest)">
+        <size>8</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__15(&lt;&gt;__AnonType0`2[System.Int32,from.ITest])">
         <size>7</size>
       </method>
-      <method name="Style get_Style()">
+      <method name="Int32 &lt;Main&gt;m__16(ITest)">
         <size>7</size>
       </method>
-      <method name="Void set_Style(Style)">
-        <size>8</size>
+      <method name="Int32 &lt;Main&gt;m__17(&lt;&gt;__AnonType0`2[System.Int32,from.ITest], ITest)">
+        <size>7</size>
       </method>
-    </type>
-    <type name="Extensions">
-      <method name="IMarker`1 Cast[T](IObjectContainer)">
+      <method name="Int32 &lt;Main&gt;m__18(Int32)">
         <size>2</size>
       </method>
-      <method name="IMarker`1 Where[T](IMarker`1, System.Linq.Expressions.Expression`1[System.Func`2[T,System.Boolean]])">
+      <method name="Int32 &lt;Main&gt;m__19(Int32)">
         <size>2</size>
       </method>
-    </type>
-    <type name="Program">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Int32 &lt;Main&gt;m__1A(Int32, IEnumerable`1)">
+        <size>2</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="Int32 &lt;Main&gt;m__1C(Int32)">
+        <size>2</size>
       </method>
-      <method name="Void Assert(System.Action)">
-        <size>1</size>
+      <method name="Int32 &lt;Main&gt;m__1D(Int32, IEnumerable`1)">
+        <size>2</size>
       </method>
-      <method name="Void Test(IObjectContainer, Style)">
-        <size>38</size>
+      <method name="Int32 &lt;Main&gt;m__1F(Int32)">
+        <size>2</size>
       </method>
-    </type>
-    <type name="Program+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="IGrouping`2 &lt;Main&gt;m__22(IGrouping`2)">
+        <size>2</size>
       </method>
-      <method name="Void &lt;&gt;m__0()">
-        <size>117</size>
+      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__23(Int32)">
+        <size>10</size>
       </method>
-    </type>
-  </test>
-  <test name="gtest-linq-15.cs">
-    <type name="NameCollisionTest.Data">
-      <method name="Void .ctor()">
+      <method name="Int32 &lt;Main&gt;m__24(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])">
         <size>7</size>
       </method>
-    </type>
-    <type name="NameCollisionTest.Ex">
-      <method name="IEnumerable`1 Foo[T,TR](IEnumerable`1, System.Func`2[T,TR])">
-        <size>44</size>
+      <method name="&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__26(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])">
+        <size>15</size>
       </method>
-    </type>
-    <type name="NameCollisionTest.C">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Int32 &lt;Main&gt;m__27(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])">
+        <size>12</size>
       </method>
-      <method name="Void Main()">
-        <size>78</size>
+      <method name="Int32 &lt;Main&gt;m__28(Int32)">
+        <size>2</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__0(NameCollisionTest.Data)">
+      <method name="Int32 &lt;Main&gt;m__29(Int32)">
+        <size>2</size>
+      </method>
+      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__2B(IGrouping`2, Int32)">
+        <size>8</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2C(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2D(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
         <size>7</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__1(Int32)">
-        <size>5</size>
+      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__2F(IGrouping`2, Int32)">
+        <size>8</size>
       </method>
-    </type>
-    <type name="NameCollisionTest.Ex+&lt;Foo&gt;c__Iterator0`2[T,TR]">
-      <method name="Void .ctor()">
+      <method name="Int32 &lt;Main&gt;m__30(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__31(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
         <size>7</size>
       </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>12</size>
+      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__33(IGrouping`2, Int32)">
+        <size>8</size>
       </method>
-      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+      <method name="Int32 &lt;Main&gt;m__34(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__35(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])">
         <size>7</size>
       </method>
-      <method name="Boolean MoveNext()">
-        <size>86</size>
+      <method name="IGrouping`2 &lt;Main&gt;m__36(IGrouping`2)">
+        <size>2</size>
       </method>
-      <method name="Void Dispose()">
-        <size>8</size>
+      <method name="Int32 &lt;Main&gt;m__37(Int32)">
+        <size>2</size>
       </method>
-      <method name="Void Reset()">
-        <size>6</size>
+      <method name="Int32 &lt;Main&gt;m__38(Int32)">
+        <size>2</size>
       </method>
-      <method name="TR System.Collections.Generic.IEnumerator&lt;TR&gt;.get_Current()">
+    </type>
+    <type name="&lt;&gt;__AnonType2`2[&lt;&lt;&gt;__TranspIdent8&gt;__T,&lt;l2&gt;__T]">
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent8&gt;__T, &lt;l2&gt;__T)">
+        <size>21</size>
+      </method>
+      <method name="&lt;&lt;&gt;__TranspIdent8&gt;__T get_&lt;&gt;__TranspIdent8()">
         <size>7</size>
       </method>
-      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;TR&gt;.GetEnumerator()">
-        <size>52</size>
+      <method name="&lt;l2&gt;__T get_l2()">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-linq-16.cs">
-    <type name="C">
-      <method name="Void .ctor()">
+    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
+      <method name="IEnumerable`1 &lt;&gt;m__2A(IGrouping`2)">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>12</size>
+      <method name="IEnumerable`1 &lt;&gt;m__2E(IGrouping`2)">
+        <size>7</size>
       </method>
-      <method name="Void Test_1(Int32)">
-        <size>27</size>
+      <method name="IEnumerable`1 &lt;&gt;m__32(IGrouping`2)">
+        <size>7</size>
       </method>
-      <method name="Void Test_2()">
-        <size>31</size>
+    </type>
+    <type name="from.C">
+      <method name="Int32 &lt;Main&gt;m__39(Int32)">
+        <size>2</size>
       </method>
-      <method name="System.Func`1[System.Collections.Generic.IEnumerable`1[System.Int32]] &lt;Test_2&gt;m__1(Int32)">
-        <size>26</size>
+      <method name="&lt;&gt;__AnonType4`2[&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]],System.Int32] &lt;Main&gt;m__3B(&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]])">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3C(&lt;&gt;__AnonType4`2[&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]],System.Int32])">
+        <size>2</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;b&gt;__T]">
-      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)">
+    <type name="&lt;&gt;__AnonType4`2[&lt;&lt;&gt;__TranspIdent13&gt;__T,&lt;l2&gt;__T]">
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent13&gt;__T, &lt;l2&gt;__T)">
         <size>21</size>
       </method>
-      <method name="&lt;a&gt;__T get_a()">
+      <method name="&lt;&lt;&gt;__TranspIdent13&gt;__T get_&lt;&gt;__TranspIdent13()">
         <size>7</size>
       </method>
-      <method name="&lt;b&gt;__T get_b()">
+      <method name="&lt;l2&gt;__T get_l2()">
         <size>7</size>
       </method>
       <method name="Boolean Equals(System.Object)">
         <size>142</size>
       </method>
     </type>
-    <type name="C+&lt;Test_1&gt;c__AnonStorey0">
+    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
+      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]] &lt;&gt;m__3A(Int32)">
+        <size>47</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__3D(Int32)">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-02.cs">
+    <type name="Test">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IEnumerable`1 &lt;&gt;m__0()">
-        <size>67</size>
+      <method name="Int32 Main()">
+        <size>501</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;&gt;m__3(Int32)">
-        <size>8</size>
+      <method name="Int32 &lt;Main&gt;m__0(Int32)">
+        <size>2</size>
       </method>
-      <method name="Int32 &lt;&gt;m__4(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])">
-        <size>14</size>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)">
+        <size>3</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3(Int32)">
+        <size>3</size>
       </method>
     </type>
-    <type name="C+&lt;Test_2&gt;c__AnonStorey1">
+  </test>
+  <test name="gtest-linq-03.cs">
+    <type name="WhereTest">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IEnumerable`1 &lt;&gt;m__2()">
-        <size>67</size>
+      <method name="Int32 Main()">
+        <size>179</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;&gt;m__5(Int32)">
-        <size>8</size>
+      <method name="Boolean &lt;Main&gt;m__0(Int32)">
+        <size>5</size>
       </method>
-      <method name="Int32 &lt;&gt;m__6(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])">
-        <size>14</size>
+      <method name="Boolean &lt;Main&gt;m__1(Int32)">
+        <size>5</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)">
+        <size>4</size>
       </method>
     </type>
   </test>
-  <test name="gtest-linq-17.cs">
+  <test name="gtest-linq-04.cs">
     <type name="TestGroupBy">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>157</size>
+        <size>553</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
+    </type>
+    <type name="TestGroupBy">
       <method name="Int32 &lt;Main&gt;m__0(Int32)">
+        <size>4</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)">
+        <size>4</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3(Int32)">
         <size>2</size>
       </method>
     </type>
-    <type name="&lt;PrivateImplementationDetails&gt;">
+  </test>
+  <test name="gtest-linq-05.cs">
+    <type name="OrderByTests">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+      <method name="Int32 Main()">
+        <size>1254</size>
+      </method>
     </type>
-  </test>
-  <test name="gtest-linq-18.cs">
-    <type name="C">
+    <type name="OrderByTests+Data">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean Test(System.Func`2[System.Int32,System.Boolean])">
+      <method name="Int32 get_ID()">
+        <size>7</size>
+      </method>
+      <method name="Void set_ID(Int32)">
+        <size>8</size>
+      </method>
+      <method name="System.String get_Name()">
+        <size>7</size>
+      </method>
+      <method name="Void set_Name(System.String)">
+        <size>8</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>28</size>
+      </method>
+    </type>
+    <type name="OrderByTests">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)">
         <size>2</size>
       </method>
-      <method name="Boolean Test2(System.Func`2[System.Int32,System.Int32])">
+      <method name="Int32 &lt;Main&gt;m__1(Int32)">
         <size>2</size>
       </method>
-      <method name="Int32 Main()">
-        <size>652</size>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)">
+        <size>2</size>
       </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Boolean] &lt;Main&gt;m__0(Int32)">
-        <size>42</size>
+      <method name="Int32 &lt;Main&gt;m__3(Int32)">
+        <size>4</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Int32,System.Boolean])">
-        <size>11</size>
+      <method name="System.String &lt;Main&gt;m__4(System.String)">
+        <size>2</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Boolean])">
-        <size>31</size>
+      <method name="Int32 &lt;Main&gt;m__5(System.String)">
+        <size>7</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__3(Int32)">
-        <size>31</size>
+      <method name="Int32 &lt;Main&gt;m__6(OrderByTests+Data)">
+        <size>7</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__4(Int32)">
-        <size>31</size>
+      <method name="System.String &lt;Main&gt;m__7(OrderByTests+Data)">
+        <size>7</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__5(Int32)">
-        <size>31</size>
+      <method name="Int32 &lt;Main&gt;m__8(OrderByTests+Data)">
+        <size>7</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__6(Int32)">
-        <size>31</size>
+      <method name="System.String &lt;Main&gt;m__9(OrderByTests+Data)">
+        <size>7</size>
       </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__7(Int32)">
-        <size>10</size>
+      <method name="Boolean &lt;Main&gt;m__A(OrderByTests+Data)">
+        <size>11</size>
       </method>
-      <method name="&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__8(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])">
-        <size>15</size>
+      <method name="Int32 &lt;Main&gt;m__B(OrderByTests+Data)">
+        <size>7</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__9(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])">
-        <size>31</size>
+      <method name="System.String &lt;Main&gt;m__C(OrderByTests+Data)">
+        <size>7</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__A(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])">
-        <size>15</size>
+      <method name="Boolean &lt;Main&gt;m__D(OrderByTests+Data)">
+        <size>11</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__B(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])">
-        <size>12</size>
+      <method name="System.String &lt;Main&gt;m__E(OrderByTests+Data)">
+        <size>7</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__F(OrderByTests+Data)">
+        <size>7</size>
+      </method>
+      <method name="OrderByTests+Data &lt;Main&gt;m__10(OrderByTests+Data)">
+        <size>2</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;ck&gt;__T,&lt;xy&gt;__T]">
-      <method name="Void .ctor(&lt;ck&gt;__T, &lt;xy&gt;__T)">
+  </test>
+  <test name="gtest-linq-06.cs">
+    <type name="Let">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>406</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;i&gt;__T,&lt;u&gt;__T]">
+      <method name="Void .ctor(&lt;i&gt;__T, &lt;u&gt;__T)">
         <size>21</size>
       </method>
-      <method name="&lt;ck&gt;__T get_ck()">
+      <method name="&lt;i&gt;__T get_i()">
         <size>7</size>
       </method>
-      <method name="&lt;xy&gt;__T get_xy()">
+      <method name="&lt;u&gt;__T get_u()">
         <size>7</size>
       </method>
       <method name="Boolean Equals(System.Object)">
         <size>142</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;i&gt;__T,&lt;l&gt;__T]">
-      <method name="Void .ctor(&lt;i&gt;__T, &lt;l&gt;__T)">
+    <type name="Let">
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__0(Int32)">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])">
+        <size>7</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__2(Int32)">
+        <size>10</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__4(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32])">
+        <size>18</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__5(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32])">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;v&gt;__T]">
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;v&gt;__T)">
         <size>21</size>
       </method>
-      <method name="&lt;i&gt;__T get_i()">
+      <method name="&lt;&lt;&gt;__TranspIdent1&gt;__T get_&lt;&gt;__TranspIdent1()">
         <size>7</size>
       </method>
-      <method name="&lt;l&gt;__T get_l()">
+      <method name="&lt;v&gt;__T get_v()">
         <size>7</size>
       </method>
       <method name="Boolean Equals(System.Object)">
         <size>142</size>
       </method>
     </type>
-    <type name="&lt;PrivateImplementationDetails&gt;">
+  </test>
+  <test name="gtest-linq-07.cs">
+    <type name="SelectMany">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+      <method name="Int32 Main()">
+        <size>748</size>
+      </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()">
+    <type name="&lt;&gt;__AnonType0`2[&lt;i1&gt;__T,&lt;i2&gt;__T]">
+      <method name="Void .ctor(&lt;i1&gt;__T, &lt;i2&gt;__T)">
+        <size>21</size>
+      </method>
+      <method name="&lt;i1&gt;__T get_i1()">
         <size>7</size>
       </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()">
+      <method name="&lt;i2&gt;__T get_i2()">
         <size>7</size>
       </method>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
+      </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey2">
-      <method name="Void .ctor()">
+    <type name="&lt;&gt;__AnonType2`3[&lt;pp&gt;__T,&lt;i1&gt;__T,&lt;i3&gt;__T]">
+      <method name="Void .ctor(&lt;pp&gt;__T, &lt;i1&gt;__T, &lt;i3&gt;__T)">
+        <size>28</size>
+      </method>
+      <method name="&lt;pp&gt;__T get_pp()">
         <size>7</size>
       </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey3">
-      <method name="Void .ctor()">
+      <method name="&lt;i1&gt;__T get_i1()">
         <size>7</size>
       </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey4">
-      <method name="Void .ctor()">
+      <method name="&lt;i3&gt;__T get_i3()">
         <size>7</size>
       </method>
+      <method name="Boolean Equals(System.Object)">
+        <size>96</size>
+      </method>
+      <method name="Int32 GetHashCode()">
+        <size>109</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>199</size>
+      </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey5">
+    <type name="SelectMany+&lt;Main&gt;c__AnonStorey0">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey6">
-      <method name="Void .ctor()">
+      <method name="IEnumerable`1 &lt;&gt;m__0(Int32)">
+        <size>12</size>
+      </method>
+      <method name="IEnumerable`1 &lt;&gt;m__3(Int32)">
+        <size>12</size>
+      </method>
+      <method name="IEnumerable`1 &lt;&gt;m__5(&lt;&gt;__AnonType0`2[System.Int32,System.String])">
+        <size>12</size>
+      </method>
+      <method name="IEnumerable`1 &lt;&gt;m__9(Int32)">
         <size>7</size>
       </method>
     </type>
-    <type name="C">
-      <method name="Boolean &lt;Main&gt;m__C(Int32)">
-        <size>31</size>
+    <type name="SelectMany">
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__1(Int32, System.String)">
+        <size>8</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__D(Int32)">
-        <size>31</size>
+      <method name="Boolean &lt;Main&gt;m__2(Int32)">
+        <size>5</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__E(Int32, Int32)">
-        <size>2</size>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__4(Int32, System.String)">
+        <size>8</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__F(Int32)">
-        <size>31</size>
+      <method name="&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32] &lt;Main&gt;m__6(&lt;&gt;__AnonType0`2[System.Int32,System.String], Int32)">
+        <size>8</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__10(Int32)">
-        <size>31</size>
+      <method name="Int32 &lt;Main&gt;m__7(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32])">
+        <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__11(Int32, IEnumerable`1)">
-        <size>2</size>
+      <method name="&lt;&gt;__AnonType2`3[System.Int32,System.Int32,System.Int32] &lt;Main&gt;m__8(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32])">
+        <size>25</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__A(Int32, System.String)">
+        <size>8</size>
       </method>
     </type>
-    <type name="&lt;&gt;__AnonType2`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;g&gt;__T]">
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;g&gt;__T)">
+    <type name="&lt;&gt;__AnonType1`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;i3&gt;__T]">
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;i3&gt;__T)">
         <size>21</size>
       </method>
       <method name="&lt;&lt;&gt;__TranspIdent1&gt;__T get_&lt;&gt;__TranspIdent1()">
         <size>7</size>
       </method>
-      <method name="&lt;g&gt;__T get_g()">
+      <method name="&lt;i3&gt;__T get_i3()">
         <size>7</size>
       </method>
       <method name="Boolean Equals(System.Object)">
         <size>142</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Boolean &lt;&gt;m__12(Int32)">
-        <size>10</size>
+  </test>
+  <test name="gtest-linq-08.cs">
+    <type name="TestA">
+      <method name="Void .ctor(String)">
+        <size>14</size>
       </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey1">
-      <method name="Boolean &lt;&gt;m__13(Int32)">
-        <size>15</size>
+      <method name="System.String Select[U](System.Func`2[TestA,U])">
+        <size>7</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey2">
-      <method name="Boolean &lt;&gt;m__14(Int32)">
-        <size>10</size>
+    <type name="TestB">
+      <method name="TestA Where(TestA, System.Func`2[TestA,System.Boolean])">
+        <size>25</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey3">
-      <method name="Boolean &lt;&gt;m__15(Int32)">
-        <size>10</size>
+    <type name="CustomQueryExpressionPattern">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey4">
-      <method name="Int32 &lt;&gt;m__16(Int32)">
-        <size>9</size>
+      <method name="Int32 Main()">
+        <size>153</size>
       </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey5">
-      <method name="Int32 &lt;&gt;m__17(Int32)">
-        <size>9</size>
+      <method name="TestA &lt;Main&gt;m__0(TestA)">
+        <size>2</size>
       </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey6">
-      <method name="Boolean &lt;&gt;m__18(Int32)">
-        <size>20</size>
+      <method name="Boolean &lt;Main&gt;m__1(TestA)">
+        <size>17</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey7">
+  </test>
+  <test name="gtest-linq-09.cs">
+    <type name="Data">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean &lt;&gt;m__19(Int32)">
-        <size>10</size>
-      </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey8">
+    <type name="Join">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean &lt;&gt;m__1A(Int32)">
-        <size>10</size>
+      <method name="Int32 Main()">
+        <size>912</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey9">
-      <method name="Void .ctor()">
+    <type name="&lt;&gt;__AnonType0`1[&lt;Result&gt;__T]">
+      <method name="Void .ctor(&lt;Result&gt;__T)">
+        <size>14</size>
+      </method>
+      <method name="&lt;Result&gt;__T get_Result()">
         <size>7</size>
       </method>
-      <method name="Boolean &lt;&gt;m__1B(Int32)">
-        <size>10</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>39</size>
       </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStoreyA">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Int32 GetHashCode()">
+        <size>63</size>
       </method>
-      <method name="Boolean &lt;&gt;m__1C(Int32)">
-        <size>10</size>
+      <method name="System.String ToString()">
+        <size>67</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-linq-19.cs">
-    <type name="Test">
-      <method name="Void .ctor()">
+    <type name="&lt;&gt;__AnonType1`2[&lt;a&gt;__T,&lt;b&gt;__T]">
+      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)">
+        <size>21</size>
+      </method>
+      <method name="&lt;a&gt;__T get_a()">
         <size>7</size>
       </method>
-      <method name="Void .cctor()">
-        <size>45</size>
+      <method name="&lt;b&gt;__T get_b()">
+        <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
       </method>
-      <method name="Char &lt;Test&gt;m__0(Char)">
-        <size>2</size>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-named-01.cs">
-    <type name="C">
-      <method name="Int32 Test(Int32, Int32, System.String)">
-        <size>6</size>
+    <type name="Join">
+      <method name="Int32 &lt;Main&gt;m__0(Data)">
+        <size>7</size>
       </method>
-      <method name="T Foo[T](T, Int32)">
-        <size>2</size>
+      <method name="Int32 &lt;Main&gt;m__1(Data)">
+        <size>7</size>
       </method>
-      <method name="Void Lambda(System.Func`2[System.Int32,System.Int32])">
-        <size>9</size>
+      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__2(Data, Data)">
+        <size>23</size>
       </method>
-      <method name="Int32 Main()">
-        <size>173</size>
+      <method name="Int32 &lt;Main&gt;m__3(Data)">
+        <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__0(Int32)">
-        <size>2</size>
+      <method name="Int32 &lt;Main&gt;m__4(Data)">
+        <size>7</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[Data,Data] &lt;Main&gt;m__5(Data, Data)">
+        <size>8</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__6(&lt;&gt;__AnonType1`2[Data,Data])">
+        <size>22</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__7(&lt;&gt;__AnonType1`2[Data,Data])">
+        <size>33</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__8(Data)">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__9(Data)">
+        <size>7</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__A(Data, Data)">
+        <size>23</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__B(Data)">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__C(Data)">
+        <size>7</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[Data,Data] &lt;Main&gt;m__D(Data, Data)">
+        <size>8</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__E(&lt;&gt;__AnonType1`2[Data,Data])">
+        <size>12</size>
+      </method>
+      <method name="Data &lt;Main&gt;m__F(&lt;&gt;__AnonType1`2[Data,Data])">
+        <size>7</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
+  </test>
+  <test name="gtest-linq-10.cs">
+    <type name="DataA">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 &lt;&gt;m__1(Int32)">
+    </type>
+    <type name="DataB">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-var-04.cs">
-    <type name="Test">
+    <type name="GroupJoin">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>219</size>
+        <size>631</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-variance-11.cs">
-    <type name="D">
-      <method name="Void .ctor()">
+    <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;ab&gt;__T]">
+      <method name="Void .ctor(&lt;a&gt;__T, &lt;ab&gt;__T)">
+        <size>21</size>
+      </method>
+      <method name="&lt;a&gt;__T get_a()">
         <size>7</size>
       </method>
-      <method name="Boolean Contra[T](IContravariant`1, IContravariant`1)">
-        <size>38</size>
+      <method name="&lt;ab&gt;__T get_ab()">
+        <size>7</size>
       </method>
-      <method name="Boolean Covariant[T](ICovariant`1, ICovariant`1)">
-        <size>38</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
       </method>
-      <method name="Int32 Main()">
-        <size>38</size>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-variance-13.cs">
-    <type name="A">
-      <method name="Void .ctor()">
+    <type name="&lt;&gt;__AnonType1`2[&lt;a&gt;__T,&lt;b&gt;__T]">
+      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)">
+        <size>21</size>
+      </method>
+      <method name="&lt;a&gt;__T get_a()">
         <size>7</size>
       </method>
-      <method name="Void Foo[T](T, IList`1)">
-        <size>1</size>
+      <method name="&lt;b&gt;__T get_b()">
+        <size>7</size>
       </method>
-      <method name="Void Test()">
-        <size>17</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-    <type name="B">
-      <method name="Void .ctor()">
+    <type name="GroupJoin">
+      <method name="Int32 &lt;Main&gt;m__0(DataA)">
         <size>7</size>
       </method>
-      <method name="Void Foo[T](T, I`1)">
-        <size>1</size>
+      <method name="Int32 &lt;Main&gt;m__1(DataB)">
+        <size>7</size>
       </method>
-      <method name="Void Test[U](U, I`1)">
+      <method name="&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]] &lt;Main&gt;m__2(DataA, IEnumerable`1)">
+        <size>8</size>
+      </method>
+      <method name="IEnumerable`1 &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]])">
+        <size>12</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.String,System.String] &lt;Main&gt;m__4(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]], DataB)">
+        <size>39</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__5(DataA)">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__6(DataB)">
+        <size>7</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]] &lt;Main&gt;m__7(DataA, IEnumerable`1)">
         <size>8</size>
       </method>
+      <method name="IEnumerable`1 &lt;Main&gt;m__8(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]])">
+        <size>12</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.String,System.String] &lt;Main&gt;m__9(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]], DataB)">
+        <size>39</size>
+      </method>
     </type>
-    <type name="M">
+  </test>
+  <test name="gtest-linq-11.cs">
+    <type name="IntoTest">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>2</size>
+        <size>275</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__0(Int32)">
+        <size>5</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)">
+        <size>5</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)">
+        <size>4</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(Int32)">
+        <size>5</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__4(Int32)">
+        <size>4</size>
       </method>
     </type>
   </test>
-  <test name="gtest-variance-6.cs">
-    <type name="Program">
+  <test name="gtest-linq-12.cs">
+    <type name="NestedQuery">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="Void XX()">
+        <size>108</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>464</size>
       </method>
     </type>
-    <type name="Cov1`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="&lt;&gt;__AnonType0`2[&lt;values&gt;__T,&lt;length&gt;__T]">
+      <method name="Void .ctor(&lt;values&gt;__T, &lt;length&gt;__T)">
+        <size>21</size>
       </method>
-      <method name="ICovariant`1 Invoke(IContravariant`1)">
-        <size>0</size>
+      <method name="&lt;values&gt;__T get_values()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="&lt;length&gt;__T get_length()">
+        <size>7</size>
       </method>
-      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-    <type name="Cov2`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="&lt;&gt;__AnonType1`2[&lt;type&gt;__T,&lt;x&gt;__T]">
+      <method name="Void .ctor(&lt;type&gt;__T, &lt;x&gt;__T)">
+        <size>21</size>
       </method>
-      <method name="ICovariant`1 Invoke(IContravariant`1)">
-        <size>0</size>
+      <method name="&lt;type&gt;__T get_type()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="&lt;x&gt;__T get_x()">
+        <size>7</size>
       </method>
-      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
       </method>
-    </type>
-    <type name="Cov3`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
       </method>
-      <method name="ICovariant`1 Invoke(IContravariant`1)">
-        <size>0</size>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
-        <size>0</size>
+    </type>
+    <type name="NestedQuery">
+      <method name="&lt;&gt;__AnonType0`2[System.String,System.Int32] &lt;XX&gt;m__0(System.String)">
+        <size>13</size>
       </method>
-      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+    <type name="NestedQuery+&lt;XX&gt;c__AnonStorey0">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="Cov4`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="NestedQuery+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="ICovariant`1 Invoke()">
-        <size>0</size>
+    </type>
+    <type name="NestedQuery">
+      <method name="IEnumerable`1 &lt;XX&gt;m__1(&lt;&gt;__AnonType0`2[System.String,System.Int32])">
+        <size>110</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Boolean &lt;Main&gt;m__2(System.String)">
+        <size>10</size>
       </method>
-      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="IEnumerable`1 &lt;Main&gt;m__3(System.String)">
+        <size>36</size>
       </method>
-    </type>
-    <type name="Cov5`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+      <method name="&lt;&gt;__AnonType0`2[System.String,System.Int32] &lt;Main&gt;m__4(System.String)">
+        <size>13</size>
       </method>
-      <method name="IContravariant`1 Invoke()">
-        <size>0</size>
+      <method name="IEnumerable`1 &lt;Main&gt;m__5(&lt;&gt;__AnonType0`2[System.String,System.Int32])">
+        <size>110</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="&lt;&gt;__AnonType1`2[System.Char,System.Int32] &lt;XX&gt;m__6(Char)">
+        <size>9</size>
       </method>
-      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Char &lt;XX&gt;m__8(&lt;&gt;__AnonType1`2[System.Char,System.Int32])">
+        <size>7</size>
       </method>
-    </type>
-    <type name="Contra5`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+      <method name="Boolean &lt;Main&gt;m__9(Char)">
+        <size>6</size>
       </method>
-      <method name="IContravariant`1 Invoke(U, ICovariant`1)">
-        <size>0</size>
+      <method name="&lt;&gt;__AnonType1`2[System.Char,System.Int32] &lt;Main&gt;m__A(Char)">
+        <size>9</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(U, ICovariant`1, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Char &lt;Main&gt;m__C(&lt;&gt;__AnonType1`2[System.Char,System.Int32])">
+        <size>7</size>
       </method>
-      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+    <type name="NestedQuery+&lt;XX&gt;c__AnonStorey0">
+      <method name="Boolean &lt;&gt;m__7(&lt;&gt;__AnonType1`2[System.Char,System.Int32])">
+        <size>15</size>
       </method>
     </type>
-    <type name="Contra6`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="NestedQuery+&lt;Main&gt;c__AnonStorey1">
+      <method name="Boolean &lt;&gt;m__B(&lt;&gt;__AnonType1`2[System.Char,System.Int32])">
+        <size>15</size>
       </method>
-      <method name="IContravariant`1 Invoke()">
-        <size>0</size>
+    </type>
+  </test>
+  <test name="gtest-linq-13.cs">
+    <type name="Program">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Void Main()">
+        <size>1</size>
       </method>
-      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void Foo(TypeDefinition)">
+        <size>47</size>
+      </method>
+      <method name="MethodDefinition &lt;Foo&gt;m__0(MethodDefinition)">
+        <size>2</size>
       </method>
     </type>
-    <type name="Contra7`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="Extension">
+      <method name="IEnumerable`1 Cast[T](IFoo)">
+        <size>2</size>
       </method>
-      <method name="IContravariant`1 Invoke(U, ICovariant`1)">
-        <size>0</size>
+    </type>
+    <type name="MethodDefinition">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(U, ICovariant`1, System.AsyncCallback, System.Object)">
-        <size>0</size>
+    </type>
+    <type name="TypeDefinition">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="MethodDefinitionCollection get_Methods()">
+        <size>2</size>
+      </method>
+      <method name="Void set_Methods(MethodDefinitionCollection)">
+        <size>1</size>
       </method>
     </type>
-    <type name="Contra8`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="MethodDefinitionCollection">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IContravariant`1 Invoke(U, ICovariant`1)">
-        <size>0</size>
+    </type>
+  </test>
+  <test name="gtest-linq-14.cs">
+    <type name="Person">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(U, ICovariant`1, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Style get_Style()">
+        <size>7</size>
       </method>
-      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void set_Style(Style)">
+        <size>8</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-variance-7.cs">
-    <type name="C">
+    <type name="Extensions">
+      <method name="IMarker`1 Cast[T](IObjectContainer)">
+        <size>2</size>
+      </method>
+      <method name="IMarker`1 Where[T](IMarker`1, System.Linq.Expressions.Expression`1[System.Func`2[T,System.Boolean]])">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Program">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Void Main()">
         <size>1</size>
       </method>
+      <method name="Void Assert(System.Action)">
+        <size>1</size>
+      </method>
+      <method name="Void Test(IObjectContainer, Style)">
+        <size>38</size>
+      </method>
     </type>
-    <type name="Covariant`1[T]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="Program+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="T Invoke()">
-        <size>0</size>
+      <method name="Void &lt;&gt;m__0()">
+        <size>117</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+    </type>
+  </test>
+  <test name="gtest-linq-15.cs">
+    <type name="NameCollisionTest.Data">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="T EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+    <type name="NameCollisionTest.Ex">
+      <method name="IEnumerable`1 Foo[T,TR](IEnumerable`1, System.Func`2[T,TR])">
+        <size>44</size>
       </method>
     </type>
-    <type name="Contra`1[T]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="NameCollisionTest.C">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void Invoke(T)">
-        <size>0</size>
+      <method name="Void Main()">
+        <size>78</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Int32 &lt;Main&gt;m__0(NameCollisionTest.Data)">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Boolean &lt;Main&gt;m__1(Int32)">
+        <size>5</size>
       </method>
     </type>
-    <type name="CoContra`2[TR,T]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="NameCollisionTest.Ex+&lt;Foo&gt;c__Iterator0`2[T,TR]">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="TR Invoke(T)">
-        <size>0</size>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>12</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
       </method>
-      <method name="TR EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Boolean MoveNext()">
+        <size>86</size>
       </method>
-    </type>
-    <type name="None`1[T]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+      <method name="Void Dispose()">
+        <size>8</size>
       </method>
-      <method name="Void Invoke(T)">
-        <size>0</size>
+      <method name="Void Reset()">
+        <size>6</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="TR System.Collections.Generic.IEnumerator&lt;TR&gt;.get_Current()">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;TR&gt;.GetEnumerator()">
+        <size>52</size>
       </method>
     </type>
-    <type name="Test`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+  </test>
+  <test name="gtest-linq-16.cs">
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] Invoke()">
-        <size>0</size>
+      <method name="Void Main()">
+        <size>12</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Void Test_1(Int32)">
+        <size>27</size>
       </method>
-      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void Test_2()">
+        <size>31</size>
+      </method>
+      <method name="System.Func`1[System.Collections.Generic.IEnumerable`1[System.Int32]] &lt;Test_2&gt;m__1(Int32)">
+        <size>26</size>
       </method>
     </type>
-    <type name="Test2`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;b&gt;__T]">
+      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)">
+        <size>21</size>
       </method>
-      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] Invoke()">
-        <size>0</size>
+      <method name="&lt;a&gt;__T get_a()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="&lt;b&gt;__T get_b()">
+        <size>7</size>
       </method>
-      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-    <type name="Test3`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="C+&lt;Test_1&gt;c__AnonStorey0">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] Invoke()">
-        <size>0</size>
+      <method name="IEnumerable`1 &lt;&gt;m__0()">
+        <size>67</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;&gt;m__3(Int32)">
+        <size>8</size>
       </method>
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Int32 &lt;&gt;m__4(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])">
+        <size>14</size>
       </method>
     </type>
-    <type name="Test4`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="C+&lt;Test_2&gt;c__AnonStorey1">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] Invoke()">
-        <size>0</size>
+      <method name="IEnumerable`1 &lt;&gt;m__2()">
+        <size>67</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;&gt;m__5(Int32)">
+        <size>8</size>
       </method>
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Int32 &lt;&gt;m__6(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])">
+        <size>14</size>
       </method>
     </type>
-    <type name="Test5`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+  </test>
+  <test name="gtest-linq-17.cs">
+    <type name="TestGroupBy">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] Invoke()">
-        <size>0</size>
+      <method name="Int32 Main()">
+        <size>157</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Int32 &lt;Main&gt;m__0(Int32)">
+        <size>2</size>
       </method>
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="Test6`1[U]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+  </test>
+  <test name="gtest-linq-18.cs">
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void Invoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]])">
-        <size>0</size>
+      <method name="Boolean Test(System.Func`2[System.Int32,System.Boolean])">
+        <size>2</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]], System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Boolean Test2(System.Func`2[System.Int32,System.Int32])">
+        <size>2</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Int32 Main()">
+        <size>648</size>
       </method>
-    </type>
-    <type name="Both`2[U,V]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Boolean] &lt;Main&gt;m__0(Int32)">
+        <size>42</size>
       </method>
-      <method name="Void Invoke(CoContra`2[U,V])">
-        <size>0</size>
+      <method name="Boolean &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Int32,System.Boolean])">
+        <size>11</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(CoContra`2[U,V], System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Boolean &lt;Main&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Boolean])">
+        <size>31</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Boolean &lt;Main&gt;m__3(Int32)">
+        <size>31</size>
       </method>
-    </type>
-    <type name="Both2`2[U,V]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+      <method name="Boolean &lt;Main&gt;m__4(Int32)">
+        <size>31</size>
       </method>
-      <method name="Void Invoke(CoContra`2[U,Contra`1[U]])">
-        <size>0</size>
+      <method name="Boolean &lt;Main&gt;m__5(Int32)">
+        <size>31</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[U]], System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Boolean &lt;Main&gt;m__6(Int32)">
+        <size>31</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__7(Int32)">
+        <size>10</size>
+      </method>
+      <method name="&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__8(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__9(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])">
+        <size>31</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__A(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__B(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])">
+        <size>12</size>
       </method>
     </type>
-    <type name="Both3`2[U,V]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="&lt;&gt;__AnonType0`2[&lt;ck&gt;__T,&lt;xy&gt;__T]">
+      <method name="Void .ctor(&lt;ck&gt;__T, &lt;xy&gt;__T)">
+        <size>21</size>
       </method>
-      <method name="Void Invoke(CoContra`2[U,Contra`1[System.Int32]])">
-        <size>0</size>
+      <method name="&lt;ck&gt;__T get_ck()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[System.Int32]], System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="&lt;xy&gt;__T get_xy()">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-    <type name="Both4`2[U,V]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="&lt;&gt;__AnonType1`2[&lt;i&gt;__T,&lt;l&gt;__T]">
+      <method name="Void .ctor(&lt;i&gt;__T, &lt;l&gt;__T)">
+        <size>21</size>
       </method>
-      <method name="Void Invoke(Both`2[V,U])">
-        <size>0</size>
+      <method name="&lt;i&gt;__T get_i()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(Both`2[V,U], System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="&lt;l&gt;__T get_l()">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-    <type name="Both5`2[U,V]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void Invoke(Both`2[V,System.Int32])">
-        <size>0</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(Both`2[V,System.Int32], System.AsyncCallback, System.Object)">
-        <size>0</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey2">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-  </test>
-  <test name="gtest-variance-9.cs">
-    <type name="Test">
+    <type name="C+&lt;Main&gt;c__AnonStorey3">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Foo(IIn`1)">
-        <size>1</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey4">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>10</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey5">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-  </test>
-  <test name="ltest-01.cs">
-    <type name="X">
-      <method name="Void .ctor(Int32)">
-        <size>13</size>
+    <type name="C+&lt;Main&gt;c__AnonStorey6">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>300</size>
+    </type>
+    <type name="C">
+      <method name="Boolean &lt;Main&gt;m__C(Int32)">
+        <size>31</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__D(Int32)">
+        <size>31</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__E(Int32, Int32)">
+        <size>2</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__F(Int32)">
+        <size>31</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__10(Int32)">
+        <size>31</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__11(Int32, IEnumerable`1)">
+        <size>2</size>
       </method>
     </type>
-    <type name="IntFunc">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="&lt;&gt;__AnonType2`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;g&gt;__T]">
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;g&gt;__T)">
+        <size>21</size>
       </method>
-      <method name="Int32 Invoke(Int32)">
-        <size>0</size>
+      <method name="&lt;&lt;&gt;__TranspIdent1&gt;__T get_&lt;&gt;__TranspIdent1()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="&lt;g&gt;__T get_g()">
+        <size>7</size>
       </method>
-      <method name="Int32 EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Boolean Equals(System.Object)">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()">
+        <size>142</size>
       </method>
     </type>
-    <type name="VoidFunc">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Boolean &lt;&gt;m__12(Int32)">
+        <size>10</size>
       </method>
-      <method name="Void Invoke(Int32)">
-        <size>0</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey1">
+      <method name="Boolean &lt;&gt;m__13(Int32)">
+        <size>15</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
-        <size>0</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey2">
+      <method name="Boolean &lt;&gt;m__14(Int32)">
+        <size>10</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey3">
+      <method name="Boolean &lt;&gt;m__15(Int32)">
+        <size>10</size>
       </method>
     </type>
-    <type name="X">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)">
-        <size>4</size>
+    <type name="C+&lt;Main&gt;c__AnonStorey4">
+      <method name="Int32 &lt;&gt;m__16(Int32)">
+        <size>9</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)">
-        <size>4</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey5">
+      <method name="Int32 &lt;&gt;m__17(Int32)">
+        <size>9</size>
       </method>
     </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
+    <type name="C+&lt;Main&gt;c__AnonStorey6">
+      <method name="Boolean &lt;&gt;m__18(Int32)">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey7">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__2(Int32)">
-        <size>8</size>
+      <method name="Boolean &lt;&gt;m__19(Int32)">
+        <size>10</size>
       </method>
     </type>
-    <type name="X">
-      <method name="Void &lt;Main&gt;m__3(Int32)">
-        <size>8</size>
+    <type name="C+&lt;Main&gt;c__AnonStorey8">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;&gt;m__1A(Int32)">
+        <size>10</size>
       </method>
     </type>
-  </test>
-  <test name="ltest-02.cs">
-    <type name="X">
+    <type name="C+&lt;Main&gt;c__AnonStorey9">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Foo(funci)">
-        <size>16</size>
+      <method name="Boolean &lt;&gt;m__1B(Int32)">
+        <size>10</size>
       </method>
-      <method name="Void Foo(funcs)">
-        <size>19</size>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStoreyA">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;&gt;m__1C(Int32)">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-19.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>45</size>
       </method>
       <method name="Void Main()">
-        <size>35</size>
+        <size>1</size>
+      </method>
+      <method name="Char &lt;E&gt;m__0(Char)">
+        <size>2</size>
       </method>
     </type>
-    <type name="funcs">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+  </test>
+  <test name="gtest-named-01.cs">
+    <type name="C">
+      <method name="Int32 Test(Int32, Int32, System.String)">
+        <size>6</size>
       </method>
-      <method name="System.String Invoke(System.String)">
-        <size>0</size>
+      <method name="T Foo[T](T, Int32)">
+        <size>2</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Void Lambda(System.Func`2[System.Int32,System.Int32])">
+        <size>9</size>
       </method>
-      <method name="System.String EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Int32 Main()">
+        <size>173</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__0(Int32)">
+        <size>2</size>
       </method>
     </type>
-    <type name="funci">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Int32 Invoke(Int32)">
-        <size>0</size>
+      <method name="Int32 &lt;&gt;m__1(Int32)">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
-        <size>0</size>
+    </type>
+  </test>
+  <test name="gtest-optional-01.cs">
+    <type name="C">
+      <method name="Void TestA(Int32)">
+        <size>1</size>
       </method>
-      <method name="Int32 EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void TestB(Int64)">
+        <size>1</size>
+      </method>
+      <method name="Void TestC(Decimal)">
+        <size>1</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>310</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="X">
-      <method name="System.String &lt;Main&gt;m__0(System.String)">
-        <size>12</size>
+  </test>
+  <test name="gtest-optional-02.cs">
+    <type name="C">
+      <method name="Boolean Test2(Nullable`1)">
+        <size>11</size>
+      </method>
+      <method name="Int32 Test(Nullable`1)">
+        <size>27</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>101</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Boolean Test3(Nullable`1)">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-03.cs">
+    <type name="C">
+      <method name="Int32 Test(Int32, System.String, Boolean, UInt16)">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>225</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
-  <test name="ltest-03.cs">
-    <type name="Demo">
-      <method name="Void .ctor()">
-        <size>7</size>
+  <test name="gtest-optional-04.cs">
+    <type name="C">
+      <method name="Void Foo[T](T, T)">
+        <size>1</size>
       </method>
-      <method name="Y F[X,Y](Int32, X, Func`2[X,Y])">
-        <size>8</size>
+      <method name="Void TestParams(System.Int32[])">
+        <size>6</size>
       </method>
-      <method name="Int32 Main()">
-        <size>54</size>
+      <method name="Void TestParams(Int32)">
+        <size>1</size>
       </method>
-    </type>
-    <type name="Func`2[TArg0,TResult]">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+      <method name="Void TestStruct(Nullable`1)">
+        <size>1</size>
       </method>
-      <method name="TResult Invoke(TArg0)">
-        <size>0</size>
+      <method name="System.String get_Item(Int32, System.String)">
+        <size>2</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(TArg0, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Void set_Item(Int32, System.String, System.String)">
+        <size>4</size>
       </method>
-      <method name="TResult EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Int32 Main()">
+        <size>120</size>
       </method>
-    </type>
-    <type name="Demo">
-      <method name="TimeSpan &lt;Main&gt;m__0(System.String)">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
   </test>
-  <test name="ltest-04.cs">
-    <type name="Demo">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Z F[X,Y,Z](X, Func`2[X,Y], Func`2[Y,Z])">
-        <size>14</size>
+  <test name="gtest-optional-05.cs">
+    <type name="Blah">
+      <method name="Int32 Foo(Int32, Int32)">
+        <size>4</size>
       </method>
       <method name="Int32 Main()">
-        <size>103</size>
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="Func`2[TArg0,TResult]">
-      <method name="Void .ctor(Object, IntPtr)">
+    <type name="Blah+MyDelegate">
+      <method name="Int32 Invoke(Int32, Int32)">
         <size>0</size>
       </method>
-      <method name="TResult Invoke(TArg0)">
+      <method name="IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)">
         <size>0</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(TArg0, System.AsyncCallback, System.Object)">
+      <method name="Int32 EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
-      <method name="TResult EndInvoke(IAsyncResult)">
+      <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
     </type>
-    <type name="Demo">
-      <method name="TimeSpan &lt;Main&gt;m__0(System.String)">
-        <size>7</size>
-      </method>
-      <method name="Double &lt;Main&gt;m__1(TimeSpan)">
-        <size>8</size>
-      </method>
-    </type>
   </test>
-  <test name="ltest-05.cs">
+  <test name="gtest-optional-06.cs">
     <type name="C">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Boolean M(C+db)">
-        <size>8</size>
-      </method>
-      <method name="System.String M(C+ds)">
-        <size>6</size>
-      </method>
-      <method name="Int32 M(C+di)">
-        <size>8</size>
+      <method name="Int32 Foo(Int32)">
+        <size>2</size>
       </method>
       <method name="Int32 Main()">
-        <size>125</size>
+        <size>38</size>
       </method>
-    </type>
-    <type name="C+di">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
+    </type>
+    <type name="D">
       <method name="Int32 Invoke(Int32)">
         <size>0</size>
       </method>
       <method name="Int32 EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
-    </type>
-    <type name="C+ds">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
-      <method name="System.String Invoke(System.String)">
-        <size>0</size>
+    </type>
+  </test>
+  <test name="gtest-optional-07.cs">
+    <type name="Tests">
+      <method name="Void foo(Foo)">
+        <size>1</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Int32 Main()">
+        <size>8</size>
       </method>
-      <method name="System.String EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="C+db">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+  </test>
+  <test name="gtest-optional-08.cs">
+    <type name="Tests">
+      <method name="Int32 Main()">
+        <size>36</size>
       </method>
-      <method name="Boolean Invoke(Boolean)">
-        <size>0</size>
+      <method name="Void .ctor(String)">
+        <size>14</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Void .ctor(Int32)">
+        <size>7</size>
       </method>
-      <method name="Boolean EndInvoke(IAsyncResult)">
-        <size>0</size>
+    </type>
+  </test>
+  <test name="gtest-partial-01.cs">
+    <type name="B`1[U]">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
+    <type name="C`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey1">
+    <type name="Test">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="C">
-      <method name="System.String &lt;Main&gt;m__0(System.String)">
-        <size>31</size>
+  </test>
+  <test name="gtest-var-04.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)">
-        <size>31</size>
+      <method name="Int32 Main()">
+        <size>219</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="System.String &lt;&gt;m__2(System.String)">
-        <size>12</size>
+  </test>
+  <test name="gtest-variance-1.cs">
+    <type name="Foo">
+      <method name="System.String get_Bar()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor(String)">
+        <size>14</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey1">
-      <method name="Int32 &lt;&gt;m__3(Int32)">
-        <size>11</size>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
-  <test name="ltest-06.cs">
-    <type name="TestClass">
+  <test name="gtest-variance-10.cs">
+    <type name="Foo">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void P(TestClass+DT)">
-        <size>26</size>
-      </method>
-      <method name="Void P(TestClass+DF)">
-        <size>26</size>
+    </type>
+    <type name="Test">
+      <method name="Int32 I&lt;string&gt;.get_Count()">
+        <size>2</size>
       </method>
-      <method name="T And(T, T)">
-        <size>10</size>
+      <method name="Int32 I&lt;Foo&gt;.get_Count()">
+        <size>2</size>
       </method>
-      <method name="F And(T, F)">
-        <size>10</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="F And(F, T)">
-        <size>10</size>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()">
+        <size>29</size>
       </method>
-      <method name="F And(F, F)">
-        <size>10</size>
+    </type>
+  </test>
+  <test name="gtest-variance-11.cs">
+    <type name="D">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="T Or(T, T)">
-        <size>10</size>
+      <method name="Boolean Contra[T](IContravariant`1, IContravariant`1)">
+        <size>38</size>
       </method>
-      <method name="T Or(T, F)">
-        <size>10</size>
+      <method name="Boolean Covariant[T](ICovariant`1, ICovariant`1)">
+        <size>38</size>
       </method>
-      <method name="T Or(F, T)">
-        <size>10</size>
+      <method name="Int32 Main()">
+        <size>38</size>
       </method>
-      <method name="F Or(F, F)">
-        <size>10</size>
+    </type>
+  </test>
+  <test name="gtest-variance-12.cs">
+    <type name="D">
+      <method name="Void add_field(D`1[System.String])">
+        <size>24</size>
       </method>
-      <method name="F Not(T)">
-        <size>10</size>
+      <method name="Void remove_field(D`1[System.String])">
+        <size>24</size>
       </method>
-      <method name="T Not(F)">
-        <size>10</size>
+      <method name="Int32 Main()">
+        <size>72</size>
       </method>
-      <method name="Void StopTrue(T)">
+      <method name="Void &lt;Main&gt;m__0()">
         <size>1</size>
       </method>
-      <method name="Int32 Main()">
-        <size>36</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="TestClass+DT">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
-      </method>
-      <method name="Void Invoke(T)">
+    <type name="D`1[T]">
+      <method name="Void Invoke()">
         <size>0</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
         <size>0</size>
       </method>
       <method name="Void EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
-    </type>
-    <type name="TestClass+DF">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
-      <method name="Void Invoke(F)">
-        <size>0</size>
+    </type>
+  </test>
+  <test name="gtest-variance-13.cs">
+    <type name="A">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(F, System.AsyncCallback, System.Object)">
-        <size>0</size>
+      <method name="Void Foo[T](T, IList`1)">
+        <size>1</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void Test()">
+        <size>17</size>
       </method>
     </type>
-    <type name="TestClass+&lt;Main&gt;c__AnonStorey0">
+    <type name="B">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__1(T)">
-        <size>38</size>
+      <method name="Void Foo[T](T, I`1)">
+        <size>1</size>
       </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void &lt;Main&gt;m__0(F)">
-        <size>31</size>
+      <method name="Void Test[U](U, I`1)">
+        <size>8</size>
       </method>
     </type>
-    <type name="TestClass+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
+    <type name="M">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__2(F)">
-        <size>77</size>
+      <method name="Int32 Main()">
+        <size>2</size>
       </method>
     </type>
   </test>
-  <test name="ltest-07.cs">
-    <type name="C">
+  <test name="gtest-variance-2.cs">
+    <type name="Foo">
+      <method name="System.String Bar(System.Object)">
+        <size>12</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Test(D)">
-        <size>1</size>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>92</size>
       </method>
-      <method name="Void Test(System.Object, D)">
-        <size>1</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void Test(D, D)">
-        <size>1</size>
+    </type>
+  </test>
+  <test name="gtest-variance-3.cs">
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>56</size>
       </method>
-      <method name="Void Test2(System.Object, E)">
-        <size>1</size>
+      <method name="Int32 Bar(Foo`1[System.Object])">
+        <size>12</size>
       </method>
-      <method name="Void Main()">
-        <size>207</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="D">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
-      </method>
-      <method name="Void Invoke()">
+    <type name="Foo`1[T]">
+      <method name="T Invoke()">
         <size>0</size>
       </method>
       <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
         <size>0</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
+      <method name="T EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
-    </type>
-    <type name="E">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
-      <method name="Void Invoke(Boolean)">
-        <size>0</size>
-      </method>
-      <method name="IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)">
-        <size>0</size>
+    </type>
+    <type name="Test+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.String &lt;&gt;m__0()">
+        <size>7</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="C">
-      <method name="Void &lt;Main&gt;m__0()">
-        <size>1</size>
+  </test>
+  <test name="gtest-variance-4.cs">
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>58</size>
       </method>
-      <method name="Void &lt;Main&gt;m__1()">
-        <size>1</size>
+      <method name="Int32 Bar(Foo`1[System.String], System.String)">
+        <size>8</size>
       </method>
-      <method name="Void &lt;Main&gt;m__2()">
-        <size>1</size>
+      <method name="Int32 &lt;Main&gt;m__0(System.Object)">
+        <size>7</size>
       </method>
-      <method name="Void &lt;Main&gt;m__3()">
-        <size>1</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void &lt;Main&gt;m__4()">
-        <size>1</size>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Int32 Invoke(T)">
+        <size>0</size>
       </method>
-      <method name="Void &lt;Main&gt;m__5(Boolean)">
-        <size>1</size>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
   </test>
-  <test name="ltest-08.cs">
-    <type name="C">
-      <method name="Void .ctor()">
+  <test name="gtest-variance-5.cs">
+    <type name="BothVariants`2[T1,T2]">
+      <method name="T1 get_Foo()">
         <size>7</size>
       </method>
-      <method name="Void Test[T,R](System.Func`2[T,R])">
-        <size>1</size>
+      <method name="Void set_Foo(T1)">
+        <size>8</size>
       </method>
-      <method name="Int32 Main()">
-        <size>321</size>
+      <method name="Int32 Bar(T2)">
+        <size>35</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__0(Int32)">
-        <size>4</size>
+      <method name="Void .ctor(T1)">
+        <size>14</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__1(Int32)">
-        <size>5</size>
+    </type>
+    <type name="Invariant`1[T]">
+      <method name="T get_Foo()">
+        <size>36</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)">
-        <size>4</size>
+      <method name="Int32 Bar(T)">
+        <size>14</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__3(Int32)">
-        <size>5</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__4(Int32)">
-        <size>4</size>
+    </type>
+    <type name="A">
+      <method name="System.String get_Fruit()">
+        <size>6</size>
       </method>
-      <method name="Boolean &lt;Main&gt;m__5(Int32)">
-        <size>5</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__6(Int32)">
-        <size>4</size>
+    </type>
+    <type name="B">
+      <method name="System.String get_Fruit()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-  </test>
-  <test name="ltest-09.cs">
     <type name="C">
+      <method name="System.String get_Fruit()">
+        <size>6</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IEnumerable`1 Test[T](T)">
-        <size>2</size>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>110</size>
       </method>
-      <method name="IEnumerable`1 Test[T](Func`1[T])">
-        <size>2</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="IEnumerable`1 Test2[T](Func`2[T,T])">
-        <size>2</size>
+    </type>
+  </test>
+  <test name="gtest-variance-6.cs">
+    <type name="Program">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>113</size>
+        <size>1</size>
       </method>
     </type>
-    <type name="Func`1[TD]">
+    <type name="Cov1`1[U]">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
-      <method name="TD Invoke()">
+      <method name="ICovariant`1 Invoke(IContravariant`1)">
         <size>0</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
         <size>0</size>
       </method>
-      <method name="TD EndInvoke(IAsyncResult)">
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
     </type>
-    <type name="Func`2[TA,TR]">
+    <type name="Cov2`1[U]">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
-      <method name="TR Invoke(TA)">
+      <method name="ICovariant`1 Invoke(IContravariant`1)">
         <size>0</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)">
+      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
         <size>0</size>
       </method>
-      <method name="TR EndInvoke(IAsyncResult)">
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
     </type>
-    <type name="C">
-      <method name="System.String &lt;Main&gt;m__0()">
-        <size>6</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1()">
-        <size>6</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__2(System.String)">
-        <size>6</size>
-      </method>
-    </type>
-  </test>
-  <test name="ltest-10.cs">
-    <type name="C">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Foo[TSource](IEnumerable`1)">
-        <size>1</size>
-      </method>
-      <method name="Void Foo[TCollection,TSource](IEnumerable`1, System.Func`2[TSource,System.Collections.Generic.IEnumerable`1[TCollection]])">
-        <size>1</size>
+    <type name="Cov3`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void Foo[TCollection,TSource](IEnumerable`1, System.Func`3[TSource,TCollection[],System.Collections.Generic.IEnumerable`1[TCollection]])">
-        <size>1</size>
+      <method name="ICovariant`1 Invoke(IContravariant`1)">
+        <size>0</size>
       </method>
-      <method name="Void Foo[TCollection,TSource](System.Func`2[TCollection[],System.Collections.Generic.IEnumerable`1[TSource]])">
-        <size>1</size>
+      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Void Main()">
-        <size>97</size>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerable`1 &lt;&gt;m__0(Int32)">
-        <size>7</size>
-      </method>
-      <method name="IEnumerable`1 &lt;&gt;m__1(Int32, System.Int32[])">
-        <size>7</size>
+    <type name="Cov4`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="IEnumerable`1 &lt;&gt;m__2(System.Int32[])">
-        <size>7</size>
+      <method name="ICovariant`1 Invoke()">
+        <size>0</size>
       </method>
-    </type>
-  </test>
-  <test name="ltest-11.cs">
-    <type name="Pair`2[T1,T2]">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-    </type>
-    <type name="C">
-      <method name="Void Foo[TInput,TValue,TIntermediate](Group`2[TInput,TValue], System.Func`2[TValue,Group`2[TInput,TIntermediate]])">
-        <size>1</size>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="E`1[TI]">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Rep1[TV](Group`2[TI,TV])">
-        <size>37</size>
+    <type name="Cov5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-    </type>
-    <type name="M">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="IContravariant`1 Invoke()">
+        <size>0</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="Group`2[T1,T2]">
+    <type name="Contra5`1[U]">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
-      <method name="Pair`2[T1,T2] Invoke(T1)">
+      <method name="IContravariant`1 Invoke(U, ICovariant`1)">
         <size>0</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(T1, System.AsyncCallback, System.Object)">
+      <method name="IAsyncResult BeginInvoke(U, ICovariant`1, System.AsyncCallback, System.Object)">
         <size>0</size>
       </method>
-      <method name="Pair`2[T1,T2] EndInvoke(IAsyncResult)">
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
     </type>
-    <type name="E`1+&lt;Rep1&gt;c__AnonStorey0`1[TI,TV]">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Group`2[TI,TV] &lt;&gt;m__0(TV)">
-        <size>7</size>
+    <type name="Contra6`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-    </type>
-  </test>
-  <test name="ltest-12.cs">
-    <type name="Demo">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="IContravariant`1 Invoke()">
+        <size>0</size>
       </method>
-      <method name="Void F[T](T[], T, Func`1[T])">
-        <size>42</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Int32 Main()">
-        <size>65</size>
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="Func`1[TA]">
+    <type name="Contra7`1[U]">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
-      <method name="Void Invoke(TA)">
+      <method name="IContravariant`1 Invoke(U, ICovariant`1)">
         <size>0</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)">
+      <method name="IAsyncResult BeginInvoke(U, ICovariant`1, System.AsyncCallback, System.Object)">
         <size>0</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
     </type>
-    <type name="Demo+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="Contra8`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void &lt;&gt;m__0(Int32)">
-        <size>10</size>
+      <method name="IContravariant`1 Invoke(U, ICovariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(U, ICovariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
   </test>
-  <test name="ltest-13.cs">
-    <type name="Program">
+  <test name="gtest-variance-7.cs">
+    <type name="C">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="T Foo[T](System.Func`2[System.String,T])">
-        <size>12</size>
-      </method>
-      <method name="Void Foo(System.Action`1[System.String])">
-        <size>12</size>
-      </method>
       <method name="Void Main()">
-        <size>76</size>
-      </method>
-      <method name="System.String Bar()">
-        <size>35</size>
+        <size>1</size>
       </method>
     </type>
-    <type name="TestUnary">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="Covariant`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void Foo(System.Action`1[System.Int32])">
-        <size>1</size>
+      <method name="T Invoke()">
+        <size>0</size>
       </method>
-      <method name="Void Bar()">
-        <size>35</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Void &lt;Bar&gt;m__0(Int32)">
-        <size>6</size>
+      <method name="T EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="Program">
-      <method name="System.String &lt;Bar&gt;m__1(System.String)">
-        <size>7</size>
+    <type name="Contra`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="System.String &lt;Main&gt;m__2(System.String)">
-        <size>2</size>
+      <method name="Void Invoke(T)">
+        <size>0</size>
       </method>
-      <method name="Void &lt;Main&gt;m__3(System.String)">
-        <size>7</size>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-  </test>
-  <test name="ltest-14.cs">
-    <type name="Test">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="CoContra`2[TR,T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void Foo[T]()">
-        <size>14</size>
+      <method name="TR Invoke(T)">
+        <size>0</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="T &lt;Foo&gt;m__0[T](T)">
-        <size>2</size>
+      <method name="TR EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-  </test>
-  <test name="ltest-15.cs">
-    <type name="Enumerable">
-      <method name="Int32 Sum[TSource](IEnumerable`1, System.Func`2[TSource,System.Int32])">
-        <size>32</size>
-      </method>
-      <method name="TR Sum[TA,TR](IEnumerable`1, System.Func`3[TR,TA,TR])">
-        <size>120</size>
+    <type name="None`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-    </type>
-    <type name="Repro">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Void Invoke(T)">
+        <size>0</size>
       </method>
-      <method name="Int32 Main()">
-        <size>115</size>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Int32 &lt;Main&gt;m__1(System.String)">
-        <size>7</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="Enumerable+&lt;Sum&gt;c__AnonStorey0`1[TSource]">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0(Int32, TSource)">
-        <size>15</size>
+    <type name="Test`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-    </type>
-  </test>
-  <test name="ltest-16.cs">
-    <type name="Repro">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] Invoke()">
+        <size>0</size>
       </method>
-      <method name="Void AssertFoo[T](IList`1)">
-        <size>34</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="Repro+Runner`1[T]">
-      <method name="Void .ctor(Action`1, T)">
-        <size>7</size>
+    <type name="Test2`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-    </type>
-    <type name="Repro+&lt;AssertFoo&gt;c__AnonStorey0`1[T]">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] Invoke()">
+        <size>0</size>
       </method>
-      <method name="Void &lt;&gt;m__0(Int32)">
-        <size>52</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-  </test>
-  <test name="ltest-17.cs">
-    <type name="TestCase">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="Test3`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void Testing()">
-        <size>75</size>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] Invoke()">
+        <size>0</size>
       </method>
-      <method name="Void Main()">
-        <size>11</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Void &lt;Testing&gt;m__0()">
-        <size>8</size>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-  </test>
-  <test name="ltest-18.cs">
-    <type name="Test">
-      <method name="Void Foo[T1,T2,TResult](T1, T2, System.Func`3[T1,T2,TResult])">
-        <size>33</size>
+    <type name="Test4`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void Bar[T1,T2,TResult](T1, T2, System.Func`4[T1,T2,System.Int32,TResult])">
-        <size>1</size>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] Invoke()">
+        <size>0</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="Test+&lt;Foo&gt;c__AnonStorey0`3[T1,T2,TResult]">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="Test5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="TResult &lt;&gt;m__0(T1, T2, Int32)">
-        <size>14</size>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-  </test>
-  <test name="ltest-19.cs">
-    <type name="Crasher">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="Test6`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void Crash()">
-        <size>36</size>
+      <method name="Void Invoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]])">
+        <size>0</size>
       </method>
-      <method name="Void Do(System.Action)">
-        <size>1</size>
+      <method name="IAsyncResult BeginInvoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]], System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="Crasher+&lt;Crash&gt;c__AnonStorey0">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="Both`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void &lt;&gt;m__0()">
-        <size>27</size>
+      <method name="Void Invoke(CoContra`2[U,V])">
+        <size>0</size>
       </method>
-    </type>
-  </test>
-  <test name="ltest-20.cs">
-    <type name="Z">
-      <method name="Void .ctor()">
-        <size>37</size>
+      <method name="IAsyncResult BeginInvoke(CoContra`2[U,V], System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Void &lt;Z&gt;m__0()">
-        <size>7</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="Test">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="Both2`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Boolean Foo()">
-        <size>2</size>
+      <method name="Void Invoke(CoContra`2[U,Contra`1[U]])">
+        <size>0</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
+      <method name="IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[U]], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
-    <type name="TestMethod">
+    <type name="Both3`2[U,V]">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
-      <method name="Void Invoke()">
+      <method name="Void Invoke(CoContra`2[U,Contra`1[System.Int32]])">
         <size>0</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+      <method name="IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[System.Int32]], System.AsyncCallback, System.Object)">
         <size>0</size>
       </method>
       <method name="Void EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
     </type>
-  </test>
-  <test name="ltest-21.cs">
-    <type name="Program">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="Both4`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="T Foo[T](System.Func`2[System.String,T])">
-        <size>12</size>
+      <method name="Void Invoke(Both`2[V,U])">
+        <size>0</size>
       </method>
-      <method name="Void Foo(System.Action`1[System.String])">
-        <size>12</size>
+      <method name="IAsyncResult BeginInvoke(Both`2[V,U], System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="System.String Bar()">
-        <size>35</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Int32 Main()">
-        <size>95</size>
+    </type>
+    <type name="Both5`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="System.String &lt;Bar&gt;m__0(System.String)">
-        <size>7</size>
+      <method name="Void Invoke(Both`2[V,System.Int32])">
+        <size>0</size>
       </method>
-      <method name="System.String &lt;Main&gt;m__1(System.String)">
-        <size>2</size>
+      <method name="IAsyncResult BeginInvoke(Both`2[V,System.Int32], System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Void &lt;Main&gt;m__2(System.String)">
-        <size>7</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
     </type>
   </test>
-  <test name="ltest-22.cs">
-    <type name="Product">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
+  <test name="gtest-variance-8.cs">
+    <type name="A`1[T]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>136</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__0(Product)">
-        <size>7</size>
-      </method>
-      <method name="Product &lt;Main&gt;m__1(Product)">
-        <size>2</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Linq.IGrouping`2[System.Int32,Product],System.Collections.Generic.IEnumerable`1[Product]] &lt;Main&gt;m__2(IGrouping`2)">
-        <size>48</size>
-      </method>
     </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;g&gt;__T,&lt;ExpensiveProducts&gt;__T]">
-      <method name="Void .ctor(&lt;g&gt;__T, &lt;ExpensiveProducts&gt;__T)">
-        <size>21</size>
-      </method>
-      <method name="&lt;g&gt;__T get_g()">
-        <size>7</size>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>144</size>
       </method>
-      <method name="&lt;ExpensiveProducts&gt;__T get_ExpensiveProducts()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean Equals(System.Object)">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()">
-        <size>142</size>
-      </method>
     </type>
-    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
+  </test>
+  <test name="gtest-variance-9.cs">
+    <type name="Test">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean &lt;&gt;m__3(Product)">
-        <size>52</size>
+      <method name="Void Foo(IIn`1)">
+        <size>1</size>
       </method>
-      <method name="Decimal &lt;&gt;m__4(Product)">
-        <size>7</size>
+      <method name="Int32 Main()">
+        <size>10</size>
       </method>
     </type>
   </test>
   </test>
   <test name="test-106.cs">
     <type name="Test">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()">
-        <size>1</size>
-      </method>
       <method name="Int32 F(Int32)">
         <size>27</size>
       </method>
       <method name="Int32 Main()">
         <size>135</size>
       </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>1</size>
+      </method>
     </type>
     <type name="Test+SimpleDelegate">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
-      </method>
       <method name="Int32 Invoke(Int32)">
         <size>0</size>
       </method>
       <method name="Int32 EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
     </type>
   </test>
   <test name="test-107.cs">
         <size>12</size>
       </method>
       <method name="Int32 Main()">
-        <size>25</size>
+        <size>29</size>
       </method>
     </type>
   </test>
   </test>
   <test name="test-257.cs">
     <type name="X">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
       <method name="Void Main()">
         <size>8</size>
       </method>
       <method name="Void call(Int32 ByRef)">
         <size>25</size>
       </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
     </type>
   </test>
   <test name="test-258.cs">
         <size>34</size>
       </method>
       <method name="Int32 Test2()">
-        <size>47</size>
+        <size>46</size>
       </method>
       <method name="Int32 Main()">
         <size>40</size>
         <size>0</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="test-260.cs">
     <type name="x.Test">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Boolean EnumInSet(Enum, System.Enum[])">
-        <size>37</size>
-      </method>
       <method name="Void Main()">
         <size>1</size>
       </method>
+      <method name="Boolean EnumInSet(System.Enum, System.Enum[])">
+        <size>37</size>
+      </method>
     </type>
   </test>
   <test name="test-281.cs">
         <size>7</size>
       </method>
       <method name="Void .cctor()">
-        <size>118</size>
+        <size>137</size>
       </method>
       <method name="Int32 Main()">
-        <size>303</size>
+        <size>324</size>
       </method>
     </type>
   </test>
         <size>17</size>
       </method>
       <method name="Int32 Main()">
-        <size>84</size>
+        <size>86</size>
       </method>
     </type>
   </test>
     </type>
     <type name="X">
       <method name="IEnumerator GetEnumerator()">
-        <size>36</size>
+        <size>35</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
         <size>89</size>
       </method>
       <method name="Int32 TestPtrAdd()">
-        <size>87</size>
+        <size>86</size>
       </method>
       <method name="Int32 TestPtrAssign()">
         <size>198</size>
       </method>
       <method name="Int32 TestPtrArithmetic()">
-        <size>227</size>
+        <size>226</size>
       </method>
       <method name="Int32 TestMultiple()">
         <size>93</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>171</size>
+        <size>170</size>
       </method>
     </type>
   </test>
         <size>84</size>
       </method>
       <method name="Int32 Main()">
-        <size>309</size>
+        <size>284</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void .cctor()">
-        <size>98</size>
+        <size>97</size>
       </method>
       <method name="Int32 Main()">
-        <size>794</size>
+        <size>755</size>
       </method>
     </type>
     <type name="&lt;PrivateImplementationDetails&gt;">
       </method>
     </type>
   </test>
-  <test name="test-450.cs">
-    <type name="MyAttribute">
-      <method name="Void .ctor(String)">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Main()">
-        <size>1</size>
-      </method>
-    </type>
-  </test>
   <test name="test-451.cs">
     <type name="Test">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
-  <test name="test-454.cs">
-    <type name="FooAttribute">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Int32 Main()">
-        <size>237</size>
-      </method>
-    </type>
-  </test>
   <test name="test-455.cs">
     <type name="Test">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>21</size>
+        <size>25</size>
       </method>
     </type>
     <type name="Foo">
       <method name="System.Object get_Val()">
         <size>7</size>
       </method>
-      <method name="Enum get_Val2()">
+      <method name="System.Enum get_Val2()">
         <size>7</size>
       </method>
     </type>
         <size>33</size>
       </method>
       <method name="Void Test2()">
-        <size>67</size>
+        <size>66</size>
       </method>
       <method name="Void Main()">
         <size>39</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="test-526.cs">
     <type name="Test">
       </method>
     </type>
     <type name="TestClass">
-      <method name="Void &lt;TestClass&gt;m__0(Int32)">
+      <method name="Void &lt;a&gt;m__0(Int32)">
         <size>7</size>
       </method>
     </type>
         <size>73</size>
       </method>
       <method name="Void Or()">
-        <size>137</size>
+        <size>129</size>
       </method>
       <method name="Int32 Main()">
         <size>70</size>
         <size>7</size>
       </method>
       <method name="Void ZeroBasedReductions()">
-        <size>9</size>
+        <size>18</size>
       </method>
       <method name="Void Main()">
-        <size>1</size>
+        <size>6</size>
       </method>
     </type>
   </test>
         <size>79</size>
       </method>
       <method name="Void TestOr(Boolean)">
-        <size>92</size>
+        <size>88</size>
       </method>
       <method name="Void Test(Boolean)">
         <size>13</size>
         <size>11</size>
       </method>
       <method name="Void Main()">
-        <size>169</size>
+        <size>167</size>
       </method>
     </type>
   </test>
         <size>3</size>
       </method>
       <method name="Void Foo(Byte*, Byte*)">
-        <size>46</size>
+        <size>42</size>
       </method>
     </type>
   </test>
         <size>68</size>
       </method>
       <method name="Void CharCopy(Char*, Char*, Int32)">
-        <size>35</size>
+        <size>33</size>
       </method>
       <method name="Int32 Main()">
         <size>58</size>
         <size>11</size>
       </method>
     </type>
-    <type name="Foo">
+    <type name="Foo">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="IDisposable GetBar()">
+        <size>6</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>11</size>
+      </method>
+      <method name="Boolean TryThing()">
+        <size>46</size>
+      </method>
+      <method name="Void Main()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-714.cs">
+    <type name="Hello">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void IBar.Test()">
+        <size>1</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-716.cs">
+    <type name="SS">
+      <method name="Void .cctor()">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="SSS">
+      <method name="Void .cctor()">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CC">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="CCC">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>192</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-717.cs">
+    <type name="AA">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Foo(Int32)">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Foo(Byte)">
+        <size>2</size>
+      </method>
+      <method name="Int32 Foo(Int32)">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Foo(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Void Foo(System.String)">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.String ToString()">
+        <size>6</size>
+      </method>
+    </type>
+    <type name="MyClass">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>65</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-718.cs">
+    <type name="A">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Foo(Int32, Int32)">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>8</size>
+      </method>
+      <method name="Void Foo(Int32)">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-719.cs">
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-72.cs">
+    <type name="outer">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="outer+inner">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void meth(System.Object)">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-720.cs">
+    <type name="N.Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="N.Parent">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void add_Example(N.Parent+ExampleHandler)">
+        <size>0</size>
+      </method>
+      <method name="Void remove_Example(N.Parent+ExampleHandler)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="N.Child">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void add_Example(N.Parent+ExampleHandler)">
+        <size>24</size>
+      </method>
+      <method name="Void remove_Example(N.Parent+ExampleHandler)">
+        <size>24</size>
+      </method>
+      <method name="Void OnExample()">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="N.Parent+ExampleHandler">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-721.cs">
+    <type name="Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>55</size>
+      </method>
+    </type>
+    <type name="Control">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void set_Foo(Int32)">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-723.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 get_Count()">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Maine">
+      <method name="Int32 Main()">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-724.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 DoTest(System.String, System.String, System.String, Int32)">
+        <size>29</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>110</size>
+      </method>
+    </type>
+    <type name="Concrete">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.String A.get_Spec()">
+        <size>6</size>
+      </method>
+      <method name="System.String B.get_Spec()">
+        <size>6</size>
+      </method>
+      <method name="System.String get_Spec()">
+        <size>6</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-726.cs">
+    <type name="CS0102">
+      <method name="System.Object IFoo.Clone()">
+        <size>2</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CS0102+Clone">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-727.cs">
+    <type name="IDisposableTest.MainClass">
+      <method name="Int32 Main()">
+        <size>113</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="IDisposableTest.Foo">
+      <method name="Void Dispose()">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>57</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-728.cs">
+    <type name="Tests">
+      <method name="Int32 Main()">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-729.cs">
+    <type name="Primes.MainClass">
+      <method name="Int32 Main()">
+        <size>141</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-73.cs">
+    <type name="Abstract">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 A()">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Concrete">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 A()">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-730.cs">
+    <type name="Demo">
+      <method name="Void Test(System.Object)">
+        <size>1</size>
+      </method>
+      <method name="Int32 Test(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Int32 GetPhones()">
+        <size>22</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Demo+D">
+      <method name="Int32 Invoke(Int32)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-731.cs">
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IDisposable GetBar()">
-        <size>6</size>
-      </method>
     </type>
+  </test>
+  <test name="test-733.cs">
     <type name="Test">
+      <method name="Int32 Main()">
+        <size>86</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void .cctor()">
-        <size>11</size>
+    </type>
+  </test>
+  <test name="test-734.cs">
+    <type name="M">
+      <method name="Void Run()">
+        <size>19</size>
       </method>
-      <method name="Boolean TryThing()">
-        <size>46</size>
+      <method name="Int32 Main()">
+        <size>12</size>
       </method>
-      <method name="Void Main()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
   </test>
-  <test name="test-714.cs">
-    <type name="Hello">
+  <test name="test-735.cs">
+    <type name="B">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void IBar.Test()">
-        <size>1</size>
-      </method>
+    </type>
+    <type name="B+C">
       <method name="Void Main()">
         <size>1</size>
       </method>
-    </type>
-  </test>
-  <test name="test-716.cs">
-    <type name="SS">
-      <method name="Void .cctor()">
-        <size>8</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="SSS">
-      <method name="Void .cctor()">
-        <size>15</size>
+    <type name="B+C+X">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="C">
+    <type name="B+D">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="CC">
+  </test>
+  <test name="test-736.cs">
+    <type name="TestGeneric`1[T]">
+      <method name="Void add_Event(System.EventHandler)">
+        <size>24</size>
+      </method>
+      <method name="Void remove_Event(System.EventHandler)">
+        <size>24</size>
+      </method>
+      <method name="Void Raise()">
+        <size>18</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void .cctor()">
-        <size>8</size>
-      </method>
     </type>
-    <type name="CCC">
+    <type name="TestGeneric2`1[T]">
+      <method name="Void add_Event(TestGeneric2`1+GenericHandler[T])">
+        <size>24</size>
+      </method>
+      <method name="Void remove_Event(TestGeneric2`1+GenericHandler[T])">
+        <size>24</size>
+      </method>
+      <method name="Void Raise()">
+        <size>21</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void .cctor()">
-        <size>11</size>
-      </method>
     </type>
-    <type name="X">
+    <type name="Test">
+      <method name="Void add_Event(System.EventHandler)">
+        <size>24</size>
+      </method>
+      <method name="Void remove_Event(System.EventHandler)">
+        <size>24</size>
+      </method>
+      <method name="Void Raise()">
+        <size>18</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>192</size>
+    </type>
+    <type name="TestGeneric2`1+GenericHandler[T]">
+      <method name="Void Invoke(T)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
   </test>
-  <test name="test-717.cs">
-    <type name="AA">
-      <method name="Void .ctor()">
+  <test name="test-737.cs">
+    <type name="Breaks">
+      <method name="Double get_Item(Int32, Int32)">
         <size>7</size>
       </method>
-      <method name="Int32 Foo(Int32)">
-        <size>2</size>
+      <method name="Void set_Item(Int32, Int32, Double)">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Double)">
+        <size>8</size>
       </method>
     </type>
-    <type name="A">
+    <type name="Tester">
+      <method name="Int32 Main()">
+        <size>80</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Foo(Byte)">
-        <size>2</size>
-      </method>
-      <method name="Int32 Foo(Int32)">
-        <size>2</size>
-      </method>
     </type>
-    <type name="B">
+  </test>
+  <test name="test-738.cs">
+    <type name="TestNamespace.ResumableInputStream">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
       <method name="Void .ctor()">
-        <size>7</size>
+        <size>18</size>
       </method>
-      <method name="Int32 Foo(Int32)">
-        <size>2</size>
+    </type>
+  </test>
+  <test name="test-739.cs">
+    <type name="X">
+      <method name="Void Finalize()">
+        <size>19</size>
       </method>
-      <method name="Void Foo(System.String)">
+      <method name="Void Foo()">
         <size>1</size>
       </method>
-    </type>
-    <type name="S">
-      <method name="System.String ToString()">
-        <size>6</size>
+      <method name="Int32 Main()">
+        <size>89</size>
       </method>
-    </type>
-    <type name="MyClass">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>61</size>
-      </method>
     </type>
   </test>
-  <test name="test-718.cs">
-    <type name="A">
+  <test name="test-74.cs">
+    <type name="X">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Foo(Int32, Int32)">
-        <size>1</size>
+      <method name="Int32 Main()">
+        <size>168</size>
       </method>
     </type>
-    <type name="B">
+  </test>
+  <test name="test-740.cs">
+    <type name="FixedTest">
+      <method name="Int32 Main()">
+        <size>348</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>8</size>
+    </type>
+    <type name="FixedTest+TValue">
+      <method name="System.String ToString()">
+        <size>17</size>
       </method>
-      <method name="Void Foo(Int32)">
-        <size>1</size>
+      <method name="Void .ctor(Int64)">
+        <size>28</size>
       </method>
     </type>
   </test>
-  <test name="test-719.cs">
-    <type name="C">
-      <method name="Void .ctor()">
-        <size>7</size>
+  <test name="test-741.cs">
+    <type name="Test">
+      <method name="Void test()">
+        <size>18</size>
       </method>
       <method name="Void Main()">
         <size>1</size>
       </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
     </type>
   </test>
-  <test name="test-72.cs">
-    <type name="outer">
+  <test name="test-742.cs">
+    <type name="Test">
+      <method name="Test Set(C)">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="C">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+    </type>
+    <type name="Driver">
       <method name="Int32 Main()">
-        <size>2</size>
+        <size>41</size>
       </method>
-    </type>
-    <type name="outer+inner">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void meth(System.Object)">
-        <size>8</size>
-      </method>
     </type>
   </test>
-  <test name="test-720.cs">
-    <type name="N.Program">
+  <test name="test-743.cs">
+    <type name="C">
+      <method name="Void Main()">
+        <size>11</size>
+      </method>
+      <method name="Void Test()">
+        <size>30</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+    </type>
+  </test>
+  <test name="test-744.cs">
+    <type name="M">
       <method name="Void Main()">
-        <size>18</size>
+        <size>7</size>
       </method>
-    </type>
-    <type name="N.Parent">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void add_Example(N.Parent+ExampleHandler)">
-        <size>0</size>
+    </type>
+    <type name="M+Nested">
+      <method name="Void Extra()">
+        <size>1</size>
       </method>
-      <method name="Void remove_Example(N.Parent+ExampleHandler)">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="N.Child">
+    <type name="A">
+      <method name="Void AMethod()">
+        <size>0</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void add_Example(N.Parent+ExampleHandler)">
-        <size>24</size>
-      </method>
-      <method name="Void remove_Example(N.Parent+ExampleHandler)">
-        <size>24</size>
+    </type>
+    <type name="B">
+      <method name="Void BMethod()">
+        <size>0</size>
       </method>
-      <method name="Void OnExample()">
-        <size>23</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="N.Parent+ExampleHandler">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+    <type name="C">
+      <method name="Void AMethod()">
+        <size>1</size>
       </method>
-      <method name="Void Invoke()">
-        <size>0</size>
+      <method name="Void BMethod()">
+        <size>1</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+      <method name="Void Extra()">
         <size>0</size>
       </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
-  <test name="test-721.cs">
-    <type name="Program">
+  <test name="test-745.cs">
+    <type name="C">
+      <method name="Void Main()">
+        <size>28</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>55</size>
-      </method>
     </type>
-    <type name="Control">
-      <method name="Void .ctor()">
-        <size>7</size>
+  </test>
+  <test name="test-746.cs">
+    <type name="Test">
+      <method name="Void Foo(IListCounter)">
+        <size>8</size>
       </method>
-      <method name="Void set_Foo(Int32)">
+      <method name="Void Main()">
         <size>1</size>
       </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
     </type>
   </test>
-  <test name="test-722.cs">
-    <type name="Blah">
+  <test name="test-747.cs">
+    <type name="B">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Foo(Int32, Int32)">
-        <size>4</size>
-      </method>
-      <method name="Int32 Main()">
-        <size>46</size>
-      </method>
     </type>
-    <type name="Blah+MyDelegate">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
-      </method>
-      <method name="Int32 Invoke(Int32, Int32)">
-        <size>0</size>
-      </method>
-      <method name="IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(IAsyncResult)">
-        <size>0</size>
+    <type name="B+BNested">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-  </test>
-  <test name="test-723.cs">
-    <type name="Test">
+    <type name="A">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 get_Count()">
-        <size>2</size>
-      </method>
     </type>
-    <type name="Maine">
-      <method name="Int32 Main()">
-        <size>21</size>
+    <type name="AA">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-  </test>
-  <test name="test-724.cs">
-    <type name="Test">
+    <type name="AA+ANested">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 DoTest(System.String, System.String, System.String, Int32)">
-        <size>29</size>
-      </method>
-      <method name="Int32 Main()">
-        <size>110</size>
-      </method>
     </type>
-    <type name="Concrete">
+    <type name="M">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.String A.get_Spec()">
-        <size>6</size>
-      </method>
-      <method name="System.String B.get_Spec()">
+    </type>
+  </test>
+  <test name="test-748.cs">
+    <type name="M">
+      <method name="RealTest.Foo Test()">
         <size>6</size>
       </method>
-      <method name="System.String get_Spec()">
-        <size>6</size>
+      <method name="Void Main()">
+        <size>1</size>
       </method>
-    </type>
-  </test>
-  <test name="test-73.cs">
-    <type name="Abstract">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 A()">
-        <size>0</size>
-      </method>
     </type>
-    <type name="Concrete">
+    <type name="Test.Local.M">
+      <method name="RealTest.Foo Test()">
+        <size>6</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 A()">
-        <size>2</size>
-      </method>
     </type>
-    <type name="Test">
+    <type name="RealTest.Foo">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>22</size>
-      </method>
     </type>
   </test>
-  <test name="test-74.cs">
-    <type name="X">
+  <test name="test-749.cs">
+    <type name="M">
+      <method name="Void Main()">
+        <size>14</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>168</size>
-      </method>
     </type>
   </test>
   <test name="test-75.cs">
       </method>
     </type>
   </test>
+  <test name="test-750.cs">
+    <type name="M">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-751.cs">
+    <type name="LocalNS.Compiler">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="System.Local.M">
+      <method name="Void Main()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-752.cs">
+    <type name="M">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-76.cs">
     <type name="foo">
       <method name="Void .ctor()">
         <size>19</size>
       </method>
       <method name="Int32 Main()">
-        <size>67</size>
+        <size>63</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
   </test>
       </method>
     </type>
     <type name="DelegateInit">
-      <method name="Void &lt;DelegateInit&gt;m__0()">
+      <method name="Void &lt;_print&gt;m__0()">
         <size>11</size>
       </method>
     </type>
       </method>
     </type>
     <type name="X">
-      <method name="Void &lt;X&gt;m__0()">
+      <method name="Void &lt;Print&gt;m__0()">
         <size>11</size>
       </method>
     </type>
         <size>22</size>
       </method>
       <method name="Int32 Main()">
-        <size>33</size>
+        <size>32</size>
       </method>
     </type>
     <type name="X+A">
         <size>7</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="test-anon-53.cs">
     <type name="Test">
         <size>7</size>
       </method>
       <method name="Void &lt;&gt;m__0()">
-        <size>95</size>
+        <size>89</size>
       </method>
     </type>
     <type name="X+&lt;Test&gt;c__AnonStorey0">
         <size>7</size>
       </method>
       <method name="Void &lt;&gt;m__0()">
-        <size>171</size>
+        <size>162</size>
       </method>
     </type>
     <type name="X+&lt;Test&gt;c__AnonStorey0">
         <size>7</size>
       </method>
       <method name="Void &lt;&gt;m__0()">
-        <size>233</size>
+        <size>224</size>
       </method>
     </type>
     <type name="X+&lt;Test&gt;c__AnonStorey1">
     </type>
     <type name="X+&lt;Test&gt;c__AnonStorey2">
       <method name="Void &lt;&gt;m__0()">
-        <size>356</size>
+        <size>347</size>
       </method>
     </type>
     <type name="X+&lt;Test&gt;c__AnonStorey2+&lt;Test&gt;c__AnonStorey4">
         <size>7</size>
       </method>
       <method name="Void &lt;&gt;m__0()">
-        <size>166</size>
+        <size>157</size>
       </method>
     </type>
     <type name="X+&lt;Test&gt;c__AnonStorey0">
         <size>22</size>
       </method>
       <method name="Int32 Main()">
-        <size>34</size>
+        <size>32</size>
       </method>
     </type>
     <type name="X+A">
         <size>7</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="test-anon-64.cs">
     <type name="Source">
         <size>1</size>
       </method>
       <method name="Void Main()">
-        <size>99</size>
+        <size>98</size>
       </method>
     </type>
     <type name="C+D">
         <size>3</size>
       </method>
     </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="test-anon-71.cs">
     <type name="Program">
       <method name="Int32 Main()">
         <size>19</size>
       </method>
-      <method name="C &lt;C&gt;m__0(Int32)">
-        <size>4</size>
-      </method>
     </type>
     <type name="D">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
     </type>
+    <type name="C">
+      <method name="C &lt;field&gt;m__0(Int32)">
+        <size>4</size>
+      </method>
+    </type>
   </test>
   <test name="test-anon-85.cs">
     <type name="X">
       </method>
     </type>
   </test>
+  <test name="test-anon-92.cs">
+    <type name="MainClass">
+      <method name="Void Test(IEnumerable)">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-cls-00.cs">
     <type name="CLSCLass_6">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
+  <test name="test-cls-19.cs">
+    <type name="A">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+PartialClass">
+      <method name="Void Method1(Int32)">
+        <size>1</size>
+      </method>
+      <method name="Void Method2(UInt32)">
+        <size>1</size>
+      </method>
+      <method name="Void Method3(UInt32)">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-externalias-01.cs">
     <type name="Test">
       <method name="Void .ctor()">
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>245</size>
+        <size>244</size>
       </method>
     </type>
     <type name="&lt;PrivateImplementationDetails&gt;">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>147</size>
+        <size>145</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
       </method>
     </type>
   </test>
+  <test name="test-named-04.cs">
+    <type name="Program">
+      <method name="Void Foo2(Int32, Int32 ByRef)">
+        <size>40</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>239</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-partial-01.cs">
     <type name="Foo.Hello">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
+  <test name="test-partial-26.cs">
+    <type name="ConsoleApplication1.X">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Foo()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="ConsoleApplication1.Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>98</size>
+      </method>
+    </type>
+    <type name="ConsoleApplication1.Y">
+      <method name="Void Foo()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-27.cs">
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-var-01.cs">
     <type name="Test">
       <method name="Void .ctor()">