New test.
[mono.git] / mcs / tests / ver-il-gmcs.xml
index d8a2843da1d3e55c88afe07fc93c3406c1c0442b..51ea7b62b46c180d4971f7e17bf8faac8663fe00 100644 (file)
         <size>7</size>
       </method>
       <method name="T Create()">
-        <size>39</size>
+        <size>36</size>
       </method>
     </type>
     <type name="X">
         <size>44</size>
       </method>
       <method name="Int32 Main()">
-        <size>87</size>
+        <size>82</size>
       </method>
     </type>
     <type name="X+&lt;Test&gt;c__Iterator0">
         <size>17</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>210</size>
+        <size>214</size>
       </method>
     </type>
     <type name="ComparablePair`2[T,U]">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>58</size>
+        <size>53</size>
       </method>
     </type>
     <type name="MyList`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>62</size>
+        <size>64</size>
       </method>
       <method name="IEnumerator GetEnumerator()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>184</size>
+        <size>185</size>
       </method>
       <method name="Void Dispose()">
-        <size>60</size>
+        <size>62</size>
       </method>
       <method name="Void Reset()">
         <size>6</size>
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>59</size>
+        <size>54</size>
       </method>
     </type>
     <type name="Test`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
         <size>44</size>
       </method>
       <method name="IMyList`1 Map[U](Mapper`2[T,U])">
-        <size>72</size>
+        <size>67</size>
       </method>
       <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
         <size>7</size>
         <size>143</size>
       </method>
       <method name="Int32 GetHashCode()">
-        <size>71</size>
+        <size>66</size>
       </method>
       <method name="IEnumerator`1 GetEnumerator()">
         <size>7</size>
         <size>7</size>
       </method>
       <method name="LinkedList`1[T] op_Addition(LinkedList`1[T], LinkedList`1[T])">
-        <size>128</size>
+        <size>119</size>
       </method>
     </type>
     <type name="LinkedList`1+Node[T]">
         <size>7</size>
       </method>
       <method name="Void Print(System.IO.TextWriter)">
-        <size>92</size>
+        <size>87</size>
       </method>
     </type>
     <type name="MyString">
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>500</size>
+        <size>483</size>
       </method>
     </type>
     <type name="Mapper`2[A,R]">
         <size>78</size>
       </method>
       <method name="Polynomial`1[E] Mul(Polynomial`1[E])">
-        <size>222</size>
+        <size>219</size>
       </method>
       <method name="E Eval(E)">
-        <size>109</size>
+        <size>106</size>
       </method>
     </type>
     <type name="TestPolynomial">
   <test name="gtest-151.cs">
     <type name="Test`1[T]">
       <method name="Void .ctor()">
-        <size>46</size>
+        <size>45</size>
       </method>
     </type>
     <type name="X">
   <test name="gtest-153.cs">
     <type name="MyClass`1[T]">
       <method name="Void .ctor()">
-        <size>59</size>
+        <size>56</size>
       </method>
     </type>
     <type name="X">
   <test name="gtest-155.cs">
     <type name="MyClass`1[T]">
       <method name="Void .ctor()">
-        <size>59</size>
+        <size>56</size>
       </method>
     </type>
     <type name="X">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>92</size>
+        <size>96</size>
       </method>
     </type>
   </test>
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>117</size>
+        <size>118</size>
       </method>
     </type>
     <type name="X+A">
         <size>1</size>
       </method>
       <method name="Int32 Main()">
-        <size>181</size>
+        <size>184</size>
       </method>
     </type>
     <type name="X+&lt;&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>74</size>
+        <size>69</size>
       </method>
     </type>
     <type name="test.Test`1+&lt;Lookup&gt;c__Iterator0[T]">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>117</size>
+        <size>112</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>86</size>
+        <size>81</size>
       </method>
     </type>
     <type name="HashSet`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
         <size>44</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>100</size>
+        <size>95</size>
       </method>
       <method name="IEnumerable`1 FromTo(Int32, Int32)">
         <size>44</size>
         <size>7</size>
       </method>
       <method name="Void AddAll[U](IEnumerable`1)">
-        <size>66</size>
+        <size>61</size>
       </method>
       <method name="Boolean searchoradd(T ByRef, Boolean, Boolean, Boolean)">
         <size>2</size>
         <size>11</size>
       </method>
       <method name="Void Run()">
-        <size>156</size>
+        <size>147</size>
       </method>
     </type>
     <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>58</size>
+        <size>53</size>
       </method>
     </type>
     <type name="Qux`2+GetEnumerator&gt;c__Iterator0[X,V]">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>46</size>
+        <size>60</size>
       </method>
     </type>
   </test>
         <size>106</size>
       </method>
       <method name="Int32 Test(System.Type, System.Type[])">
-        <size>394</size>
+        <size>398</size>
       </method>
       <method name="Int32 Test()">
         <size>532</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>63</size>
+        <size>74</size>
       </method>
     </type>
     <type name="D">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>69</size>
+        <size>64</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>64</size>
+        <size>59</size>
       </method>
     </type>
     <type name="Test+GetEnumerator&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Void Foo()">
-        <size>40</size>
+        <size>37</size>
       </method>
     </type>
     <type name="Foo">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>58</size>
+        <size>53</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Do()">
-        <size>53</size>
+        <size>50</size>
       </method>
     </type>
     <type name="Reference">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>64</size>
+        <size>59</size>
       </method>
     </type>
     <type name="BaseCollection`1[T]">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>105</size>
+        <size>103</size>
       </method>
       <method name="Int32 f2(IList, IList)">
         <size>2</size>
       <method name="Void CopyTo(Bug.xxx*)">
         <size>99</size>
       </method>
-      <method name="Void Convert(Bug.xxx*, System.UInt64*)">
-        <size>93</size>
-      </method>
       <method name="Void Main()">
         <size>1</size>
       </method>
+      <method name="Void Convert(Bug.xxx*, UInt64*)">
+        <size>93</size>
+      </method>
     </type>
   </test>
   <test name="gtest-354.cs">
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>72</size>
+        <size>67</size>
       </method>
       <method name="IEnumerable`1 setX()">
         <size>16</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>254</size>
+        <size>260</size>
       </method>
     </type>
     <type name="MyTypeA">
         <size>19</size>
       </method>
       <method name="Void Main()">
-        <size>20</size>
+        <size>22</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>102</size>
+        <size>99</size>
       </method>
     </type>
     <type name="MyColor">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>57</size>
+        <size>56</size>
       </method>
       <method name="System.Object Test(System.String)">
         <size>42</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>183</size>
+        <size>173</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>150</size>
+        <size>258</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
+  <test name="gtest-439.cs">
+    <type name="MonoBug.Stuff">
+      <method name="MonoBug.GenericStuff`2[T1,T2] CreateThing[T1,T2](T1, T2)">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="MonoBug.GenericStuff`2[T1,T2]">
+      <method name="Void .ctor(T1, T2)">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="MonoBug.Program">
+      <method name="Void Main()">
+        <size>35</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-440.cs">
+    <type name="AnyObjectId">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 get_W1()">
+        <size>7</size>
+      </method>
+      <method name="Void set_W1(Int32)">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="ObjectId">
+      <method name="Void .ctor()">
+        <size>14</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-441.cs">
+    <type name="Name.Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Name.Subclass">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.List`1[System.Int32] get_List()">
+        <size>7</size>
+      </method>
+      <method name="Void Main(System.String[])">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-442.cs">
+    <type name="NonGenericBase">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 get_Item(Int32)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="GenericBase`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="T get_Instance()">
+        <size>7</size>
+      </method>
+      <method name="Void Foo()">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="EntryPoint">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-444.cs">
+    <type name="MyClass">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>114</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-445.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void Foo[T](T ByRef)">
+        <size>1</size>
+      </method>
+      <method name="Void Foo[T](T[])">
+        <size>1</size>
+      </method>
+      <method name="Void Foo[T](T[,])">
+        <size>1</size>
+      </method>
+      <method name="Void Foo[T](T[,,])">
+        <size>1</size>
+      </method>
+      <method name="Void Bar(Int32 ByRef)">
+        <size>1</size>
+      </method>
+      <method name="Void Bar(System.Int32[])">
+        <size>1</size>
+      </method>
+      <method name="Void Bar(System.Int32[,])">
+        <size>1</size>
+      </method>
+      <method name="Void Bar(System.Int32[,,])">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-446.cs">
+    <type name="BugTest.Bug`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void CreateObject(T ByRef)">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="BugTest.Program">
+      <method name="Int32 Main()">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-anon-1.cs">
     <type name="X">
       <method name="Void .ctor()">
         <size>44</size>
       </method>
       <method name="Int32 Main()">
-        <size>100</size>
+        <size>95</size>
       </method>
     </type>
     <type name="X+&lt;Test&gt;c__Iterator0`1[T]">
         <size>16</size>
       </method>
       <method name="Void &lt;Main&gt;m__4()">
-        <size>59</size>
+        <size>61</size>
       </method>
       <method name="Void &lt;Main&gt;m__5()">
-        <size>51</size>
+        <size>53</size>
       </method>
     </type>
   </test>
         <size>26</size>
       </method>
       <method name="Int32 Main()">
-        <size>300</size>
+        <size>431</size>
       </method>
     </type>
     <type name="Test+&lt;For&gt;c__AnonStorey0`1[T]">
         <size>56</size>
       </method>
     </type>
+    <type name="Test">
+      <method name="Void ArrayMutate[T](T[])">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ArrayMutate&gt;c__AnonStorey9`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__9(Int32)">
+        <size>36</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Func`1[T[][]] ArrayMultiMutate[T](T[][])">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyA`1[T]">
+      <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">
     <type name="HS`1[T]">
         <size>33</size>
       </method>
       <method name="System.String Implode[TSource](IEnumerable`1, System.String, System.Action`2[System.Text.StringBuilder,TSource])">
-        <size>130</size>
+        <size>126</size>
       </method>
     </type>
     <type name="Test">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>62</size>
+        <size>57</size>
       </method>
       <method name="Int32 GetItem()">
         <size>50</size>
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>83</size>
+        <size>78</size>
       </method>
     </type>
     <type name="Hello">
       </method>
     </type>
   </test>
+  <test name="gtest-anon-53.cs">
+    <type name="TestComp.Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main(System.String[])">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="TestComp.Program+MyClass">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void MyTemplate(TestComp.Program+MyClass+MyDelegate)">
+        <size>1</size>
+      </method>
+      <method name="Void UseATemplate()">
+        <size>36</size>
+      </method>
+      <method name="Void &lt;UseATemplate&gt;m__0(System.Collections.Generic.List`1[System.Int32] ByRef)">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="TestComp.Program+MyClass+MyDelegate">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(System.Collections.Generic.List`1[System.Int32] ByRef)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.Collections.Generic.List`1[System.Int32] ByRef, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.Collections.Generic.List`1[System.Int32] ByRef, IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-54.cs">
+    <type name="Class">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.String get_Property()">
+        <size>6</size>
+      </method>
+      <method name="System.String Method()">
+        <size>44</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>39</size>
+      </method>
+    </type>
+    <type name="Class+&lt;Method&gt;c__AnonStorey0">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.String &lt;&gt;m__0()">
+        <size>56</size>
+      </method>
+    </type>
+    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.String &lt;&gt;m__1(System.String)">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2+&lt;Method&gt;c__AnonStorey1">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.String &lt;&gt;m__2()">
+        <size>39</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anon-55.cs">
+    <type name="Thing`1[TFirst]">
+      <method name="Void .ctor(Action`1)">
+        <size>14</size>
+      </method>
+      <method name="Thing`1[TFirst] Create[TSecond](System.Func`2[TFirst,TSecond])">
+        <size>31</size>
+      </method>
+      <method name="Void SomeAction()">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()">
+        <size>42</size>
+      </method>
+      <method name="System.Object &lt;Main&gt;m__1(System.Object)">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Thing`1+&lt;Create&gt;c__AnonStorey0`1[TFirst,TSecond]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0(TFirst)">
+        <size>47</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-anon-6.cs">
     <type name="X">
       <method name="Void .ctor()">
         <size>30</size>
       </method>
       <method name="Void Main()">
-        <size>63</size>
+        <size>58</size>
       </method>
     </type>
     <type name="X+&lt;Test&gt;c__Iterator0">
         <size>11</size>
       </method>
       <method name="Void Main()">
-        <size>83</size>
+        <size>78</size>
       </method>
       <method name="Foo op_Implicit(Test)">
         <size>30</size>
       </method>
     </type>
   </test>
-  <test name="gtest-anon-type-09.cs">
-    <type name="My.System.Test">
-      <method name="Void Main()">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;X&gt;__T]">
-      <method name="Void .ctor(&lt;X&gt;__T)">
-        <size>14</size>
-      </method>
-      <method name="&lt;X&gt;__T get_X()">
-        <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>
-  </test>
-  <test name="gtest-anon-type-10.cs">
-    <type name="A">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Int32 get_X()">
-        <size>3</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Int32 Main()">
-        <size>11</size>
-      </method>
-      <method name="Int32 Test()">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;X&gt;__T]">
-      <method name="Void .ctor(&lt;X&gt;__T)">
-        <size>14</size>
-      </method>
-      <method name="&lt;X&gt;__T get_X()">
-        <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>
-  </test>
   <test name="gtest-anontype-01.cs">
     <type name="Test">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
+  <test name="gtest-anontype-09.cs">
+    <type name="My.System.Test">
+      <method name="Int32 Main()">
+        <size>35</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;X&gt;__T]">
+      <method name="Void .ctor(&lt;X&gt;__T)">
+        <size>14</size>
+      </method>
+      <method name="&lt;X&gt;__T get_X()">
+        <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`1[&lt;Value&gt;__T]">
+      <method name="Void .ctor(&lt;Value&gt;__T)">
+        <size>14</size>
+      </method>
+      <method name="&lt;Value&gt;__T get_Value()">
+        <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>
+  </test>
+  <test name="gtest-anontype-10.cs">
+    <type name="A">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 get_X()">
+        <size>3</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>11</size>
+      </method>
+      <method name="Int32 Test()">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;X&gt;__T]">
+      <method name="Void .ctor(&lt;X&gt;__T)">
+        <size>14</size>
+      </method>
+      <method name="&lt;X&gt;__T get_X()">
+        <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>
+  </test>
   <test name="gtest-anontype-11.cs">
     <type name="Alpha">
       <method name="Void .ctor(String)">
         <size>7</size>
       </method>
       <method name="Void TestList(System.Collections.Generic.List`1[System.Int32], Int32)">
-        <size>77</size>
+        <size>81</size>
       </method>
       <method name="Int32 Main()">
-        <size>505</size>
+        <size>524</size>
       </method>
     </type>
     <type name="Test+Wrap">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>69</size>
+        <size>73</size>
       </method>
     </type>
   </test>
         <size>34</size>
       </method>
       <method name="Void R(System.Object ByRef)">
-        <size>27</size>
+        <size>28</size>
       </method>
     </type>
   </test>
         <size>59</size>
       </method>
       <method name="Void ConstantTest_2()">
-        <size>75</size>
+        <size>62</size>
       </method>
       <method name="Void ConstantTest_3()">
-        <size>61</size>
+        <size>54</size>
       </method>
       <method name="Void ConstantTest_4()">
         <size>54</size>
         <size>118</size>
       </method>
       <method name="Void ConvertTest_9()">
-        <size>87</size>
+        <size>97</size>
       </method>
       <method name="Void ConvertTest_10()">
-        <size>178</size>
+        <size>163</size>
       </method>
       <method name="Void ConvertTest_11()">
-        <size>116</size>
+        <size>101</size>
       </method>
       <method name="Void ConvertTest_12()">
         <size>166</size>
         <size>113</size>
       </method>
       <method name="Void EqualTestDelegate_2()">
-        <size>342</size>
+        <size>312</size>
       </method>
       <method name="Void ExclusiveOrTest()">
         <size>115</size>
         <size>292</size>
       </method>
       <method name="Void MemberAccessTest()">
-        <size>122</size>
+        <size>132</size>
       </method>
       <method name="Void MemberAccessTest_2()">
         <size>63</size>
       </method>
       <method name="Void MemberAccessTest_3()">
-        <size>103</size>
+        <size>113</size>
       </method>
       <method name="Void MemberAccessTest_4()">
-        <size>81</size>
+        <size>91</size>
       </method>
       <method name="Void MemberAccessTest_5()">
         <size>39</size>
       </method>
       <method name="Void MemberAccessTest_6()">
-        <size>94</size>
+        <size>104</size>
       </method>
       <method name="Void MemberAccessTest_7()">
         <size>109</size>
         <size>63</size>
       </method>
       <method name="Void MemberAccessTest_9()">
-        <size>70</size>
+        <size>80</size>
       </method>
       <method name="Void MemberInitTest()">
         <size>302</size>
       </method>
       <method name="Void MemberInitTest_2()">
-        <size>265</size>
+        <size>250</size>
       </method>
       <method name="Void MemberInitTest_3()">
         <size>124</size>
         <size>7</size>
       </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest&gt;c__AnonStorey1">
+    <type name="Tester">
+      <method name="Void NewArrayInitTest_6()">
+        <size>103</size>
+      </method>
+      <method name="Void LambdaTest()">
+        <size>89</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberAccessTest&gt;c__AnonStorey2">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest_3&gt;c__AnonStorey2">
+    <type name="Tester+&lt;MemberAccessTest_3&gt;c__AnonStorey3">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest_4&gt;c__AnonStorey3">
+    <type name="Tester+&lt;MemberAccessTest_4&gt;c__AnonStorey4">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest_6&gt;c__AnonStorey4">
+    <type name="Tester+&lt;MemberAccessTest_6&gt;c__AnonStorey5">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
-    <type name="Tester+&lt;MemberAccessTest_9&gt;c__AnonStorey5">
+    <type name="Tester+&lt;MemberAccessTest_9&gt;c__AnonStorey6">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>346</size>
+        <size>366</size>
       </method>
     </type>
     <type name="C+&lt;Main&gt;c__AnonStorey0">
       </method>
     </type>
   </test>
+  <test name="gtest-etree-07.cs">
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Test()">
+        <size>14</size>
+      </method>
+      <method name="Int32* Foo()">
+        <size>3</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>594</size>
+      </method>
+    </type>
+    <type name="EmptyDelegate">
+      <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="UnsafeDelegate">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Int32* Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Int32* EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-etree-08.cs">
     <type name="Foo">
       <method name="Void .ctor()">
         <size>3</size>
       </method>
       <method name="Int32 Goo(Boolean)">
-        <size>199</size>
+        <size>204</size>
       </method>
       <method name="Int32 Main()">
         <size>14</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>289</size>
+        <size>299</size>
       </method>
       <method name="System.Int64[] GetValues()">
         <size>23</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>58</size>
+        <size>53</size>
       </method>
       <method name="IEnumerable`1 Test[T](Int32)">
         <size>30</size>
       </method>
     </type>
   </test>
+  <test name="gtest-etree-15.cs">
+    <type name="Foo">
+      <method name="Int32 Helper(System.Linq.Expressions.Expression`1[System.Predicate`1[System.Int32]])">
+        <size>2</size>
+      </method>
+      <method name="Void Main()">
+        <size>190</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-16.cs">
+    <type name="Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>136</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-17.cs">
+    <type name="CompilerCrashTest.QueryCompiler">
+      <method name="D Compile[D](System.Linq.Expressions.Expression`1[D])">
+        <size>12</size>
+      </method>
+      <method name="System.Delegate Compile(System.Linq.Expressions.LambdaExpression)">
+        <size>6</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-18.cs">
+    <type name="FooBase">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>140</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-19.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>20</size>
+      </method>
+      <method name="T Value[T]()">
+        <size>76</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-exmethod-01.cs">
     <type name="SimpleTest">
       <method name="System.String Prefix(System.String, System.String)">
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>61</size>
+        <size>63</size>
       </method>
     </type>
     <type name="ChatClient">
     </type>
     <type name="ChatExtensions">
       <method name="Void Say(ChatClient, System.String, System.Collections.Specialized.StringCollection)">
-        <size>60</size>
+        <size>62</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
+  <test name="gtest-exmethod-26.cs">
+    <type name="test.TypeExtensions">
+      <method name="Boolean IsNullable(System.Type)">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="testmono.MainClass">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>33</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-27.cs">
+    <type name="Foo.Extensions">
+      <method name="System.String AsString(IList`1)">
+        <size>6</size>
+      </method>
+    </type>
+    <type name="Bar.Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>17</size>
+      </method>
+      <method name="System.String Pan(System.Byte[])">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-28.cs">
+    <type name="Foo">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Extensions">
+      <method name="Boolean IsFoo(Foo)">
+        <size>2</size>
+      </method>
+      <method name="Boolean IsBar(Bar)">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</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>65</size>
+        <size>67</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>1054</size>
+        <size>1099</size>
       </method>
     </type>
     <type name="Test+Point">
         <size>15</size>
       </method>
       <method name="Void Main()">
-        <size>48</size>
+        <size>52</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>215</size>
+        <size>219</size>
       </method>
     </type>
   </test>
         <size>39</size>
       </method>
       <method name="Void Foo(Point ByRef)">
-        <size>25</size>
+        <size>38</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
+  <test name="gtest-initialize-09.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>54</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-10.cs">
+    <type name="Foo">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 get_P()">
+        <size>7</size>
+      </method>
+      <method name="Void set_P(Int32)">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>38</size>
+      </method>
+      <method name="Boolean Do(Foo)">
+        <size>86</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-iter-01.cs">
     <type name="C">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>213</size>
+        <size>218</size>
       </method>
       <method name="Void Dispose()">
-        <size>51</size>
+        <size>56</size>
       </method>
       <method name="Void Reset()">
         <size>6</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>121</size>
+        <size>116</size>
       </method>
       <method name="Nullable`1 &lt;Main&gt;m__0(Int32)">
         <size>30</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>181</size>
+        <size>186</size>
       </method>
       <method name="Void Dispose()">
-        <size>51</size>
+        <size>56</size>
       </method>
       <method name="Void Reset()">
         <size>6</size>
         <size>16</size>
       </method>
       <method name="Int32 Main()">
-        <size>114</size>
+        <size>116</size>
       </method>
     </type>
     <type name="App+&lt;QueryEnumerable&gt;c__Iterator0`1[T]">
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>99</size>
+        <size>94</size>
       </method>
     </type>
     <type name="Test+&lt;Create&gt;c__Iterator0`1[T]">
         <size>44</size>
       </method>
       <method name="Int32 Main()">
-        <size>168</size>
+        <size>159</size>
       </method>
     </type>
     <type name="Test+&lt;FromTo&gt;c__Iterator0">
       </method>
     </type>
   </test>
+  <test name="gtest-iter-11.cs">
+    <type name="Foo">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="System.String get_Name()">
+        <size>7</size>
+      </method>
+      <method name="Void set_Name(System.String)">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Collection`1[T]">
+      <method name="Void .ctor()">
+        <size>18</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
+      <method name="Void Add(T)">
+        <size>13</size>
+      </method>
+      <method name="IEnumerator`1 GetEnumerator()">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="BarCollection">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>148</size>
+      </method>
+    </type>
+    <type name="Collection`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>12</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>175</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>56</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </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>2008</size>
+        <size>2137</size>
       </method>
       <method name="Void Foo(Int32, Boolean)">
         <size>11</size>
         <size>7</size>
       </method>
     </type>
+    <type name="from.C">
+      <method name="Int32 &lt;Main&gt;m__39(Int32)">
+        <size>2</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>
+      <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;__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;&lt;&gt;__TranspIdent13&gt;__T get_&lt;&gt;__TranspIdent13()">
+        <size>7</size>
+      </method>
+      <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>
+    <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">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>517</size>
+        <size>501</size>
       </method>
       <method name="Int32 &lt;Main&gt;m__0(Int32)">
         <size>2</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>569</size>
+        <size>553</size>
       </method>
     </type>
     <type name="&lt;PrivateImplementationDetails&gt;">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>414</size>
+        <size>406</size>
       </method>
     </type>
     <type name="&lt;&gt;__AnonType0`2[&lt;i&gt;__T,&lt;u&gt;__T]">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>761</size>
+        <size>748</size>
       </method>
     </type>
     <type name="&lt;&gt;__AnonType0`2[&lt;i1&gt;__T,&lt;i2&gt;__T]">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>635</size>
+        <size>631</size>
       </method>
     </type>
     <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;ab&gt;__T]">
         <size>108</size>
       </method>
       <method name="Int32 Main()">
-        <size>481</size>
+        <size>464</size>
       </method>
     </type>
     <type name="&lt;&gt;__AnonType0`2[&lt;values&gt;__T,&lt;length&gt;__T]">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>161</size>
+        <size>157</size>
       </method>
       <method name="Int32 &lt;Main&gt;m__0(Int32)">
         <size>2</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>214</size>
+        <size>219</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-6.cs">
+    <type name="Program">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="Cov1`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 Invoke(IContravariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov2`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 Invoke(IContravariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov3`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 Invoke(IContravariant`1)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(IContravariant`1, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov4`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 Invoke()">
+        <size>0</size>
+      </method>
+      <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="Contra5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <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>
+    <type name="Contra6`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1 Invoke()">
+        <size>0</size>
+      </method>
+      <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="Contra7`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <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>
+    <type name="Contra8`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <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="gtest-variance-7.cs">
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="Covariant`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="T Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <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>
+    </type>
+    <type name="CoContra`2[TR,T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="TR Invoke(T)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="TR EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="None`1[T]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <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>
+    </type>
+    <type name="Test`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</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>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</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>
+    </type>
+    <type name="Test2`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <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]]]]]]]]] Invoke()">
+        <size>0</size>
+      </method>
+      <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>
+    <type name="Test3`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</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>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</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>
+    </type>
+    <type name="Test4`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</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>
+      <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="Test5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <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>
+    <type name="Test6`1[U]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</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>
+      <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 EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(CoContra`2[U,V])">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(CoContra`2[U,V], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both2`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(CoContra`2[U,Contra`1[U]])">
+        <size>0</size>
+      </method>
+      <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="Both3`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(CoContra`2[U,Contra`1[System.Int32]])">
+        <size>0</size>
+      </method>
+      <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>
+    <type name="Both4`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(Both`2[V,U])">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(Both`2[V,U], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both5`2[U,V]">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="Void Invoke(Both`2[V,System.Int32])">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(Both`2[V,System.Int32], System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-9.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Foo(IIn`1)">
+        <size>1</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>10</size>
       </method>
     </type>
   </test>
         <size>32</size>
       </method>
       <method name="TR Sum[TA,TR](IEnumerable`1, System.Func`3[TR,TA,TR])">
-        <size>125</size>
+        <size>120</size>
       </method>
     </type>
     <type name="Repro">
         <size>7</size>
       </method>
       <method name="Void &lt;&gt;m__0(Int32)">
-        <size>57</size>
+        <size>52</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
+  <test name="ltest-22.cs">
+    <type name="Product">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <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>
+      </method>
+      <method name="&lt;ExpensiveProducts&gt;__T get_ExpensiveProducts()">
+        <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">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;&gt;m__3(Product)">
+        <size>52</size>
+      </method>
+      <method name="Decimal &lt;&gt;m__4(Product)">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-1.cs">
     <type name="X">
       <method name="Void .ctor()">
         <size>8</size>
       </method>
       <method name="Int32 GetInfo(MonoEnumInfo ByRef)">
-        <size>23</size>
+        <size>20</size>
       </method>
       <method name="Int32 Main()">
         <size>32</size>
         <size>54</size>
       </method>
       <method name="Int32 Test()">
-        <size>358</size>
+        <size>356</size>
       </method>
       <method name="Int32 Main()">
         <size>94</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>88</size>
+        <size>87</size>
       </method>
     </type>
   </test>
         <size>9</size>
       </method>
       <method name="Void test5(A ByRef)">
-        <size>10</size>
+        <size>9</size>
       </method>
       <method name="Void test6(B ByRef)">
-        <size>9</size>
+        <size>8</size>
       </method>
       <method name="Void test7()">
         <size>28</size>
         <size>7</size>
       </method>
       <method name="Int32 Main(System.String[])">
-        <size>76</size>
+        <size>78</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>36</size>
+        <size>31</size>
       </method>
     </type>
     <type name="S">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>180</size>
+        <size>174</size>
       </method>
       <method name="System.Object compare_gte(Int32, Int32)">
         <size>13</size>
         <size>7</size>
       </method>
       <method name="Int32 Main(System.String[])">
-        <size>133</size>
+        <size>138</size>
       </method>
     </type>
     <type name="MonoBUG.Foo">
         <size>12</size>
       </method>
       <method name="MonoBUG.Foo get_Current()">
-        <size>51</size>
+        <size>46</size>
       </method>
       <method name="Boolean MoveNext()">
         <size>12</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>68</size>
+        <size>65</size>
       </method>
     </type>
   </test>
         <size>38</size>
       </method>
       <method name="Boolean One()">
-        <size>63</size>
+        <size>62</size>
       </method>
       <method name="Boolean Two()">
-        <size>63</size>
+        <size>62</size>
       </method>
       <method name="Boolean Three()">
-        <size>63</size>
+        <size>62</size>
       </method>
     </type>
     <type name="List+MyEnumerator">
         <size>7</size>
       </method>
       <method name="Int32 RunTests(System.Type, System.String[])">
-        <size>572</size>
+        <size>571</size>
       </method>
       <method name="Int32 RunTests(System.Type)">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>32</size>
+        <size>36</size>
       </method>
     </type>
     <type name="Blah">
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>65</size>
+        <size>67</size>
       </method>
     </type>
     <type name="Blah">
         <size>361</size>
       </method>
       <method name="Int32 AddABunchOfInts(...)">
-        <size>64</size>
+        <size>63</size>
       </method>
       <method name="Int32 AddASecondBunchOfInts(Int32, ...)">
-        <size>64</size>
+        <size>63</size>
       </method>
       <method name="Result VtAddABunchOfInts(...)">
-        <size>69</size>
+        <size>68</size>
       </method>
       <method name="Result VtAddASecondBunchOfInts(Int32, ...)">
-        <size>69</size>
+        <size>68</size>
       </method>
       <method name="Int32 InstAddABunchOfInts(...)">
-        <size>64</size>
+        <size>63</size>
       </method>
       <method name="Int32 InstAddASecondBunchOfInts(Int32, ...)">
-        <size>64</size>
+        <size>63</size>
       </method>
       <method name="Result InstVtAddABunchOfInts(...)">
-        <size>69</size>
+        <size>68</size>
       </method>
       <method name="Result InstVtAddASecondBunchOfInts(Int32, ...)">
-        <size>69</size>
+        <size>68</size>
       </method>
     </type>
     <type name="Result">
         <size>10</size>
       </method>
       <method name="Void Main()">
-        <size>59</size>
+        <size>61</size>
       </method>
     </type>
     <type name="T+C">
         <size>26</size>
       </method>
       <method name="Int32 Main()">
-        <size>123</size>
+        <size>122</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="System.Object Add(integer, System.Object)">
-        <size>72</size>
+        <size>70</size>
       </method>
       <method name="Int32 Main()">
-        <size>69</size>
+        <size>68</size>
       </method>
     </type>
     <type name="integer">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>313</size>
+        <size>311</size>
       </method>
       <method name="Void Login(System.String)">
         <size>1</size>
     </type>
     <type name="A+B">
       <method name="Void .ctor()">
-        <size>468</size>
+        <size>473</size>
       </method>
     </type>
     <type name="A+B+C">
     </type>
     <type name="A+B">
       <method name="Void .ctor()">
-        <size>468</size>
+        <size>473</size>
       </method>
     </type>
     <type name="A+B+C">
       <method name="Int32 CreateFromString(Int32)">
         <size>10</size>
       </method>
-      <method name="System.Double* GetValue(Double)">
-        <size>5</size>
-      </method>
       <method name="Void Main()">
         <size>1</size>
       </method>
         <size>1</size>
       </method>
     </type>
+    <type name="C">
+      <method name="Double* GetValue(Double)">
+        <size>5</size>
+      </method>
+    </type>
   </test>
   <test name="test-319.cs">
     <type name="ConstFields">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Byte* get_Ptr()">
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Byte* get_Ptr()">
         <size>7</size>
       </method>
-      <method name="Void set_Ptr(System.Byte*)">
+      <method name="Void set_Ptr(Byte*)">
         <size>8</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
-      </method>
     </type>
   </test>
   <test name="test-332.cs">
         <size>11</size>
       </method>
       <method name="Void Main()">
-        <size>12</size>
+        <size>24</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Boolean get_Item(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Boolean get_Item(Double)">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Boolean get_Item(Double)">
+        <size>11</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>260</size>
+        <size>272</size>
       </method>
     </type>
     <type name="X">
         <size>7</size>
       </method>
       <method name="Int32 ParseType(System.String)">
-        <size>164</size>
+        <size>168</size>
       </method>
-      <method name="Void Main()">
-        <size>12</size>
+      <method name="Int32 Main()">
+        <size>54</size>
       </method>
     </type>
   </test>
         <size>16</size>
       </method>
       <method name="Void Main()">
-        <size>113</size>
+        <size>108</size>
       </method>
     </type>
   </test>
       <method name="Int32 Main()">
         <size>345</size>
       </method>
+      <method name="Void F(RuntimeArgumentHandle)">
+        <size>1</size>
+      </method>
+      <method name="Void G(...)">
+        <size>22</size>
+      </method>
     </type>
   </test>
   <test name="test-4.cs">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Int32* get_v()">
-        <size>20</size>
-      </method>
       <method name="Int32 Main()">
         <size>48</size>
       </method>
+      <method name="Int32* get_v()">
+        <size>20</size>
+      </method>
     </type>
   </test>
   <test name="test-405.cs">
       <method name="Int32 Main(System.String[])">
         <size>180</size>
       </method>
-      <method name="UInt32 DoOp(System.UInt32*)">
+      <method name="UInt32 DoOp(UInt32*)">
         <size>11</size>
       </method>
-      <method name="UInt32 DoOp2(System.UInt32*)">
+      <method name="UInt32 DoOp2(UInt32*)">
         <size>10</size>
       </method>
     </type>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void lowLevelCall(System.Int32*)">
-        <size>1</size>
-      </method>
       <method name="Void Func(Int32 ByRef)">
-        <size>13</size>
+        <size>12</size>
       </method>
       <method name="Void Main()">
         <size>10</size>
       </method>
+      <method name="Void lowLevelCall(Int32*)">
+        <size>1</size>
+      </method>
     </type>
   </test>
   <test name="test-424.cs">
         <size>16</size>
       </method>
       <method name="Void Main()">
-        <size>62</size>
+        <size>63</size>
       </method>
     </type>
     <type name="XX+&lt;X&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>239</size>
+        <size>237</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 cast_int(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="UInt32 cast_uint(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="Int16 cast_short(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="Char cast_char(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="UInt16 cast_ushort(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="Byte cast_byte(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="SByte cast_sbyte(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="Int64 cast_long(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="UInt64 cast_ulong(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="Single cast_float(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="Double cast_double(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="Boolean cast_bool(System.Object)">
-        <size>8</size>
+        <size>7</size>
       </method>
       <method name="Int32 Main()">
         <size>1120</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>52</size>
+        <size>50</size>
       </method>
     </type>
     <type name="Value">
         <size>2</size>
       </method>
       <method name="Void Main()">
-        <size>160</size>
+        <size>165</size>
       </method>
     </type>
     <type name="Q">
         <size>124</size>
       </method>
       <method name="Void test_76590(System.String)">
-        <size>100</size>
+        <size>107</size>
       </method>
       <method name="Void test_77964()">
         <size>37</size>
       </method>
       <method name="Boolean bug_78860()">
-        <size>107</size>
+        <size>114</size>
       </method>
       <method name="Int32 Main()">
         <size>1037</size>
         <size>11</size>
       </method>
       <method name="Void Run()">
-        <size>166</size>
+        <size>176</size>
       </method>
     </type>
     <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
   </test>
   <test name="test-498.cs">
     <type name="C">
+      <method name="Int32 Main()">
+        <size>81</size>
+      </method>
+    </type>
+    <type name="A">
       <method name="Void .ctor(Single)">
         <size>0</size>
       </method>
-      <method name="Int32 Main()">
-        <size>39</size>
+      <method name="Int32 get_Foo()">
+        <size>0</size>
       </method>
     </type>
   </test>
         <size>6</size>
       </method>
       <method name="Int32 Main()">
-        <size>484</size>
+        <size>498</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="System.Object TestMethod(TestCollection)">
-        <size>62</size>
+        <size>64</size>
       </method>
       <method name="Void Main()">
         <size>1</size>
         <size>76</size>
       </method>
       <method name="System.String BuildNode_D()">
-        <size>151</size>
+        <size>155</size>
       </method>
       <method name="Void BuildNode_E(System.String[,] ByRef)">
         <size>68</size>
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>62</size>
+        <size>60</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Foo(A ByRef)">
-        <size>9</size>
+        <size>8</size>
       </method>
       <method name="Void Foo(System.Object ByRef)">
         <size>9</size>
         <size>16</size>
       </method>
       <method name="Int32 Main()">
-        <size>63</size>
+        <size>65</size>
       </method>
     </type>
     <type name="Foo+&lt;foo&gt;c__Iterator0">
       <method name="Int32 Main()">
         <size>130</size>
       </method>
-      <method name="System.Int32* Conversions(Int64)">
+      <method name="Int32* Conversions(Int64)">
         <size>3</size>
       </method>
-      <method name="Int32 CheckAdd(System.Byte*, Int32)">
+      <method name="Int32 CheckAdd(Byte*, Int32)">
         <size>14</size>
       </method>
-      <method name="Int32 CheckSub(System.Int16*, Int32)">
+      <method name="Int32 CheckSub(Int16*, Int32)">
         <size>16</size>
       </method>
-      <method name="Int32 CheckSub2(System.Int16*, Int32)">
+      <method name="Int32 CheckSub2(Int16*, Int32)">
         <size>23</size>
       </method>
     </type>
       <method name="Int32 Main()">
         <size>8</size>
       </method>
-      <method name="Int32 Test(System.SByte*)">
+      <method name="Int32 Test(SByte*)">
         <size>33</size>
       </method>
     </type>
         <size>67</size>
       </method>
       <method name="Int32 TestObjectSingle()">
-        <size>49</size>
+        <size>48</size>
       </method>
       <method name="Int32 TestObjectDouble()">
-        <size>73</size>
+        <size>72</size>
       </method>
       <method name="Int32 Main()">
         <size>80</size>
         <size>7</size>
       </method>
       <method name="Boolean Test(System.String)">
-        <size>137</size>
+        <size>148</size>
       </method>
       <method name="Int32 Main()">
         <size>49</size>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Int32* get_Foo()">
-        <size>3</size>
-      </method>
       <method name="S* get_Foo2()">
         <size>3</size>
       </method>
       <method name="Void Main()">
         <size>1</size>
       </method>
+      <method name="Int32* get_Foo()">
+        <size>3</size>
+      </method>
     </type>
   </test>
   <test name="test-673.cs">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Byte* GetFoo()">
-        <size>7</size>
+      <method name="Int32 Main()">
+        <size>46</size>
       </method>
-      <method name="System.Byte* GetFoo2()">
+      <method name="Byte* GetFoo()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>46</size>
+      <method name="Byte* GetFoo2()">
+        <size>7</size>
       </method>
     </type>
   </test>
   <test name="test-689.cs">
     <type name="Sample">
-      <method name="Void Foo(System.Byte*, System.Byte*)">
-        <size>46</size>
-      </method>
       <method name="Void Main()">
         <size>3</size>
       </method>
+      <method name="Void Foo(Byte*, Byte*)">
+        <size>46</size>
+      </method>
     </type>
   </test>
   <test name="test-69.cs">
         <size>7</size>
       </method>
       <method name="Void test1(DateTime ByRef)">
-        <size>11</size>
+        <size>10</size>
       </method>
       <method name="Void test2(DateTime ByRef)">
-        <size>14</size>
+        <size>13</size>
       </method>
       <method name="Int32 Main()">
         <size>141</size>
       </method>
     </type>
   </test>
+  <test name="test-703.cs">
+    <type name="A">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void add_Finished(System.EventHandler)">
+        <size>0</size>
+      </method>
+      <method name="Void remove_Finished(System.EventHandler)">
+        <size>0</size>
+      </method>
+      <method name="Void test(A)">
+        <size>19</size>
+      </method>
+      <method name="Void TestA(System.Object, System.EventArgs)">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()">
+        <size>65</size>
+      </method>
+      <method name="Void add_Finished(System.EventHandler)">
+        <size>24</size>
+      </method>
+      <method name="Void remove_Finished(System.EventHandler)">
+        <size>24</size>
+      </method>
+      <method name="Void TestB(System.Object, System.EventArgs)">
+        <size>25</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-705.cs">
+    <type name="Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>1</size>
+      </method>
+      <method name="Nested GetEnumerator()">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test+Nested">
+      <method name="Void System.IDisposable.Dispose()">
+        <size>13</size>
+      </method>
+      <method name="Int32 get_Current()">
+        <size>2</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>2</size>
+      </method>
+      <method name="Void Reset()">
+        <size>1</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()">
+        <size>70</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-706.cs">
+    <type name="Test.CustomParentAttribute">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void DoSomething()">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test.MyClass">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="Test.MyClass+CustomChildAttribute">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void DoSomething()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-707.cs">
+    <type name="Tzap">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tzap+Baz">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Gazonk()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="Tzap+Bar">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Foo()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-708.cs">
+    <type name="A">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="A+ADelegate Delegate2(Boolean)">
+        <size>25</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="A+ADelegate">
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+      <method name="A+ADelegate Invoke(Boolean)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="A+ADelegate EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-709.cs">
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void CopyTo(Int32, System.Char[], Int32, Int32)">
+        <size>68</size>
+      </method>
+      <method name="Void CharCopy(Char*, Char*, Int32)">
+        <size>35</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>58</size>
+      </method>
+    </type>
+  </test>
   <test name="test-71.cs">
     <type name="X">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
+  <test name="test-710.cs">
+    <type name="Z">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-711.cs">
+    <type name="N.Test">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor(Int32)">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-712.cs">
+    <type name="Hello">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Main()">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-713.cs">
+    <type name="DispBar">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>11</size>
+      </method>
+    </type>
+    <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>61</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()">
       </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-73.cs">
     <type name="Abstract">
       <method name="Void .ctor()">
         <size>257</size>
       </method>
       <method name="System.Collections.ArrayList Find(predicate, System.Collections.ArrayList)">
-        <size>79</size>
+        <size>81</size>
       </method>
     </type>
     <type name="predicate">
     </type>
     <type name="X">
       <method name="Boolean &lt;Main&gt;m__0(System.Object)">
-        <size>13</size>
+        <size>12</size>
       </method>
     </type>
   </test>
   <test name="test-anon-35.cs">
     <type name="CustomDict">
       <method name="Void .ctor()">
-        <size>64</size>
+        <size>66</size>
       </method>
       <method name="IEnumerator GetEnumerator()">
         <size>15</size>
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>62</size>
+        <size>64</size>
       </method>
       <method name="IEnumerator GetEnumerator()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Void Main()">
-        <size>62</size>
+        <size>64</size>
       </method>
       <method name="IEnumerator GetEnumerator()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>184</size>
+        <size>185</size>
       </method>
       <method name="Void Dispose()">
-        <size>60</size>
+        <size>62</size>
       </method>
       <method name="Void Reset()">
         <size>6</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>201</size>
+        <size>196</size>
       </method>
     </type>
     <type name="Test+&lt;Foo&gt;c__Iterator0">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Int32* GetUnsafeValue()">
-        <size>3</size>
-      </method>
     </type>
     <type name="C">
       <method name="Void UnsafeTests()">
         <size>16</size>
       </method>
     </type>
+    <type name="UnsafeClass">
+      <method name="Int32* GetUnsafeValue()">
+        <size>3</size>
+      </method>
+    </type>
   </test>
   <test name="test-anon-71.cs">
     <type name="Program">
       </method>
     </type>
   </test>
+  <test name="test-cls-18.cs">
+    <type name="Base">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Test(System.Int32[])">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="CLSClass">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void Test(System.Int32[])">
+        <size>1</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+    </type>
+  </test>
   <test name="test-externalias-01.cs">
     <type name="Test">
       <method name="Void .ctor()">
         <size>16</size>
       </method>
       <method name="Int32 Main()">
-        <size>168</size>
+        <size>171</size>
       </method>
     </type>
     <type name="X+&lt;GetIt&gt;c__Iterator0">
         <size>8</size>
       </method>
       <method name="Int32 Main()">
-        <size>89</size>
+        <size>88</size>
       </method>
     </type>
     <type name="X+&lt;GetRange&gt;c__Iterator0">
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>237</size>
+        <size>245</size>
       </method>
     </type>
     <type name="&lt;PrivateImplementationDetails&gt;">
         <size>44</size>
       </method>
       <method name="Void Main()">
-        <size>97</size>
+        <size>98</size>
       </method>
     </type>
     <type name="X+&lt;GetRange&gt;c__Iterator0">
         <size>16</size>
       </method>
       <method name="Int32 Main()">
-        <size>103</size>
+        <size>104</size>
       </method>
     </type>
     <type name="List">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>184</size>
+        <size>183</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>383</size>
+        <size>399</size>
       </method>
     </type>
     <type name="S+&lt;Get&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>374</size>
+        <size>372</size>
       </method>
     </type>
     <type name="Test+&lt;Foo&gt;c__Iterator0">
         <size>44</size>
       </method>
       <method name="Int32 Main()">
-        <size>169</size>
+        <size>167</size>
       </method>
     </type>
     <type name="X+&lt;Test&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>263</size>
+        <size>268</size>
       </method>
     </type>
     <type name="Tester+&lt;GetEnumerator&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>621</size>
+        <size>623</size>
       </method>
       <method name="Void Dispose()">
-        <size>80</size>
+        <size>82</size>
       </method>
       <method name="Void Reset()">
         <size>6</size>
         <size>1</size>
       </method>
       <method name="Int32 Main()">
-        <size>181</size>
+        <size>184</size>
       </method>
     </type>
     <type name="X+&lt;&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>100</size>
+        <size>102</size>
       </method>
     </type>
     <type name="Test1.Foo+&lt;E&gt;c__Iterator0">