Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Avoid creating a temporary variable when target await expression is d…

…oes not include await
  • Loading branch information...
commit a5206c4bfc6a4c38781a6ab0832e40a2c565d201 1 parent f142853
@marek-safar marek-safar authored
Showing with 897 additions and 88 deletions.
  1. +20 −9 mcs/mcs/ecore.cs
  2. +14 −1 mcs/mcs/expression.cs
  3. +863 −78 mcs/tests/ver-il-net_4_0.xml
View
29 mcs/mcs/ecore.cs
@@ -519,22 +519,33 @@ public virtual Expression EmitToField (EmitContext ec)
if (IsSideEffectFree)
return this;
+ bool needs_temporary = ContainsEmitWithAwait ();
+ if (!needs_temporary)
+ ec.EmitThis ();
+
// Emit original code
EmitToFieldSource (ec);
- // Create temporary local (we cannot load this before Emit)
- var temp = ec.GetTemporaryLocal (type);
- ec.Emit (OpCodes.Stloc, temp);
-
//
- // Store the result to temporary field
+ // Store the result to temporary field when we
+ // cannot load this directly
//
var field = ec.GetTemporaryField (type);
- ec.EmitThis ();
- ec.Emit (OpCodes.Ldloc, temp);
- field.EmitAssignFromStack (ec);
+ if (needs_temporary) {
+ //
+ // Create temporary local (we cannot load this before Emit)
+ //
+ var temp = ec.GetTemporaryLocal (type);
+ ec.Emit (OpCodes.Stloc, temp);
+
+ ec.EmitThis ();
+ ec.Emit (OpCodes.Ldloc, temp);
+ field.EmitAssignFromStack (ec);
- ec.FreeTemporaryLocal (temp, type);
+ ec.FreeTemporaryLocal (temp, type);
+ } else {
+ field.EmitAssignFromStack (ec);
+ }
return field;
}
View
15 mcs/mcs/expression.cs
@@ -8796,6 +8796,19 @@ public override void EmitSideEffect (EmitContext ec)
}
}
+ sealed class EmptyAwaitExpression : EmptyExpression
+ {
+ public EmptyAwaitExpression (TypeSpec type)
+ : base (type)
+ {
+ }
+
+ public override bool ContainsEmitWithAwait ()
+ {
+ return true;
+ }
+ }
+
//
// Empty statement expression
//
@@ -9690,7 +9703,7 @@ public override bool Emit (EmitContext ec, IMemoryLocation target)
}
if (ec.HasSet (BuilderContext.Options.AsyncBody) && initializers.ContainsEmitWithAwait ()) {
- instance = new EmptyExpression (Type).EmitToField (ec) as IMemoryLocation;
+ instance = new EmptyAwaitExpression (Type).EmitToField (ec) as IMemoryLocation;
} else {
temp = new LocalTemporary (type);
instance = temp;
View
941 mcs/tests/ver-il-net_4_0.xml
@@ -52210,7 +52210,7 @@
</type>
<type name="C+&lt;TestCompositionCall_2&gt;c__async1">
<method name="Void MoveNext()">
- <size>221</size>
+ <size>218</size>
</method>
<method name="System.String &lt;&gt;m__3()">
<size>6</size>
@@ -52350,7 +52350,7 @@
</type>
<type name="C+&lt;TestStack_1&gt;c__async1">
<method name="Void MoveNext()">
- <size>288</size>
+ <size>281</size>
</method>
<method name="Int32 &lt;&gt;m__1()">
<size>2</size>
@@ -52361,7 +52361,7 @@
</type>
<type name="C+&lt;TestStack_2&gt;c__async2">
<method name="Void MoveNext()">
- <size>268</size>
+ <size>263</size>
</method>
<method name="Int32 &lt;&gt;m__2()">
<size>2</size>
@@ -52372,7 +52372,7 @@
</type>
<type name="C+&lt;TestStack_3&gt;c__async3">
<method name="Void MoveNext()">
- <size>439</size>
+ <size>435</size>
</method>
<method name="Int32 &lt;&gt;m__3()">
<size>2</size>
@@ -52394,7 +52394,7 @@
</type>
<type name="C+&lt;TestStack_5&gt;c__async5">
<method name="Void MoveNext()">
- <size>271</size>
+ <size>269</size>
</method>
<method name="Int32 &lt;&gt;m__5()">
<size>35</size>
@@ -52613,208 +52613,993 @@
<method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_6()">
<size>27</size>
</method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_1()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_2()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_3()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_4()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_5()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_6()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_7()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_8()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_9()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] AssignTest_1()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] AssignTest_2()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] AssignTest_3()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_1()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_2()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_3()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_4()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_1()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] CallTest_2()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_3()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] CallTest_4()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_5()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] CastTest_1()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] CastTest_2()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] CoalescingTest_1()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] CoalescingTest_2()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_1()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_2()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_3()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_4()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] DelegateInvoke_4()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] EventInvoke_1()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] FieldTest_1()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_1()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_2()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_3()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_4()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_5()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_6()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_7()">
+ <size>34</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] IsTest_1()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] IsTest_2()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_1()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_2()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_3()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] NewTest_1()">
+ <size>27</size>
+ </method>
+ <method name="System.Threading.Tasks.Task`1[System.Boolean] NewTest_2()">
+ <size>27</size>
+ </method>
</type>
- <type name="Tester+&lt;NewInitTest_1&gt;c__async0">
+ <type name="Tester+&lt;ArrayAccessTest_1&gt;c__async0">
<method name="Void MoveNext()">
- <size>1019</size>
+ <size>321</size>
</method>
- <method name="Int32 &lt;&gt;m__4()">
- <size>3</size>
+ <method name="Boolean &lt;&gt;m__4()">
+ <size>2</size>
</method>
<method name="Int32 &lt;&gt;m__5()">
- <size>3</size>
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;ArrayAccessTest_2&gt;c__async1">
+ <method name="Void MoveNext()">
+ <size>740</size>
</method>
<method name="Int32 &lt;&gt;m__6()">
- <size>3</size>
+ <size>2</size>
</method>
<method name="Int32 &lt;&gt;m__7()">
- <size>3</size>
+ <size>2</size>
</method>
<method name="Int32 &lt;&gt;m__8()">
- <size>3</size>
+ <size>2</size>
</method>
- <method name="Int32 &lt;&gt;m__9()">
- <size>3</size>
+ <method name="Double &lt;&gt;m__9()">
+ <size>10</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;NewInitTest_2&gt;c__async1">
+ <type name="Tester+&lt;ArrayAccessTest_3&gt;c__async2">
<method name="Void MoveNext()">
- <size>738</size>
+ <size>1082</size>
</method>
- <method name="System.String &lt;&gt;m__A()">
- <size>6</size>
+ <method name="Int32 &lt;&gt;m__A()">
+ <size>2</size>
</method>
- <method name="System.String &lt;&gt;m__B()">
- <size>6</size>
+ <method name="Int32 &lt;&gt;m__B()">
+ <size>2</size>
</method>
- <method name="Int32 &lt;&gt;m__C()">
- <size>3</size>
+ <method name="Decimal &lt;&gt;m__C()">
+ <size>12</size>
</method>
<method name="Int32 &lt;&gt;m__D()">
- <size>3</size>
+ <size>2</size>
+ </method>
+ <method name="Decimal &lt;&gt;m__E()">
+ <size>12</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;NewArrayInitTest_1&gt;c__async2">
+ <type name="Tester+&lt;ArrayAccessTest_4&gt;c__async3">
<method name="Void MoveNext()">
- <size>212</size>
+ <size>393</size>
</method>
- <method name="Int32 &lt;&gt;m__E()">
+ <method name="Int32 &lt;&gt;m__F()">
<size>2</size>
</method>
+ <method name="System.String &lt;&gt;m__10()">
+ <size>6</size>
+ </method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;NewArrayInitTest_2&gt;c__async3">
+ <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4">
<method name="Void MoveNext()">
- <size>334</size>
+ <size>393</size>
</method>
- <method name="Int32 &lt;&gt;m__F()">
+ <method name="Int32 &lt;&gt;m__11()">
<size>2</size>
</method>
- <method name="Int32 &lt;&gt;m__10()">
- <size>2</size>
+ <method name="Int32 &lt;&gt;m__12()">
+ <size>18</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;NewArrayInitTest_3&gt;c__async4">
+ <type name="Tester+&lt;ArrayAccessTest_6&gt;c__async5">
<method name="Void MoveNext()">
- <size>232</size>
+ <size>236</size>
</method>
- <method name="Byte &lt;&gt;m__11()">
- <size>2</size>
+ <method name="Int64 &lt;&gt;m__13()">
+ <size>3</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;NewArrayInitTest_4&gt;c__async5">
+ <type name="Tester+&lt;ArrayAccessTest_7&gt;c__async6">
<method name="Void MoveNext()">
- <size>420</size>
+ <size>363</size>
</method>
- <method name="UInt16 &lt;&gt;m__12()">
+ <method name="Int32 &lt;&gt;m__14()">
<size>2</size>
</method>
- <method name="UInt16 &lt;&gt;m__13()">
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;ArrayAccessTest_8&gt;c__async7">
+ <method name="Void MoveNext()">
+ <size>655</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__15()">
<size>2</size>
</method>
+ <method name="Byte &lt;&gt;m__16()">
+ <size>3</size>
+ </method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;NewArrayInitTest_5&gt;c__async6">
+ <type name="Tester+&lt;ArrayAccessTest_9&gt;c__async8">
<method name="Void MoveNext()">
- <size>250</size>
+ <size>1201</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__17()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__18()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__19()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__1A()">
+ <size>2</size>
</method>
- <method name="S &lt;&gt;m__14()">
+ <method name="Int32 &lt;&gt;m__1B()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__1C()">
+ <size>2</size>
+ </method>
+ <method name="S &lt;&gt;m__1D()">
<size>18</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;NewArrayInitTest_6&gt;c__async7">
+ <type name="Tester+&lt;AssignTest_1&gt;c__async9">
<method name="Void MoveNext()">
- <size>252</size>
+ <size>202</size>
</method>
- <method name="Int32 &lt;&gt;m__15()">
+ <method name="Int32 &lt;&gt;m__1E()">
<size>2</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;PropertyTest_1&gt;c__async8">
+ <type name="Tester+&lt;AssignTest_2&gt;c__asyncA">
<method name="Void MoveNext()">
- <size>201</size>
+ <size>251</size>
</method>
- <method name="Int32 &lt;&gt;m__16()">
- <size>2</size>
+ <method name="Nullable`1 &lt;&gt;m__1F()">
+ <size>10</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;PropertyTest_2&gt;c__async9">
+ <type name="Tester+&lt;AssignTest_3&gt;c__asyncB">
<method name="Void MoveNext()">
- <size>272</size>
+ <size>350</size>
</method>
- <method name="Int32 &lt;&gt;m__17()">
+ <method name="Int32 &lt;&gt;m__20()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__21()">
<size>2</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;PropertyTest_3&gt;c__asyncA">
+ <type name="Tester+&lt;BinaryTest_1&gt;c__asyncC">
<method name="Void MoveNext()">
- <size>636</size>
+ <size>428</size>
</method>
- <method name="Int32 &lt;&gt;m__18()">
+ <method name="Int32 &lt;&gt;m__22()">
+ <size>9</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__23()">
<size>3</size>
</method>
- <method name="Int32 &lt;&gt;m__19()">
- <size>2</size>
+ <method name="Int32 &lt;&gt;m__24()">
+ <size>3</size>
</method>
- <method name="Int32 &lt;&gt;m__1A()">
- <size>2</size>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;BinaryTest_2&gt;c__asyncD">
+ <method name="Void MoveNext()">
+ <size>459</size>
+ </method>
+ <method name="Boolean &lt;&gt;m__25()">
+ <size>16</size>
+ </method>
+ <method name="Boolean &lt;&gt;m__26()">
+ <size>16</size>
+ </method>
+ <method name="Boolean &lt;&gt;m__27()">
+ <size>16</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;StringConcatTest_1&gt;c__asyncB">
+ <type name="Tester+&lt;BinaryTest_3&gt;c__asyncE">
<method name="Void MoveNext()">
- <size>441</size>
+ <size>1095</size>
</method>
- <method name="System.String &lt;&gt;m__1B()">
- <size>6</size>
+ <method name="Nullable`1 &lt;&gt;m__28()">
+ <size>7</size>
</method>
- <method name="System.String &lt;&gt;m__1C()">
- <size>6</size>
+ <method name="Nullable`1 &lt;&gt;m__29()">
+ <size>10</size>
</method>
- <method name="System.String &lt;&gt;m__1D()">
- <size>2</size>
+ <method name="Nullable`1 &lt;&gt;m__2A()">
+ <size>10</size>
+ </method>
+ <method name="Nullable`1 &lt;&gt;m__2B()">
+ <size>7</size>
+ </method>
+ <method name="Nullable`1 &lt;&gt;m__2C()">
+ <size>10</size>
+ </method>
+ <method name="Nullable`1 &lt;&gt;m__2D()">
+ <size>7</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;UnaryTest_1&gt;c__asyncC">
+ <type name="Tester+&lt;BinaryTest_4&gt;c__asyncF">
<method name="Void MoveNext()">
- <size>212</size>
+ <size>808</size>
</method>
- <method name="Int32 &lt;&gt;m__1E()">
+ <method name="Nullable`1 &lt;&gt;m__2E()">
+ <size>7</size>
+ </method>
+ <method name="Nullable`1 &lt;&gt;m__2F()">
+ <size>10</size>
+ </method>
+ <method name="Nullable`1 &lt;&gt;m__30()">
+ <size>13</size>
+ </method>
+ <method name="Nullable`1 &lt;&gt;m__31()">
+ <size>10</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;CallTest_1&gt;c__async10">
+ <method name="Void MoveNext()">
+ <size>423</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__32()">
+ <size>9</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__33()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__34()">
<size>2</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;UnaryTest_2&gt;c__asyncD">
+ <type name="Tester+&lt;CallTest_2&gt;c__async11">
<method name="Void MoveNext()">
- <size>313</size>
+ <size>246</size>
</method>
- <method name="Nullable`1 &lt;&gt;m__1F()">
- <size>7</size>
+ <method name="Int32 &lt;&gt;m__35()">
+ <size>9</size>
</method>
<method name="Void .ctor()">
<size>36</size>
</method>
</type>
- <type name="Tester+&lt;UnaryTest_3&gt;c__asyncE">
+ <type name="Tester+&lt;CallTest_3&gt;c__async12">
<method name="Void MoveNext()">
- <size>347</size>
+ <size>216</size>
</method>
- <method name="Int32 &lt;&gt;m__20()">
+ <method name="Int32 &lt;&gt;m__36()">
+ <size>3</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;CallTest_4&gt;c__async13">
+ <method name="Void MoveNext()">
+ <size>206</size>
+ </method>
+ <method name="E &lt;&gt;m__37()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;CallTest_5&gt;c__async14">
+ <method name="Void MoveNext()">
+ <size>272</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__38()">
+ <size>18</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;CastTest_1&gt;c__async15">
+ <method name="Void MoveNext()">
+ <size>225</size>
+ </method>
+ <method name="Decimal &lt;&gt;m__39()">
+ <size>8</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;CastTest_2&gt;c__async16">
+ <method name="Void MoveNext()">
+ <size>207</size>
+ </method>
+ <method name="Tester &lt;&gt;m__3A()">
+ <size>7</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;CoalescingTest_1&gt;c__async17">
+ <method name="Void MoveNext()">
+ <size>337</size>
+ </method>
+ <method name="System.String &lt;&gt;m__3B()">
+ <size>2</size>
+ </method>
+ <method name="System.String &lt;&gt;m__3C()">
+ <size>6</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;CoalescingTest_2&gt;c__async18">
+ <method name="Void MoveNext()">
+ <size>349</size>
+ </method>
+ <method name="Nullable`1 &lt;&gt;m__3D()">
+ <size>10</size>
+ </method>
+ <method name="Byte &lt;&gt;m__3E()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;ConditionalTest_1&gt;c__async19">
+ <method name="Void MoveNext()">
+ <size>41</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;ConditionalTest_2&gt;c__async1A">
+ <method name="Void MoveNext()">
+ <size>315</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__3F()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__40()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;ConditionalTest_3&gt;c__async1B">
+ <method name="Void MoveNext()">
+ <size>333</size>
+ </method>
+ <method name="Boolean &lt;&gt;m__41()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__42()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;ConditionalTest_4&gt;c__async1C">
+ <method name="Void MoveNext()">
+ <size>222</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__43()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;DelegateInvoke_4&gt;c__async1D">
+ <method name="Void MoveNext()">
+ <size>250</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__44(Int32)">
+ <size>4</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__45()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;EventInvoke_1&gt;c__async1E">
+ <method name="Void MoveNext()">
+ <size>196</size>
+ </method>
+ <method name="System.Action &lt;&gt;m__46()">
+ <size>15</size>
+ </method>
+ <method name="Void &lt;&gt;m__47()">
+ <size>8</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;FieldTest_1&gt;c__async1F">
+ <method name="Void MoveNext()">
+ <size>521</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__48()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__49()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;IndexerTest_1&gt;c__async20">
+ <method name="Void MoveNext()">
+ <size>204</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__4A()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;IndexerTest_2&gt;c__async21">
+ <method name="Void MoveNext()">
+ <size>321</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__4B()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__4C()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;IndexerTest_3&gt;c__async22">
+ <method name="Void MoveNext()">
+ <size>350</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__4D()">
+ <size>18</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__4E()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;IndexerTest_4&gt;c__async23">
+ <method name="Void MoveNext()">
+ <size>378</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__4F()">
+ <size>18</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__50()">
+ <size>3</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;IndexerTest_5&gt;c__async24">
+ <method name="Void MoveNext()">
+ <size>481</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__51()">
+ <size>18</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__52()">
+ <size>3</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;IndexerTest_6&gt;c__async25">
+ <method name="Void MoveNext()">
+ <size>537</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__53()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__54()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__55()">
+ <size>3</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;IndexerTest_7&gt;c__async26">
+ <method name="Void MoveNext()">
+ <size>235</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__56()">
+ <size>18</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;IsTest_1&gt;c__async27">
+ <method name="Void MoveNext()">
+ <size>219</size>
+ </method>
+ <method name="Tester &lt;&gt;m__57()">
+ <size>6</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;IsTest_2&gt;c__async28">
+ <method name="Void MoveNext()">
+ <size>211</size>
+ </method>
+ <method name="Nullable`1 &lt;&gt;m__58()">
+ <size>7</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;LogicalUserOperator_1&gt;c__async29">
+ <method name="Void MoveNext()">
+ <size>370</size>
+ </method>
+ <method name="Base &lt;&gt;m__59()">
+ <size>6</size>
+ </method>
+ <method name="Base &lt;&gt;m__5A()">
+ <size>6</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;LogicalUserOperator_2&gt;c__async2A">
+ <method name="Void MoveNext()">
+ <size>271</size>
+ </method>
+ <method name="Base &lt;&gt;m__5B()">
+ <size>6</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;LogicalUserOperator_3&gt;c__async2B">
+ <method name="Void MoveNext()">
+ <size>369</size>
+ </method>
+ <method name="Base &lt;&gt;m__5C()">
+ <size>6</size>
+ </method>
+ <method name="Base &lt;&gt;m__5D()">
+ <size>6</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewTest_1&gt;c__async2C">
+ <method name="Void MoveNext()">
+ <size>232</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__5E()">
+ <size>3</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewTest_2&gt;c__async2D">
+ <method name="Void MoveNext()">
+ <size>334</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__5F()">
+ <size>3</size>
+ </method>
+ <method name="System.String &lt;&gt;m__60()">
+ <size>6</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewInitTest_1&gt;c__async2E">
+ <method name="Void MoveNext()">
+ <size>1019</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__61()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__62()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__63()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__64()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__65()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__66()">
+ <size>3</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewInitTest_2&gt;c__async2F">
+ <method name="Void MoveNext()">
+ <size>738</size>
+ </method>
+ <method name="System.String &lt;&gt;m__67()">
+ <size>6</size>
+ </method>
+ <method name="System.String &lt;&gt;m__68()">
+ <size>6</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__69()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__6A()">
+ <size>3</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewArrayInitTest_1&gt;c__async30">
+ <method name="Void MoveNext()">
+ <size>212</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__6B()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewArrayInitTest_2&gt;c__async31">
+ <method name="Void MoveNext()">
+ <size>334</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__6C()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__6D()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewArrayInitTest_3&gt;c__async32">
+ <method name="Void MoveNext()">
+ <size>232</size>
+ </method>
+ <method name="Byte &lt;&gt;m__6E()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewArrayInitTest_4&gt;c__async33">
+ <method name="Void MoveNext()">
+ <size>420</size>
+ </method>
+ <method name="UInt16 &lt;&gt;m__6F()">
+ <size>2</size>
+ </method>
+ <method name="UInt16 &lt;&gt;m__70()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewArrayInitTest_5&gt;c__async34">
+ <method name="Void MoveNext()">
+ <size>250</size>
+ </method>
+ <method name="S &lt;&gt;m__71()">
+ <size>18</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;NewArrayInitTest_6&gt;c__async35">
+ <method name="Void MoveNext()">
+ <size>265</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__72()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;PropertyTest_1&gt;c__async36">
+ <method name="Void MoveNext()">
+ <size>201</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__73()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;PropertyTest_2&gt;c__async37">
+ <method name="Void MoveNext()">
+ <size>267</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__74()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;PropertyTest_3&gt;c__async38">
+ <method name="Void MoveNext()">
+ <size>630</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__75()">
+ <size>3</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__76()">
+ <size>2</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__77()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;StringConcatTest_1&gt;c__async39">
+ <method name="Void MoveNext()">
+ <size>441</size>
+ </method>
+ <method name="System.String &lt;&gt;m__78()">
+ <size>6</size>
+ </method>
+ <method name="System.String &lt;&gt;m__79()">
+ <size>6</size>
+ </method>
+ <method name="System.String &lt;&gt;m__7A()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;UnaryTest_1&gt;c__async3A">
+ <method name="Void MoveNext()">
+ <size>212</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__7B()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;UnaryTest_2&gt;c__async3B">
+ <method name="Void MoveNext()">
+ <size>311</size>
+ </method>
+ <method name="Nullable`1 &lt;&gt;m__7C()">
+ <size>7</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>36</size>
+ </method>
+ </type>
+ <type name="Tester+&lt;UnaryTest_3&gt;c__async3C">
+ <method name="Void MoveNext()">
+ <size>347</size>
+ </method>
+ <method name="Int32 &lt;&gt;m__7D()">
<size>2</size>
</method>
<method name="Void .ctor()">
Please sign in to comment.
Something went wrong with that request. Please try again.