Implement lock statement over generic type parameter
[mono.git] / mcs / tests / ver-il-gmcs.xml
index 1f289853dff07a77f586bea61bbd547e7ffac9cf..5c8f6c730f77372605009484c16f8d303245e332 100644 (file)
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>203</size>
+        <size>204</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>107</size>
+        <size>105</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>208</size>
+        <size>209</size>
       </method>
       <method name="Void TestPairLog()">
-        <size>182</size>
+        <size>184</size>
       </method>
     </type>
     <type name="Pair`2[T,U]">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>66</size>
-      </method>
-      <method name="IEnumerator GetEnumerator()">
-        <size>8</size>
-      </method>
     </type>
-    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="S">
+      <method name="Void System.IDisposable.Dispose()">
+        <size>13</size>
       </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>7</size>
+      <method name="Void Dispose()">
+        <size>6</size>
       </method>
-      <method name="Boolean MoveNext()">
-        <size>187</size>
+    </type>
+    <type name="C">
+      <method name="Void System.IDisposable.Dispose()">
+        <size>1</size>
       </method>
       <method name="Void Dispose()">
-        <size>64</size>
-      </method>
-      <method name="Void Reset()">
         <size>6</size>
       </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>209</size>
+      </method>
+      <method name="Void GenMethod[T](T)">
+        <size>33</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-079.cs">
     <type name="A.ArrayList`1[T]">
         <size>12</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>75</size>
+        <size>73</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>14</size>
       </method>
       <method name="Void Insert(Int32, T)">
-        <size>256</size>
+        <size>255</size>
       </method>
       <method name="Void RemoveAt(Int32)">
         <size>113</size>
         <size>7</size>
       </method>
       <method name="LinkedList`1[T] op_Addition(LinkedList`1[T], LinkedList`1[T])">
-        <size>123</size>
+        <size>120</size>
       </method>
     </type>
     <type name="LinkedList`1+Node[T]">
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>201</size>
+        <size>197</size>
       </method>
     </type>
   </test>
         <size>24</size>
       </method>
       <method name="Void Register(A`1+Changed[T])">
-        <size>36</size>
+        <size>20</size>
       </method>
     </type>
     <type name="Test">
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>120</size>
+        <size>119</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>846</size>
+        <size>920</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>1330</size>
+        <size>1332</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Main(System.String[])">
-        <size>112</size>
+        <size>113</size>
       </method>
     </type>
     <type name="Foo`1[T]">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>134</size>
+        <size>136</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
+  <test name="gtest-139.cs">
+    <type name="MyStruct">
+      <method name="Int32 op_Inequality(Nullable`1, System.String)">
+        <size>2</size>
+      </method>
+      <method name="Int32 op_Equality(Nullable`1, System.String)">
+        <size>2</size>
+      </method>
+      <method name="Int32 op_Inequality(System.String, Nullable`1)">
+        <size>3</size>
+      </method>
+      <method name="Int32 op_Equality(System.String, Nullable`1)">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-140.cs">
     <type name="X">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>1599</size>
+        <size>2199</size>
       </method>
     </type>
   </test>
         <size>12</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>91</size>
+        <size>89</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
     </type>
   </test>
   <test name="gtest-165.cs">
-    <type name="X">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerable GetIt(System.Int32[])">
-        <size>30</size>
-      </method>
+    <type name="C">
       <method name="Int32 Main()">
-        <size>119</size>
-      </method>
-    </type>
-    <type name="X+A">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
-      </method>
-      <method name="Void Invoke()">
-        <size>0</size>
-      </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(IAsyncResult)">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
-        <size>7</size>
-      </method>
-      <method name="Boolean MoveNext()">
-        <size>201</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()">
-        <size>22</size>
-      </method>
-      <method name="Void Dispose()">
-        <size>8</size>
-      </method>
-      <method name="Void Reset()">
-        <size>6</size>
-      </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
-        <size>40</size>
+        <size>27</size>
       </method>
-    </type>
-    <type name="&lt;PrivateImplementationDetails&gt;">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
         <size>7</size>
       </method>
       <method name="Int32 Test()">
-        <size>324</size>
+        <size>323</size>
       </method>
       <method name="Int32 Main()">
         <size>6</size>
         <size>1</size>
       </method>
       <method name="Int32 Main()">
-        <size>186</size>
+        <size>184</size>
       </method>
     </type>
     <type name="X+&lt;&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>126</size>
+        <size>124</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>145</size>
+        <size>143</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>84</size>
+        <size>82</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>11</size>
       </method>
       <method name="Void .ctor(Object[], Object)">
-        <size>217</size>
+        <size>201</size>
       </method>
       <method name="Void add_DoSomething(System.EventHandler)">
         <size>24</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>70</size>
+        <size>68</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>82</size>
+        <size>80</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>82</size>
+        <size>80</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>12</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>75</size>
+        <size>73</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>207</size>
+        <size>205</size>
       </method>
       <method name="Void Dispose()">
         <size>62</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>118</size>
+        <size>116</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
       </method>
     </type>
   </test>
+  <test name="gtest-232.cs">
+    <type name="M">
+      <method name="Int32 Main()">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-233.cs">
     <type name="Program">
       <method name="Void .ctor()">
         <size>11</size>
       </method>
       <method name="Void Run()">
-        <size>151</size>
+        <size>147</size>
       </method>
     </type>
     <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>129</size>
+        <size>127</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>1</size>
       </method>
       <method name="Void Main()">
-        <size>163</size>
+        <size>162</size>
       </method>
       <method name="Void f6(ParamEnum)">
         <size>1</size>
         <size>12</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>80</size>
+        <size>78</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>106</size>
       </method>
       <method name="Int32 Test(System.Type, System.Type[])">
-        <size>400</size>
+        <size>391</size>
       </method>
       <method name="Int32 Test()">
         <size>532</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>94</size>
+        <size>74</size>
       </method>
     </type>
     <type name="D">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>69</size>
+        <size>67</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Void &lt;&gt;m__0()">
-        <size>54</size>
+        <size>39</size>
       </method>
     </type>
     <type name="B+&lt;C&gt;c__AnonStorey1+&lt;C&gt;c__AnonStorey0">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>1</size>
-      </method>
     </type>
     <type name="Foo">
       <method name="Boolean op_Equality(Foo, Foo)">
         <size>6</size>
       </method>
     </type>
+    <type name="S2">
+      <method name="Boolean op_Equality(S2, Nullable`1)">
+        <size>6</size>
+      </method>
+      <method name="Boolean op_Inequality(S2, Nullable`1)">
+        <size>6</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>97</size>
+      </method>
+    </type>
+    <type name="S3">
+      <method name="Decimal op_Inequality(S3, System.Object)">
+        <size>7</size>
+      </method>
+      <method name="Decimal op_Equality(S3, System.Object)">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-359.cs">
     <type name="BaseGeneric`1[T]">
         <size>26</size>
       </method>
       <method name="Void Main()">
-        <size>98</size>
+        <size>88</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>106</size>
+        <size>104</size>
       </method>
       <method name="Void Dispose()">
         <size>46</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>220</size>
+        <size>222</size>
       </method>
     </type>
     <type name="MyType">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>168</size>
+        <size>169</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>234</size>
+        <size>235</size>
       </method>
     </type>
   </test>
         <size>21</size>
       </method>
     </type>
+    <type name="A`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ConditionalParsing">
+      <method name="Void Test_11()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="gtest-410.cs">
     <type name="Program">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>173</size>
+        <size>174</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>258</size>
+        <size>261</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
+  <test name="gtest-448.cs">
+    <type name="Impl`1[T]">
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>2</size>
+      </method>
+      <method name="Void Foo[U](IEnumerable`1)">
+        <size>1</size>
+      </method>
+      <method name="IEnumerator`1 GetEnumerator()">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[K]">
+      <method name="Void .ctor()">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Test`1[TT]">
+      <method name="Void Foo()">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-449.cs">
     <type name="Program">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
+  <test name="gtest-451.cs">
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-452.cs">
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Single op_Implicit(S)">
+        <size>11</size>
+      </method>
+      <method name="Nullable`1 op_Implicit(S)">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-453.cs">
     <type name="Test.CompilerTest">
       <method name="Void .ctor()">
   <test name="gtest-514.cs">
     <type name="test2.Test`3[T,U,V]">
       <method name="Void Method()">
-        <size>128</size>
+        <size>127</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
   </test>
+  <test name="gtest-532.cs">
+    <type name="DictionaryServicesContainer">
+      <method name="Void Register[I,T]()">
+        <size>6</size>
+      </method>
+      <method name="Void Register[I](System.Object)">
+        <size>6</size>
+      </method>
+      <method name="I Resolve[I]()">
+        <size>6</size>
+      </method>
+      <method name="Void Main()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-533.cs">
+    <type name="List`1[X]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="List`1+Comp`1[X,Y]">
+      <method name="List`1+Comp`1[Y,X] flip(Y, X)">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="List`1+Flip`1[X,Z]">
+      <method name="Void .ctor(Comp`1)">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-534.cs">
+    <type name="A">
+      <method name="Void Method(IG`1)">
+        <size>1</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-535.cs">
+    <type name="G`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 Foo[T](T, G`1[T])">
+        <size>2</size>
+      </method>
+      <method name="Int32 Foo[T](T, System.Object)">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-536.cs">
+    <type name="Test">
+      <method name="Void Main()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Expression`1[TDelegate]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Expression">
+      <method name="Void Test()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-537.cs">
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>86</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.String op_BitwiseOr(S, Nullable`1)">
+        <size>6</size>
+      </method>
+      <method name="Nullable`1 op_Addition(S, Nullable`1)">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-538.cs">
+    <type name="S">
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>6</size>
+      </method>
+      <method name="IEnumerator`1 GetEnumerator()">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="IEnumerator`1 GetEnumerator()">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Enumerator`1[T]">
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>6</size>
+      </method>
+      <method name="T get_Current()">
+        <size>6</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>2</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="MySystem">
+      <method name="Int32 Main()">
+        <size>182</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-539.cs">
+    <type name="S">
+      <method name="Int32 get_ID()">
+        <size>7</size>
+      </method>
+      <method name="Void set_ID(Int32)">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="C op_Explicit(S)">
+        <size>11</size>
+      </method>
+      <method name="C op_Explicit(Nullable`1)">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor(Int32)">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>79</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-540.cs">
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>809</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-541.cs">
+    <type name="Foo">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top`1[S]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top`1+Base`1[S,T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top`1+Base`1+Derived`1[S,T,U]">
+      <method name="Void Test()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-542.cs">
+    <type name="A`1[T]">
+      <method name="T getT()">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B[T]">
+      <method name="A`1+B[T] getT()">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-543.cs">
+    <type name="Blah`1[T]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah`1+WrapperWrapper`1[T,N]">
+      <method name="Blah`1+WrapperWrapper`1[T,N] NewWrapperWrapper(Wrapper`1[N])">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor(Wrapper`1)">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Wrapper`1[U]">
+      <method name="Void .ctor(U)">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-544.cs">
+    <type name="A`1[T]">
+      <method name="G Foo[G]()">
+        <size>0</size>
+      </method>
+      <method name="G Foo2[G]()">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="G Foo[G]()">
+        <size>6</size>
+      </method>
+      <method name="G Foo2[G]()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A2`1[T]">
+      <method name="Void Foo[U]()">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B2">
+      <method name="Void Foo[Y]()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-545.cs">
+    <type name="ApplicationContext">
+      <method name="Boolean Foo()">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>104</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-546.cs">
+    <type name="Factory">
+      <method name="Factory+S`2[F1,F2] Create[F1,F2](F1, F2)">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Factory+S`2[G1,G2]">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="TR Test[T1,T2,TR](T1, T2, System.Func`3[T1,T2,TR])">
+        <size>9</size>
+      </method>
+      <method name="Void Main()">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-547.cs">
+    <type name="Foo">
+      <method name="Void GenericLock[T](T)">
+        <size>26</size>
+      </method>
+      <method name="Void Main()">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-anon-1.cs">
     <type name="X">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>110</size>
+        <size>108</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>26</size>
       </method>
       <method name="Int32 Main()">
-        <size>572</size>
+        <size>570</size>
       </method>
     </type>
     <type name="Test+&lt;For&gt;c__AnonStorey0`1[T]">
         <size>33</size>
       </method>
       <method name="System.String Implode[TSource](IEnumerable`1, System.String, System.Action`2[System.Text.StringBuilder,TSource])">
-        <size>128</size>
+        <size>125</size>
       </method>
     </type>
     <type name="Test">
         <size>24</size>
       </method>
       <method name="Void add_Handler(Handler`1[T])">
-        <size>64</size>
+        <size>48</size>
       </method>
       <method name="Void remove_Handler(Handler`1[T])">
-        <size>24</size>
+        <size>8</size>
       </method>
       <method name="Void &lt;add_Handler&gt;m__0(System.Object)">
         <size>18</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>69</size>
+        <size>67</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>98</size>
+        <size>96</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Void Invoke(SomeGenericClass`1+SomeHandlerType[SomeType])">
-        <size>1</size>
+        <size>7</size>
       </method>
       <method name="Void FailsToCompile()">
         <size>19</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>180</size>
+        <size>178</size>
       </method>
       <method name="Void Dispose()">
         <size>66</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>65</size>
+        <size>63</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>98</size>
+        <size>96</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
       </method>
     </type>
   </test>
+  <test name="gtest-anon-type-12.cs">
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;ToString&gt;__T]">
+      <method name="&lt;ToString&gt;__T get_ToString()">
+        <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>
+      <method name="Void .ctor(&lt;ToString&gt;__T)">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-anontype-01.cs">
     <type name="Test">
       <method name="Void .ctor()">
         <size>83</size>
       </method>
       <method name="Int32 Main()">
-        <size>534</size>
+        <size>528</size>
       </method>
     </type>
     <type name="Test+Wrap">
         <size>162</size>
       </method>
       <method name="Void LeftShiftTest_3()">
-        <size>184</size>
+        <size>169</size>
       </method>
       <method name="Void LeftShiftTest_4()">
         <size>261</size>
         <size>159</size>
       </method>
       <method name="Void RightShiftTest_3()">
-        <size>184</size>
+        <size>169</size>
       </method>
       <method name="Void RightShiftTest_4()">
         <size>258</size>
       <method name="Void EqualTestDelegate_3()">
         <size>227</size>
       </method>
+      <method name="Void DivideTest_7()">
+        <size>185</size>
+      </method>
+      <method name="Void MultiplyTest_8()">
+        <size>198</size>
+      </method>
+      <method name="Void RightShiftTest_6()">
+        <size>145</size>
+      </method>
     </type>
   </test>
   <test name="gtest-etree-02.cs">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>300</size>
+        <size>298</size>
       </method>
       <method name="System.Int64[] GetValues()">
         <size>18</size>
         <size>40</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>108</size>
+        <size>106</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>52</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>295</size>
+        <size>293</size>
       </method>
       <method name="Void Dispose()">
         <size>62</size>
   <test name="gtest-etree-20.cs">
     <type name="S">
       <method name="Int32 Main()">
-        <size>215</size>
+        <size>216</size>
       </method>
     </type>
     <type name="A">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>1243</size>
+        <size>1234</size>
       </method>
     </type>
     <type name="Test+Point">
         <size>12</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>136</size>
+        <size>134</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>196</size>
+        <size>194</size>
       </method>
       <method name="Void Dispose()">
         <size>62</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>219</size>
+        <size>217</size>
       </method>
       <method name="Void Dispose()">
         <size>57</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>187</size>
+        <size>185</size>
       </method>
       <method name="Void Dispose()">
         <size>62</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>184</size>
+        <size>181</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>187</size>
+        <size>185</size>
       </method>
       <method name="Void Dispose()">
         <size>57</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>84</size>
+        <size>82</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>130</size>
+        <size>128</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>52</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>103</size>
+        <size>101</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>150</size>
+        <size>143</size>
       </method>
     </type>
     <type name="Collection`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
         <size>12</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>176</size>
+        <size>174</size>
       </method>
       <method name="Void Dispose()">
         <size>57</size>
         <size>40</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>117</size>
+        <size>115</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>52</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>205</size>
+        <size>215</size>
       </method>
       <method name="Void Dispose()">
-        <size>64</size>
+        <size>76</size>
       </method>
       <method name="Void Reset()">
         <size>6</size>
         <size>23</size>
       </method>
       <method name="Int32 Main()">
-        <size>133</size>
+        <size>135</size>
       </method>
       <method name="Int32 &lt;get_BaseM&gt;__BaseCallProxy0()">
         <size>7</size>
         <size>40</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>75</size>
+        <size>73</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>40</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>86</size>
+        <size>84</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
       </method>
     </type>
   </test>
+  <test name="gtest-iter-15.cs">
+    <type name="C`1[TFirst]">
+      <method name="IEnumerable`1 GetEnumerable[V](IEnumerable`1)">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+VSlot`1[TFirst,T]">
+      <method name="Void .ctor(T)">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>111</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;GetEnumerable&gt;c__Iterator0`1[TFirst,V]">
+      <method name="V System.Collections.Generic.IEnumerator&lt;V&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>12</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;V&gt;.GetEnumerator()">
+        <size>40</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>179</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>62</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-16.cs">
+    <type name="Test.Base">
+      <method name="IEnumerable`1 GetStuff(Int32)">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Derived">
+      <method name="IEnumerable`1 GetStuff(Int32)">
+        <size>37</size>
+      </method>
+      <method name="IEnumerable`1 &lt;GetStuff&gt;__BaseCallProxy0(Int32)">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.SpecialDerived">
+      <method name="IEnumerable`1 GetStuff(Int32)">
+        <size>37</size>
+      </method>
+      <method name="Void Main()">
+        <size>61</size>
+      </method>
+      <method name="IEnumerable`1 &lt;GetStuff&gt;__BaseCallProxy0(Int32)">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Base+&lt;GetStuff&gt;c__Iterator0">
+      <method name="Test.Base System.Collections.Generic.IEnumerator&lt;Test.Base&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;Test.Base&gt;.GetEnumerator()">
+        <size>40</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>68</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Derived+&lt;GetStuff&gt;c__Iterator1">
+      <method name="Test.Base System.Collections.Generic.IEnumerator&lt;Test.Base&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;Test.Base&gt;.GetEnumerator()">
+        <size>52</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>185</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>62</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.SpecialDerived+&lt;GetStuff&gt;c__Iterator2">
+      <method name="Test.Base System.Collections.Generic.IEnumerator&lt;Test.Base&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;Test.Base&gt;.GetEnumerator()">
+        <size>52</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>185</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>62</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-lambda-01.cs">
     <type name="X">
       <method name="Int32 Main()">
         <size>32</size>
       </method>
       <method name="TR Sum[TA,TR](IEnumerable`1, System.Func`3[TR,TA,TR])">
-        <size>122</size>
+        <size>123</size>
       </method>
     </type>
     <type name="Repro">
       </method>
     </type>
   </test>
+  <test name="gtest-lambda-26.cs">
+    <type name="C">
+      <method name="Void Main()">
+        <size>35</size>
+      </method>
+      <method name="Void Execute(System.Action)">
+        <size>1</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</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>2205</size>
+        <size>2180</size>
       </method>
       <method name="Void Foo(Int32, Boolean)">
         <size>11</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>509</size>
+        <size>507</size>
       </method>
       <method name="Int32 &lt;Main&gt;m__0(Int32)">
         <size>2</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>561</size>
+        <size>559</size>
       </method>
     </type>
     <type name="&lt;PrivateImplementationDetails&gt;">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>410</size>
+        <size>408</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>754</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>912</size>
+        <size>911</size>
       </method>
     </type>
     <type name="&lt;&gt;__AnonType0`1[&lt;Result&gt;__T]">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>729</size>
+        <size>734</size>
       </method>
     </type>
     <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;ab&gt;__T]">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>86</size>
+        <size>84</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>159</size>
+        <size>157</size>
       </method>
       <method name="Int32 &lt;Main&gt;m__0(Int32)">
         <size>2</size>
     </type>
     <type name="OrderByBugExample.Program">
       <method name="Int32 Main()">
-        <size>351</size>
+        <size>345</size>
       </method>
       <method name="System.String &lt;Main&gt;m__0(OrderByBugExample.Foo)">
         <size>7</size>
       </method>
     </type>
   </test>
+  <test name="gtest-linq-25.cs">
+    <type name="A">
+      <method name="System.String get_Header()">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.String get_Name()">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>36</size>
+      </method>
+      <method name="Void Test(System.Action)">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()">
+        <size>159</size>
+      </method>
+      <method name="IEnumerable`1 &lt;Main&gt;m__1(A)">
+        <size>7</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[A,B] &lt;Main&gt;m__2(A, B)">
+        <size>8</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[A,B])">
+        <size>67</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[A,B] &lt;Main&gt;m__4(&lt;&gt;__AnonType0`2[A,B])">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;c&gt;__T,&lt;p&gt;__T]">
+      <method name="&lt;c&gt;__T get_c()">
+        <size>7</size>
+      </method>
+      <method name="&lt;p&gt;__T get_p()">
+        <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>
+      <method name="Void .ctor(&lt;c&gt;__T, &lt;p&gt;__T)">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;C&gt;__T,&lt;P&gt;__T]">
+      <method name="&lt;C&gt;__T get_C()">
+        <size>7</size>
+      </method>
+      <method name="&lt;P&gt;__T get_P()">
+        <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>
+      <method name="Void .ctor(&lt;C&gt;__T, &lt;P&gt;__T)">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-named-01.cs">
     <type name="C">
       <method name="Int32 Test(Int32, Int32, System.String)">
       </method>
     </type>
   </test>
+  <test name="gtest-named-03.cs">
+    <type name="C">
+      <method name="Int32 Foo(Int32, Int32, Int32)">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>77</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32, Int32, Int32)">
+        <size>21</size>
+      </method>
+      <method name="Int32 get_Item(Int32, Int32, Int32)">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-optional-01.cs">
     <type name="C">
       <method name="Void TestA(Int32)">
         <size>27</size>
       </method>
       <method name="Int32 Main()">
-        <size>101</size>
+        <size>122</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
       <method name="Boolean Test3(Nullable`1)">
         <size>21</size>
       </method>
+      <method name="Int64 Test4(Nullable`1)">
+        <size>8</size>
+      </method>
     </type>
   </test>
   <test name="gtest-optional-03.cs">
         <size>1</size>
       </method>
       <method name="Void TestStruct(Nullable`1)">
-        <size>1</size>
+        <size>24</size>
       </method>
       <method name="System.String get_Item(Int32, System.String)">
         <size>2</size>
         <size>4</size>
       </method>
       <method name="Int32 Main()">
-        <size>120</size>
+        <size>134</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+      <method name="Void TestStruct2(Nullable`1)">
+        <size>1</size>
+      </method>
     </type>
   </test>
   <test name="gtest-optional-05.cs">
         <size>2</size>
       </method>
       <method name="Int32 Main()">
-        <size>76</size>
+        <size>211</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Int32 TestD(Int32, Int32)">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-12.cs">
+    <type name="C">
+      <method name="Int32 M(System.String, Int32, System.Int32[])">
+        <size>4</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-13.cs">
+    <type name="A">
+      <method name="Int32 Foo(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Int32 Foo2(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Item(System.String, Int32)">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Foo(Int32)">
+        <size>4</size>
+      </method>
+      <method name="Int32 Foo2(Int32)">
+        <size>3</size>
+      </method>
+      <method name="Int32 get_Item(System.String, Int32)">
+        <size>4</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>137</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
         <size>80</size>
       </method>
       <method name="Void Main()">
-        <size>540</size>
+        <size>561</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
         <size>24</size>
       </method>
       <method name="Int32 Main()">
-        <size>72</size>
+        <size>56</size>
       </method>
       <method name="Void &lt;Main&gt;m__0()">
         <size>1</size>
       </method>
     </type>
   </test>
+  <test name="gtest-variance-14.cs">
+    <type name="A">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D`1[T]">
+      <method name="Void Invoke(T)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+D`2[T,U]">
+      <method name="T Invoke(U)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(U, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-15.cs">
+    <type name="C">
+      <method name="Void M[T](T ByRef, C+D`1[T])">
+        <size>13</size>
+      </method>
+      <method name="Void M2[T](T, C+D`1[T])">
+        <size>8</size>
+      </method>
+      <method name="Void MethodArg(System.Object)">
+        <size>1</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>53</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0(System.Object)">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D`1[T]">
+      <method name="Void Invoke(T)">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-16.cs">
+    <type name="S">
+      <method name="System.String op_Implicit(S)">
+        <size>6</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="T Foo[T](T, I`1)">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-variance-2.cs">
     <type name="Foo">
       <method name="System.String Bar(System.Object)">
         <size>7</size>
       </method>
       <method name="Void ExtraTst()">
-        <size>12</size>
+        <size>10</size>
       </method>
     </type>
   </test>
         <size>24</size>
       </method>
       <method name="Int32 Test()">
-        <size>166</size>
+        <size>134</size>
       </method>
       <method name="Void callback1(System.Object, System.EventArgs)">
         <size>7</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>99</size>
+        <size>101</size>
       </method>
     </type>
   </test>
         <size>33</size>
       </method>
       <method name="Int32 test5(Single ByRef, Int64)">
-        <size>75</size>
+        <size>73</size>
       </method>
       <method name="Int32 test6(Single ByRef)">
         <size>10</size>
         <size>7</size>
       </method>
       <method name="Void A(System.Collections.Specialized.NameValueCollection, MyClass, System.Object)">
-        <size>65</size>
+        <size>69</size>
       </method>
       <method name="Int32 Main()">
         <size>2</size>
         <size>15</size>
       </method>
       <method name="Void Bug2()">
-        <size>16</size>
+        <size>15</size>
       </method>
       <method name="Int32 Main()">
         <size>2</size>
         <size>7</size>
       </method>
       <method name="Int32 Main(System.String[])">
-        <size>140</size>
+        <size>136</size>
       </method>
     </type>
     <type name="MonoBUG.Foo">
         <size>1</size>
       </method>
       <method name="Boolean Test()">
-        <size>110</size>
+        <size>108</size>
       </method>
     </type>
     <type name="Driver">
         <size>1</size>
       </method>
       <method name="Int32 Main()">
-        <size>93</size>
+        <size>61</size>
       </method>
     </type>
     <type name="Foo">
       </method>
     </type>
   </test>
+  <test name="test-298.cs">
+    <type name="A">
+      <method name="Int32 op_Addition(Int16, A)">
+        <size>2</size>
+      </method>
+      <method name="Int32 op_UnaryNegation(A)">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 op_Addition(Int32, B)">
+        <size>2</size>
+      </method>
+      <method name="Int32 op_UnaryNegation(B)">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-299.cs">
     <type name="SampleClass">
       <method name="Void .ctor()">
     </type>
     <type name="A+B">
       <method name="Void .ctor()">
-        <size>475</size>
+        <size>474</size>
       </method>
     </type>
     <type name="A+B+C">
     </type>
     <type name="A+B">
       <method name="Void .ctor()">
-        <size>475</size>
+        <size>474</size>
       </method>
     </type>
     <type name="A+B+C">
         <size>1</size>
       </method>
       <method name="Int32 Main()">
-        <size>134</size>
+        <size>132</size>
       </method>
     </type>
   </test>
         <size>13</size>
       </method>
       <method name="Void Foo()">
-        <size>66</size>
+        <size>50</size>
       </method>
     </type>
     <type name="Y">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>278</size>
+        <size>276</size>
       </method>
     </type>
     <type name="X">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>288</size>
+        <size>268</size>
       </method>
     </type>
   </test>
         <size>18</size>
       </method>
       <method name="Int32 i_pre_increment(X)">
-        <size>27</size>
+        <size>26</size>
       </method>
       <method name="Int32 i_post_increment(X)">
-        <size>27</size>
+        <size>26</size>
       </method>
       <method name="Z overload_increment(Z)">
         <size>10</size>
     </type>
   </test>
   <test name="test-424.cs">
-    <type name="XX">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Metodo(System.Exception)">
-        <size>37</size>
-      </method>
-      <method name="IEnumerable X()">
-        <size>16</size>
-      </method>
-      <method name="Void Main()">
-        <size>65</size>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>35</size>
       </method>
-    </type>
-    <type name="XX+&lt;X&gt;c__Iterator0">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
-        <size>7</size>
-      </method>
-      <method name="Boolean MoveNext()">
-        <size>105</size>
-      </method>
-      <method name="Void Dispose()">
-        <size>8</size>
-      </method>
-      <method name="Void Reset()">
-        <size>6</size>
-      </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
-        <size>26</size>
-      </method>
     </type>
   </test>
   <test name="test-425.cs">
         <size>34</size>
       </method>
       <method name="Int32 test_continue(System.Int32[])">
-        <size>57</size>
+        <size>54</size>
       </method>
       <method name="Boolean test_double(System.Double[])">
-        <size>61</size>
+        <size>58</size>
       </method>
       <method name="Int32 test_break(System.Int32[])">
-        <size>57</size>
+        <size>54</size>
       </method>
       <method name="Boolean test_multi(System.Int32[,])">
-        <size>84</size>
+        <size>87</size>
       </method>
       <method name="Int32 Main()">
         <size>284</size>
         <size>7</size>
       </method>
       <method name="Int32 dob(System.Int32[,])">
-        <size>80</size>
+        <size>83</size>
       </method>
       <method name="Int32 count(System.Object)">
         <size>39</size>
       </method>
     </type>
   </test>
+  <test name="test-450.cs">
+    <type name="A">
+      <method name="Int32 Main()">
+        <size>53</size>
+      </method>
+      <method name="Byte op_Implicit(A)">
+        <size>2</size>
+      </method>
+      <method name="A op_Implicit(Int32)">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor(Int32)">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
   <test name="test-451.cs">
     <type name="Test">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
+  <test name="test-466.cs">
+    <type name="A.X.Test">
+      <method name="Void Main()">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-467.cs">
-    <type name="ExceptionWithAnonMethod">
+    <type name="A">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Int32 Main()">
-        <size>96</size>
+    </type>
+    <type name="A+D">
+      <method name="Int32 Invoke()">
+        <size>0</size>
       </method>
-      <method name="Void AnonHandler(ExceptionWithAnonMethod+EmptyCallback)">
-        <size>13</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-    </type>
-    <type name="ExceptionWithAnonMethod+EmptyCallback">
       <method name="Void .ctor(Object, IntPtr)">
         <size>0</size>
       </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+D">
       <method name="Void Invoke()">
         <size>0</size>
       </method>
       <method name="Void EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
     </type>
-    <type name="ExceptionWithAnonMethod+&lt;Main&gt;c__AnonStorey0">
+    <type name="C">
+      <method name="Int32 Foo()">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>29</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void &lt;&gt;m__0()">
-        <size>33</size>
-      </method>
     </type>
   </test>
   <test name="test-468.cs">
       </method>
     </type>
   </test>
-  <test name="test-471.cs">
-    <type name="AAttribute">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Demo">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Main()">
-        <size>1</size>
-      </method>
-    </type>
-  </test>
   <test name="test-472.cs">
     <type name="Test">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>59</size>
+        <size>55</size>
       </method>
       <method name="Void Test_1()">
         <size>1</size>
     </type>
   </test>
   <test name="test-480.cs">
-    <type name="Space">
-      <method name="Void .ctor()">
-        <size>14</size>
+    <type name="A">
+      <method name="Void Dispose()">
+        <size>1</size>
       </method>
-      <method name="Void Leak(Boolean, Int32)">
-        <size>85</size>
+      <method name="Void .ctor(Int32)">
+        <size>7</size>
       </method>
     </type>
-    <type name="Program">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="C">
+      <method name="Void Test(System.Object)">
+        <size>271</size>
       </method>
-      <method name="Void Main(System.String[])">
+      <method name="Int32 Main()">
+        <size>13</size>
+      </method>
+      <method name="Void &lt;Test&gt;m__0(Int32)">
         <size>1</size>
       </method>
-    </type>
-    <type name="Space+DoCopy">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
-      <method name="Void Invoke()">
+    </type>
+    <type name="C+D">
+      <method name="Void Invoke(Int32)">
         <size>0</size>
       </method>
-      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
         <size>0</size>
       </method>
       <method name="Void EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
-    </type>
-    <type name="Space+&lt;Leak&gt;c__AnonStorey0">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()">
-        <size>18</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()">
-        <size>68</size>
-      </method>
-    </type>
-    <type name="Space+&lt;Leak&gt;c__AnonStorey1">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
   </test>
         <size>2</size>
       </method>
       <method name="Void Main()">
-        <size>169</size>
+        <size>166</size>
       </method>
     </type>
     <type name="Q">
     </type>
   </test>
   <test name="test-496.cs">
-    <type name="Test">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator GetEnumerator()">
-        <size>15</size>
-      </method>
+    <type name="Baz">
       <method name="Void Main()">
-        <size>11</size>
-      </method>
-      <method name="Void Run()">
-        <size>180</size>
+        <size>1</size>
       </method>
-    </type>
-    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="Boolean MoveNext()">
-        <size>129</size>
-      </method>
-      <method name="Void Dispose()">
-        <size>8</size>
-      </method>
-      <method name="Void Reset()">
-        <size>6</size>
-      </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
-        <size>7</size>
-      </method>
     </type>
   </test>
   <test name="test-497.cs">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>117</size>
+        <size>115</size>
       </method>
     </type>
   </test>
         <size>6</size>
       </method>
       <method name="Int32 Main()">
-        <size>504</size>
+        <size>501</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>42</size>
+        <size>91</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void Finalize()">
-        <size>23</size>
+        <size>36</size>
       </method>
       <method name="Int32 Test1()">
         <size>33</size>
   </test>
   <test name="test-53.cs">
     <type name="MyDispose">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
       <method name="Void Dispose()">
         <size>8</size>
       </method>
-    </type>
-    <type name="X">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
+    </type>
+    <type name="X">
       <method name="Int32 Main()">
         <size>257</size>
       </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
     </type>
   </test>
   <test name="test-530.cs">
     </type>
     <type name="Test">
       <method name="Void &lt;Main&gt;m__0()">
-        <size>33</size>
+        <size>18</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
+  <test name="test-539.cs">
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>84</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-54.cs">
     <type name="X">
       <method name="Void .ctor()">
         <size>1</size>
       </method>
       <method name="Int32 Main()">
-        <size>93</size>
+        <size>89</size>
       </method>
       <method name="Constraint op_LogicalNot(Constraint)">
         <size>2</size>
     </type>
   </test>
   <test name="test-541.cs">
-    <type name="A">
-      <method name="Void .ctor(TestFunc)">
-        <size>14</size>
+    <type name="ClassMain">
+      <method name="Void Main()">
+        <size>31</size>
       </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Void set_test(Boolean)">
+        <size>1</size>
       </method>
-      <method name="Void .cctor()">
-        <size>46</size>
+      <method name="Void &lt;Main&gt;m__0(Int32)">
+        <size>1</size>
       </method>
-      <method name="Int32 Main()">
-        <size>6</size>
+      <method name="Void .ctor()">
+        <size>7</size>
       </method>
     </type>
-    <type name="TestFunc">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
-      </method>
+    <type name="ClassMain+D">
       <method name="Void Invoke(Int32)">
         <size>0</size>
       </method>
       <method name="Void EndInvoke(IAsyncResult)">
         <size>0</size>
       </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void &lt;a&gt;m__0(Int32)">
-        <size>7</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
+  <test name="test-577.cs">
+    <type name="C">
+      <method name="Void IA.add_e_a(System.EventHandler)">
+        <size>1</size>
+      </method>
+      <method name="Void IA.remove_e_a(System.EventHandler)">
+        <size>1</size>
+      </method>
+      <method name="Void IA.add_e_b(System.EventHandler)">
+        <size>1</size>
+      </method>
+      <method name="Void IA.remove_e_b(System.EventHandler)">
+        <size>1</size>
+      </method>
+      <method name="Void Main()">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-578.cs">
     <type name="Test1.TestItem1">
       <method name="Void .ctor()">
     </type>
   </test>
   <test name="test-579.cs">
-    <type name="X">
+    <type name="TestCase">
+      <method name="Int32 Main()">
+        <size>32</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>35</size>
-      </method>
-      <method name="Void DoCall(X+test)">
-        <size>1</size>
-      </method>
-    </type>
-    <type name="X+test">
-      <method name="Void .ctor(Object, IntPtr)">
-        <size>0</size>
-      </method>
-      <method name="System.Object Invoke(System.Reflection.MethodInfo)">
-        <size>0</size>
-      </method>
-      <method name="IAsyncResult BeginInvoke(System.Reflection.MethodInfo, System.AsyncCallback, System.Object)">
-        <size>0</size>
-      </method>
-      <method name="System.Object EndInvoke(IAsyncResult)">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Object &lt;Main&gt;m__0(System.Reflection.MethodInfo)">
-        <size>18</size>
-      </method>
     </type>
   </test>
   <test name="test-58.cs">
         <size>43</size>
       </method>
       <method name="Void BuildNode(System.String[] ByRef)">
-        <size>56</size>
+        <size>58</size>
       </method>
       <method name="Void BuildNode_B(System.Object ByRef)">
         <size>18</size>
       </method>
       <method name="System.String BuildNode_C(System.String ByRef)">
-        <size>76</size>
+        <size>80</size>
       </method>
       <method name="System.String BuildNode_D()">
-        <size>157</size>
+        <size>160</size>
       </method>
       <method name="Void BuildNode_E(System.String[,] ByRef)">
-        <size>68</size>
+        <size>83</size>
       </method>
       <method name="Int32 Main()">
-        <size>265</size>
+        <size>290</size>
+      </method>
+      <method name="Boolean Test_Object()">
+        <size>160</size>
+      </method>
+      <method name="Boolean Test_Decimal()">
+        <size>128</size>
       </method>
     </type>
   </test>
         <size>40</size>
       </method>
       <method name="Void TestMethod()">
-        <size>71</size>
+        <size>73</size>
       </method>
     </type>
     <type name="M">
         <size>8</size>
       </method>
       <method name="Int32 Do(System.String, System.String, System.String)">
-        <size>334</size>
+        <size>332</size>
       </method>
     </type>
   </test>
         <size>7</size>
       </method>
       <method name="Void ZeroBasedReductions()">
-        <size>18</size>
+        <size>17</size>
       </method>
       <method name="Void Main()">
-        <size>6</size>
+        <size>11</size>
+      </method>
+      <method name="Void ZeroBasedReductionsWithConversion()">
+        <size>15</size>
       </method>
     </type>
   </test>
   </test>
   <test name="test-629.cs">
     <type name="Foo">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerable foo()">
-        <size>16</size>
-      </method>
-      <method name="Int32 Main()">
-        <size>67</size>
+      <method name="Void Main()">
+        <size>1</size>
       </method>
-    </type>
-    <type name="Foo+&lt;foo&gt;c__Iterator0">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
-        <size>7</size>
-      </method>
-      <method name="Boolean MoveNext()">
-        <size>39</size>
-      </method>
-      <method name="Void Dispose()">
-        <size>8</size>
-      </method>
-      <method name="Void Reset()">
-        <size>6</size>
-      </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
-        <size>26</size>
+    </type>
+    <type name="Foo+Nested">
+      <method name="Int32 get_Bar()">
+        <size>2</size>
       </method>
     </type>
   </test>
       </method>
     </type>
   </test>
+  <test name="test-637.cs">
+    <type name="A">
+      <method name="System.Type get_Value()">
+        <size>7</size>
+      </method>
+      <method name="Void set_Value(System.Type)">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor(Object)">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="TestProp">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>96</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-638.cs">
     <type name="Fail">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
-  <test name="test-645.cs">
-    <type name="Program">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerable get_Empty()">
-        <size>16</size>
-      </method>
-      <method name="Void Main()">
-        <size>61</size>
-      </method>
-    </type>
-    <type name="Program+&lt;&gt;c__Iterator0">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
-        <size>7</size>
-      </method>
-      <method name="Boolean MoveNext()">
-        <size>158</size>
-      </method>
-      <method name="Void Dispose()">
-        <size>8</size>
-      </method>
-      <method name="Void Reset()">
-        <size>6</size>
-      </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
   <test name="test-646.cs">
     <type name="Program">
       <method name="Void .ctor()">
         <size>8</size>
       </method>
       <method name="Int32 Main()">
-        <size>77</size>
+        <size>69</size>
       </method>
     </type>
   </test>
         <size>51</size>
       </method>
       <method name="Void Foo()">
-        <size>145</size>
+        <size>148</size>
       </method>
     </type>
   </test>
         <size>23</size>
       </method>
       <method name="Void Main()">
-        <size>127</size>
+        <size>128</size>
       </method>
     </type>
   </test>
     </type>
     <type name="B">
       <method name="Void .ctor()">
-        <size>65</size>
+        <size>49</size>
       </method>
       <method name="Void add_Finished(System.EventHandler)">
         <size>24</size>
   <test name="test-729.cs">
     <type name="Primes.MainClass">
       <method name="Int32 Main()">
-        <size>141</size>
+        <size>136</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
     </type>
     <type name="Tester">
       <method name="Int32 Main()">
-        <size>80</size>
+        <size>74</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
         <size>9</size>
       </method>
       <method name="Int32 Main()">
-        <size>53</size>
+        <size>52</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
   <test name="test-789.cs">
     <type name="Program">
       <method name="Void Main()">
-        <size>50</size>
+        <size>76</size>
       </method>
       <method name="Void &lt;Main&gt;m__0()">
         <size>7</size>
       <method name="Void Test()">
         <size>24</size>
       </method>
+      <method name="Void Test2(IMemberDelayed)">
+        <size>8</size>
+      </method>
       <method name="Void Main()">
         <size>1</size>
       </method>
       </method>
     </type>
   </test>
+  <test name="test-798.cs">
+    <type name="A">
+      <method name="Void Foo(Int32 ByRef)">
+        <size>5</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo(Int32 ByRef)">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-799.cs">
+    <type name="Test2">
+      <method name="Int32 Main()">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2+Foo">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2+Bar">
+      <method name="Void .ctor(Foo)">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-8.cs">
     <type name="X">
       <method name="Void .ctor()">
       </method>
     </type>
   </test>
+  <test name="test-800.cs">
+    <type name="C">
+      <method name="Void Main()">
+        <size>5</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-801.cs">
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>154</size>
+      </method>
+      <method name="E op_Implicit(C)">
+        <size>3</size>
+      </method>
+      <method name="Int32 op_Implicit(C)">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-81.cs">
     <type name="N1.A">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>259</size>
+        <size>256</size>
       </method>
       <method name="System.Collections.ArrayList Find(predicate, System.Collections.ArrayList)">
         <size>83</size>
         <size>1</size>
       </method>
       <method name="Void Main()">
-        <size>46</size>
+        <size>31</size>
       </method>
     </type>
     <type name="X+T">
       </method>
     </type>
   </test>
+  <test name="test-anon-26.cs">
+    <type name="TestGotoLabels.GotoLabelsTest">
+      <method name="Int32 Main()">
+        <size>36</size>
+      </method>
+      <method name="Void TestMethod2(TestGotoLabels.GotoLabelsTest+MyDelegate)">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGotoLabels.GotoLabelsTest+MyDelegate">
+      <method name="Void Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
   <test name="test-anon-27.cs">
     <type name="X">
       <method name="Void .ctor()">
     </type>
   </test>
   <test name="test-anon-31.cs">
-    <type name="test">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerable testen(Int32)">
-        <size>30</size>
+    <type name="X">
+      <method name="Void Main()">
+        <size>35</size>
       </method>
-    </type>
-    <type name="reflect">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="Void DoCall(X+test)">
+        <size>1</size>
       </method>
-      <method name="Void Main(System.String[])">
-        <size>122</size>
+      <method name="System.Object &lt;Main&gt;m__0(System.Reflection.MethodInfo)">
+        <size>18</size>
       </method>
-    </type>
-    <type name="test+&lt;testen&gt;c__Iterator0">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>7</size>
-      </method>
-      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
-        <size>7</size>
-      </method>
-      <method name="Boolean MoveNext()">
-        <size>195</size>
-      </method>
-      <method name="Void Dispose()">
-        <size>8</size>
+    </type>
+    <type name="X+test">
+      <method name="System.Object Invoke(System.Reflection.MethodInfo)">
+        <size>0</size>
       </method>
-      <method name="Void Reset()">
-        <size>6</size>
+      <method name="IAsyncResult BeginInvoke(System.Reflection.MethodInfo, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
-        <size>7</size>
+      <method name="System.Object EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
-        <size>40</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
     </type>
   </test>
     </type>
   </test>
   <test name="test-anon-35.cs">
-    <type name="CustomDict">
-      <method name="Void .ctor()">
-        <size>68</size>
+    <type name="ExceptionWithAnonMethod">
+      <method name="Int32 Main()">
+        <size>96</size>
       </method>
-      <method name="IEnumerator GetEnumerator()">
-        <size>15</size>
+      <method name="Void AnonHandler(ExceptionWithAnonMethod+EmptyCallback)">
+        <size>13</size>
       </method>
-    </type>
-    <type name="Tests">
       <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="Void Main()">
-        <size>7</size>
-      </method>
     </type>
-    <type name="CustomDict+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="Void .ctor()">
-        <size>7</size>
+    <type name="ExceptionWithAnonMethod+EmptyCallback">
+      <method name="Void Invoke()">
+        <size>0</size>
       </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>7</size>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="Boolean MoveNext()">
-        <size>86</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Void Dispose()">
-        <size>8</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void Reset()">
-        <size>6</size>
+    </type>
+    <type name="ExceptionWithAnonMethod+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()">
+        <size>33</size>
       </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
     </type>
     </type>
   </test>
   <test name="test-anon-45.cs">
-    <type name="Test">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
-      <method name="Void Main()">
-        <size>66</size>
-      </method>
-      <method name="IEnumerator GetEnumerator()">
-        <size>8</size>
+    <type name="TestFunc">
+      <method name="Void Invoke(Int32)">
+        <size>0</size>
       </method>
-    </type>
-    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="Void .ctor()">
-        <size>7</size>
+      <method name="IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)">
+        <size>0</size>
       </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()">
-        <size>7</size>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
       </method>
-      <method name="Boolean MoveNext()">
-        <size>77</size>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
       </method>
-      <method name="Void Dispose()">
-        <size>8</size>
+    </type>
+    <type name="A">
+      <method name="Void .ctor(TestFunc)">
+        <size>14</size>
       </method>
-      <method name="Void Reset()">
+    </type>
+    <type name="TestClass">
+      <method name="Int32 Main()">
         <size>6</size>
       </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+      <method name="Void &lt;a&gt;m__0(Int32)">
         <size>7</size>
       </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()">
+        <size>46</size>
+      </method>
     </type>
   </test>
   <test name="test-anon-46.cs">
         <size>1</size>
       </method>
       <method name="Void Test(Int32)">
-        <size>158</size>
+        <size>153</size>
       </method>
     </type>
     <type name="X">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>187</size>
+        <size>197</size>
       </method>
       <method name="Void Dispose()">
-        <size>64</size>
+        <size>76</size>
       </method>
       <method name="Void Reset()">
         <size>6</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>201</size>
+        <size>199</size>
       </method>
       <method name="Void &lt;&gt;m__0()">
         <size>22</size>
         <size>7</size>
       </method>
       <method name="Int32 Test(Int32)">
-        <size>344</size>
+        <size>342</size>
       </method>
       <method name="Int32 Main()">
         <size>46</size>
         <size>7</size>
       </method>
       <method name="Int32 Test(Int32)">
-        <size>515</size>
+        <size>512</size>
       </method>
       <method name="Int32 Main()">
         <size>46</size>
         <size>7</size>
       </method>
       <method name="Int32 Test(Int32)">
-        <size>567</size>
+        <size>564</size>
       </method>
       <method name="Int32 Main()">
         <size>46</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>195</size>
+        <size>193</size>
       </method>
       <method name="Int32 &lt;&gt;m__0()">
         <size>44</size>
         <size>2</size>
       </method>
       <method name="Void AddSource(Source, Int32, System.Object)">
-        <size>132</size>
+        <size>100</size>
       </method>
       <method name="Void Main()">
         <size>1</size>
         <size>12</size>
       </method>
       <method name="Void Test()">
-        <size>102</size>
+        <size>97</size>
       </method>
     </type>
     <type name="C+D">
         <size>7</size>
       </method>
       <method name="Void &lt;&gt;m__0()">
-        <size>109</size>
+        <size>108</size>
       </method>
     </type>
     <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
   <test name="test-anon-94.cs">
     <type name="Program">
       <method name="Int32 Main()">
-        <size>29</size>
+        <size>57</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
         <size>7</size>
       </method>
     </type>
+    <type name="Program+DerivedLibrary">
+      <method name="Void Print(Int32)">
+        <size>20</size>
+      </method>
+      <method name="Void &lt;Print&gt;__BaseCallProxy0(Int32)">
+        <size>8</size>
+      </method>
+      <method name="Void &lt;Print&gt;m__1()">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
   </test>
   <test name="test-anon-95.cs">
     <type name="D">
         <size>3</size>
       </method>
       <method name="Program+D Get(Int32)">
-        <size>115</size>
+        <size>128</size>
       </method>
       <method name="Int32 Run(Int32)">
         <size>12</size>
       </method>
     </type>
     <type name="Program+&lt;Get&gt;c__AnonStorey0">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Get&gt;c__AnonStorey1">
       <method name="Int32 &lt;&gt;m__0()">
-        <size>19</size>
+        <size>24</size>
       </method>
       <method name="Int32 &lt;&gt;m__1()">
-        <size>19</size>
+        <size>24</size>
       </method>
       <method name="Int32 &lt;&gt;m__2()">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-97.cs">
+    <type name="Space">
+      <method name="Void Leak(Boolean, Int32)">
+        <size>85</size>
+      </method>
+      <method name="Void .ctor()">
         <size>14</size>
       </method>
+    </type>
+    <type name="Space+DoCopy">
+      <method name="Void Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main(System.String[])">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Space+&lt;Leak&gt;c__AnonStorey1">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Space+&lt;Leak&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()">
+        <size>18</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()">
+        <size>68</size>
+      </method>
       <method name="Void .ctor()">
         <size>7</size>
       </method>
         <size>16</size>
       </method>
       <method name="Int32 Main()">
-        <size>173</size>
+        <size>172</size>
       </method>
     </type>
     <type name="X+&lt;GetIt&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>126</size>
+        <size>124</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>126</size>
+        <size>124</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>173</size>
+        <size>171</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>248</size>
+        <size>247</size>
       </method>
     </type>
     <type name="&lt;PrivateImplementationDetails&gt;">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>151</size>
+        <size>149</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>238</size>
+        <size>236</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>123</size>
+        <size>121</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>183</size>
+        <size>181</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>407</size>
+        <size>403</size>
       </method>
     </type>
     <type name="S+&lt;Get&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>183</size>
+        <size>181</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>136</size>
+        <size>134</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>131</size>
+        <size>129</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>136</size>
+        <size>134</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>374</size>
+        <size>373</size>
       </method>
     </type>
     <type name="Test+&lt;Foo&gt;c__Iterator0">
   </test>
   <test name="test-iter-08.cs">
     <type name="Foo">
-      <method name="Void .ctor(Int32)">
-        <size>14</size>
-      </method>
       <method name="Void Dispose()">
         <size>8</size>
       </method>
+      <method name="Void .ctor(Int32)">
+        <size>14</size>
+      </method>
     </type>
     <type name="X">
-      <method name="Void .ctor()">
-        <size>7</size>
-      </method>
       <method name="IEnumerable Test(Int32, Int32)">
         <size>44</size>
       </method>
       <method name="Int32 Main()">
         <size>169</size>
       </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
     </type>
     <type name="X+&lt;Test&gt;c__Iterator0">
-      <method name="Void .ctor()">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
         <size>7</size>
       </method>
       <method name="System.Object System.Collections.IEnumerator.get_Current()">
       <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
         <size>7</size>
       </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
+        <size>52</size>
+      </method>
       <method name="Boolean MoveNext()">
-        <size>360</size>
+        <size>358</size>
       </method>
       <method name="Void Dispose()">
         <size>102</size>
       <method name="Void Reset()">
         <size>6</size>
       </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+      <method name="Void .ctor()">
         <size>7</size>
       </method>
-      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
-        <size>52</size>
-      </method>
     </type>
   </test>
   <test name="test-iter-09.cs">
         <size>7</size>
       </method>
       <method name="Int32 Main()">
-        <size>270</size>
+        <size>268</size>
       </method>
     </type>
     <type name="Tester+&lt;GetEnumerator&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>625</size>
+        <size>635</size>
       </method>
       <method name="Void Dispose()">
-        <size>84</size>
+        <size>96</size>
       </method>
       <method name="Void Reset()">
         <size>6</size>
         <size>1</size>
       </method>
       <method name="Int32 Main()">
-        <size>186</size>
+        <size>184</size>
       </method>
     </type>
     <type name="X+&lt;&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>126</size>
+        <size>124</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>145</size>
+        <size>143</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>11</size>
       </method>
       <method name="Void Main()">
-        <size>55</size>
+        <size>39</size>
       </method>
     </type>
     <type name="X+&lt;Pipeline&gt;c__Iterator0">
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>124</size>
+        <size>122</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>165</size>
+        <size>163</size>
       </method>
       <method name="Void Dispose()">
         <size>55</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>27</size>
+        <size>25</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-14.cs">
+    <type name="XX">
+      <method name="Void Metodo(System.Exception)">
+        <size>37</size>
+      </method>
+      <method name="IEnumerable X()">
+        <size>16</size>
+      </method>
+      <method name="Void Main()">
+        <size>65</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="XX+&lt;X&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
+        <size>26</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>103</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-15.cs">
+    <type name="Test">
+      <method name="IEnumerator GetEnumerator()">
+        <size>15</size>
+      </method>
+      <method name="Void Main()">
+        <size>11</size>
+      </method>
+      <method name="Void Run()">
+        <size>177</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>127</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-16.cs">
+    <type name="Foo">
+      <method name="IEnumerable foo()">
+        <size>16</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;foo&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
+        <size>26</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>37</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>
       <method name="Void Reset()">
         <size>6</size>
       </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-17.cs">
+    <type name="Program">
+      <method name="IEnumerable get_Empty()">
+        <size>16</size>
+      </method>
+      <method name="Void Main()">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;&gt;c__Iterator0">
       <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
         <size>7</size>
       </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
       <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
         <size>26</size>
       </method>
+      <method name="Boolean MoveNext()">
+        <size>156</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-18.cs">
+    <type name="test">
+      <method name="IEnumerable testen(Int32)">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="reflect">
+      <method name="Void Main(System.String[])">
+        <size>119</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test+&lt;testen&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
+        <size>40</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>193</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-19.cs">
+    <type name="Test">
+      <method name="Void Main()">
+        <size>66</size>
+      </method>
+      <method name="IEnumerator GetEnumerator()">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>75</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-20.cs">
+    <type name="CustomDict">
+      <method name="IEnumerator GetEnumerator()">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>68</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Void Main()">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CustomDict+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>84</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-21.cs">
+    <type name="X">
+      <method name="IEnumerable GetIt(System.Int32[])">
+        <size>30</size>
+      </method>
+      <method name="Int32 Main()">
+        <size>119</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+A">
+      <method name="Void Invoke()">
+        <size>0</size>
+      </method>
+      <method name="IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(IAsyncResult)">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator System.Collections.IEnumerable.GetEnumerator()">
+        <size>7</size>
+      </method>
+      <method name="IEnumerator`1 System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()">
+        <size>40</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>199</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>8</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;PrivateImplementationDetails&gt;">
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-22.cs">
+    <type name="Test">
+      <method name="Void Main()">
+        <size>66</size>
+      </method>
+      <method name="IEnumerator GetEnumerator()">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()">
+        <size>7</size>
+      </method>
+      <method name="Boolean MoveNext()">
+        <size>197</size>
+      </method>
+      <method name="Void Dispose()">
+        <size>76</size>
+      </method>
+      <method name="Void Reset()">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
     </type>
   </test>
   <test name="test-named-01.cs">
         <size>30</size>
       </method>
       <method name="Int32 Main()">
-        <size>279</size>
+        <size>274</size>
       </method>
     </type>
   </test>
         <size>40</size>
       </method>
       <method name="Int32 Main()">
-        <size>239</size>
+        <size>242</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-05.cs">
+    <type name="A">
+      <method name="Int32 Foo(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Item(Int32, System.String)">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Foo(Int32)">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Item(Int32, System.String)">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-06.cs">
+    <type name="C">
+      <method name="Int32 Main()">
+        <size>25</size>
+      </method>
+      <method name="Int32 Foo(Int32, Int64, System.String)">
+        <size>2</size>
+      </method>
+      <method name="Int32 Foo(Int32, Int64, System.String[])">
+        <size>2</size>
+      </method>
+      <method name="Int32 Foo(Int64, Int32)">
+        <size>2</size>
       </method>
       <method name="Void .ctor()">
         <size>7</size>
         <size>7</size>
       </method>
       <method name="Boolean MoveNext()">
-        <size>69</size>
+        <size>67</size>
       </method>
       <method name="Void Dispose()">
         <size>8</size>