Fix sequence points for more statements
authorMarek Safar <marek.safar@gmail.com>
Wed, 15 Feb 2012 17:00:02 +0000 (17:00 +0000)
committerMarek Safar <marek.safar@gmail.com>
Wed, 15 Feb 2012 17:12:42 +0000 (17:12 +0000)
13 files changed:
mcs/mcs/async.cs
mcs/mcs/dynamic.cs
mcs/mcs/ecore.cs
mcs/mcs/iterators.cs
mcs/mcs/parameter.cs
mcs/mcs/statement.cs
mcs/tests/test-debug-17-ref.xml [new file with mode: 0644]
mcs/tests/test-debug-17.cs [new file with mode: 0644]
mcs/tests/test-debug-18-ref.xml [new file with mode: 0644]
mcs/tests/test-debug-18.cs [new file with mode: 0644]
mcs/tests/test-debug-19-ref.xml [new file with mode: 0644]
mcs/tests/test-debug-19.cs [new file with mode: 0644]
mcs/tests/ver-il-net_4_5.xml

index 138ed2f99bb2e5181dd752a34bd348a967419e7d..42e5cddc67a163150434732adfa73f3136817af7 100644 (file)
@@ -88,7 +88,10 @@ namespace Mono.CSharp
                public override void Emit (EmitContext ec)
                {
                        stmt.EmitPrologue (ec);
-                       stmt.Emit (ec);
+
+                       using (ec.With (BuilderContext.Options.OmitDebugInfo, true)) {
+                               stmt.Emit (ec);
+                       }
                }
                
                public override Expression EmitToField (EmitContext ec)
@@ -280,7 +283,7 @@ namespace Mono.CSharp
                public void EmitStatement (EmitContext ec)
                {
                        EmitPrologue (ec);
-                       Emit (ec);
+                       DoEmit (ec);
 
                        if (ResultType.Kind != MemberKind.Void) {
                                var storey = (AsyncTaskStorey) machine_initializer.Storey;
index 1c209d6112d1ee20ed0dc3c4f1afd07a76d8b467..93b2e2e5c7008109a0150858edf285633afb8800 100644 (file)
@@ -495,41 +495,40 @@ namespace Mono.CSharp
                        FieldExpr site_field_expr = new FieldExpr (MemberCache.GetMember (gt, field), loc);
 
                        BlockContext bc = new BlockContext (ec.MemberContext, null, ec.BuiltinTypes.Void);
-                       SymbolWriter.OpenCompilerGeneratedBlock (ec);
 
                        Arguments args = new Arguments (1);
                        args.Add (new Argument (binder));
                        StatementExpression s = new StatementExpression (new SimpleAssign (site_field_expr, new Invocation (new MemberAccess (instanceAccessExprType, "Create"), args)));
-                       
-                       if (s.Resolve (bc)) {
-                               Statement init = new If (new Binary (Binary.Operator.Equality, site_field_expr, new NullLiteral (loc), loc), s, loc);
-                               init.Emit (ec);
-                       }
-
-                       args = new Arguments (1 + dyn_args_count);
-                       args.Add (new Argument (site_field_expr));
-                       if (arguments != null) {
-                               int arg_pos = 1;
-                               foreach (Argument a in arguments) {
-                                       if (a is NamedArgument) {
-                                               // Name is not valid in this context
-                                               args.Add (new Argument (a.Expr, a.ArgType));
-                                       } else {
-                                               args.Add (a);
-                                       }
 
-                                       if (inflate_using_mvar && a.Type != targs[arg_pos].Type)
-                                               a.Expr.Type = targs[arg_pos].Type;
-
-                                       ++arg_pos;
+                       using (ec.With (BuilderContext.Options.OmitDebugInfo, true)) {
+                               if (s.Resolve (bc)) {
+                                       Statement init = new If (new Binary (Binary.Operator.Equality, site_field_expr, new NullLiteral (loc), loc), s, loc);
+                                       init.Emit (ec);
                                }
-                       }
 
-                       Expression target = new DelegateInvocation (new MemberAccess (site_field_expr, "Target", loc).Resolve (bc), args, loc).Resolve (bc);
-                       if (target != null)
-                               target.Emit (ec);
+                               args = new Arguments (1 + dyn_args_count);
+                               args.Add (new Argument (site_field_expr));
+                               if (arguments != null) {
+                                       int arg_pos = 1;
+                                       foreach (Argument a in arguments) {
+                                               if (a is NamedArgument) {
+                                                       // Name is not valid in this context
+                                                       args.Add (new Argument (a.Expr, a.ArgType));
+                                               } else {
+                                                       args.Add (a);
+                                               }
+
+                                               if (inflate_using_mvar && a.Type != targs[arg_pos].Type)
+                                                       a.Expr.Type = targs[arg_pos].Type;
+
+                                               ++arg_pos;
+                                       }
+                               }
 
-                       SymbolWriter.CloseCompilerGeneratedBlock (ec);
+                               Expression target = new DelegateInvocation (new MemberAccess (site_field_expr, "Target", loc).Resolve (bc), args, loc).Resolve (bc);
+                               if (target != null)
+                                       target.Emit (ec);
+                       }
                }
 
                public static MemberAccess GetBinderNamespace (Location loc)
@@ -608,7 +607,9 @@ namespace Mono.CSharp
                public override void EmitStatement (EmitContext ec)
                {
                        var stmt = new If (condition, new StatementExpression (invoke), new StatementExpression (assign), loc);
-                       stmt.Emit (ec);
+                       using (ec.With (BuilderContext.Options.OmitDebugInfo, true)) {
+                               stmt.Emit (ec);
+                       }
                }
        }
 
index 0d3da93a120e7f8e8f6e03ed9dc22427a76dc452..45543cbc1dc180365a9b8fd54c9bbcc288e60dea 100644 (file)
@@ -6186,6 +6186,12 @@ namespace Mono.CSharp {
                                variable.li.CreateBuilder (ec);
                        }
 
+                       public override void Emit (EmitContext ec)
+                       {
+                               // Don't create sequence point
+                               DoEmit (ec);
+                       }
+
                        protected override void CloneTo (CloneContext clonectx, Statement target)
                        {
                                // Nothing
index 251cc6d860f5f52f835511b6dc8affcae8cbbd91..bbc5d9dc3c2641f1b79724eef3b68b063070b8b4 100644 (file)
@@ -625,6 +625,12 @@ namespace Mono.CSharp
                        {
                                state_machine.EmitMoveNext (ec);
                        }
+
+                       public override void Emit (EmitContext ec)
+                       {
+                               // Don't create sequence point
+                               DoEmit (ec);
+                       }
                }
 
                public readonly TypeDefinition Host;
index 0a5590703eab37bc977eae55e68d6031aa6455ae..fc0ea07954d5675cdb77f371fbe59dffffb57f53 100644 (file)
@@ -1193,7 +1193,7 @@ namespace Mono.CSharp {
                                // Each parameter expression is stored to local variable
                                // to save some memory when referenced later.
                                //
-                               StatementExpression se = new StatementExpression (p.CreateExpressionTreeVariable (ec));
+                               StatementExpression se = new StatementExpression (p.CreateExpressionTreeVariable (ec), Location.Null);
                                if (se.Resolve (ec)) {
                                        ec.CurrentBlock.AddScopeStatement (new TemporaryVariableReference.Declarator (p.ExpressionTreeVariableReference ()));
                                        ec.CurrentBlock.AddScopeStatement (se);
index 9264e1d8b774632c50c1658831d60435f589e80f..26da92ee19e5fcaa8357c72e471cd32034e78b47 100644 (file)
@@ -2965,8 +2965,7 @@ namespace Mono.CSharp {
 
                public void WrapIntoAsyncTask (IMemberContext context, TypeDefinition host, TypeSpec returnType)
                {
-                       ParametersBlock pb = new ParametersBlock (this, ParametersCompiled.EmptyReadOnlyParameters, StartLocation);
-                       pb.EndLocation = EndLocation;
+                       ParametersBlock pb = new ParametersBlock (this, ParametersCompiled.EmptyReadOnlyParameters, Location.Null);
                        pb.statements = statements;
                        pb.Original = this;
 
@@ -2979,6 +2978,7 @@ namespace Mono.CSharp {
                        statements = new List<Statement> (1);
                        AddStatement (new StatementExpression (initializer));
                        flags &= ~Flags.AwaitBlock;
+                       IsCompilerGenerated = true;
                }
        }
 
diff --git a/mcs/tests/test-debug-17-ref.xml b/mcs/tests/test-debug-17-ref.xml
new file mode 100644 (file)
index 0000000..29fedfd
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<symbols>
+  <files>
+    <file id="1" name="test-debug-17.cs" checksum="9805aca91147b7f4ec74188f210f34a4" />
+  </files>
+  <methods>
+    <method token="0x6000001">
+      <sequencepoints>
+        <entry il="0x0" row="7" file_ref="1" hidden="false" />
+        <entry il="0x1" row="8" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000002">
+      <sequencepoints>
+        <entry il="0x2a" row="11" file_ref="1" hidden="false" />
+        <entry il="0x2b" row="12" file_ref="1" hidden="false" />
+        <entry il="0x46" row="16" file_ref="1" hidden="false" />
+        <entry il="0x4b" row="17" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals>
+        <entry name="e" il_index="2" scope_ref="0" />
+      </locals>
+      <scopes />
+    </method>
+    <method token="0x6000003">
+      <sequencepoints>
+        <entry il="0x0" row="20" file_ref="1" hidden="false" />
+        <entry il="0x1" row="21" file_ref="1" hidden="false" />
+        <entry il="0x32" row="22" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals>
+        <entry name="e" il_index="0" scope_ref="0" />
+      </locals>
+      <scopes />
+    </method>
+    <method token="0x6000004">
+      <sequencepoints />
+      <locals />
+      <scopes />
+    </method>
+  </methods>
+</symbols>
\ No newline at end of file
diff --git a/mcs/tests/test-debug-17.cs b/mcs/tests/test-debug-17.cs
new file mode 100644 (file)
index 0000000..622c75a
--- /dev/null
@@ -0,0 +1,23 @@
+using System;
+using System.Linq.Expressions;
+
+class C
+{
+       public static void Main ()
+       {
+       }
+       
+       void Test_1 ()
+       {
+               Expression<Func<int, int, int>> e = 
+                       (a, b) =>
+                       a + b;
+               
+               return;
+       }
+       
+       void Test_2 ()
+       {
+               Expression<Func<Expression<Func<int>>>> e = () => () => 2;
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-debug-18-ref.xml b/mcs/tests/test-debug-18-ref.xml
new file mode 100644 (file)
index 0000000..0d6f668
--- /dev/null
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<symbols>
+  <files>
+    <file id="1" name="test-debug-18.cs" checksum="ee1cffde61e537076c998f04e8baf5bd" />
+  </files>
+  <methods>
+    <method token="0x6000001">
+      <sequencepoints />
+      <locals />
+      <scopes>
+        <entry index="0" start="0x7" end="0x22" />
+      </scopes>
+    </method>
+    <method token="0x6000002">
+      <sequencepoints />
+      <locals />
+      <scopes>
+        <entry index="0" start="0x7" end="0x22" />
+      </scopes>
+    </method>
+    <method token="0x6000003">
+      <sequencepoints>
+        <entry il="0x0" row="8" file_ref="1" hidden="false" />
+        <entry il="0x1" row="9" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000004">
+      <sequencepoints>
+        <entry il="0x0" row="12" file_ref="1" hidden="false" />
+        <entry il="0x1" row="13" file_ref="1" hidden="false" />
+        <entry il="0x10" row="14" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000005">
+      <sequencepoints>
+        <entry il="0x0" row="17" file_ref="1" hidden="false" />
+        <entry il="0x1" row="18" file_ref="1" hidden="false" />
+        <entry il="0x7" row="19" file_ref="1" hidden="false" />
+        <entry il="0xa3" row="20" file_ref="1" hidden="false" />
+        <entry il="0xa8" row="21" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals>
+        <entry name="d" il_index="0" scope_ref="0" />
+        <entry name="s" il_index="1" scope_ref="0" />
+      </locals>
+      <scopes />
+    </method>
+    <method token="0x6000006">
+      <sequencepoints>
+        <entry il="0x0" row="24" file_ref="1" hidden="false" />
+        <entry il="0x1" row="25" file_ref="1" hidden="false" />
+        <entry il="0x7" row="26" file_ref="1" hidden="false" />
+        <entry il="0x5a" row="27" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals>
+        <entry name="d" il_index="0" scope_ref="0" />
+      </locals>
+      <scopes />
+    </method>
+    <method token="0x6000007">
+      <sequencepoints>
+        <entry il="0x0" row="30" file_ref="1" hidden="false" />
+        <entry il="0x1" row="31" file_ref="1" hidden="false" />
+        <entry il="0x7" row="32" file_ref="1" hidden="false" />
+        <entry il="0xe" row="33" file_ref="1" hidden="false" />
+        <entry il="0x14" row="34" file_ref="1" hidden="false" />
+        <entry il="0x81" row="35" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals>
+        <entry name="u" il_index="0" scope_ref="0" />
+        <entry name="v" il_index="1" scope_ref="0" />
+        <entry name="c" il_index="2" scope_ref="0" />
+      </locals>
+      <scopes />
+    </method>
+    <method token="0x6000008">
+      <sequencepoints>
+        <entry il="0x0" row="38" file_ref="1" hidden="false" />
+        <entry il="0x1" row="39" file_ref="1" hidden="false" />
+        <entry il="0x7" row="40" file_ref="1" hidden="false" />
+        <entry il="0x1e4" row="41" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals>
+        <entry name="d" il_index="0" scope_ref="0" />
+      </locals>
+      <scopes />
+    </method>
+    <method token="0x6000009">
+      <sequencepoints />
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x600000a">
+      <sequencepoints>
+        <entry il="0x0" row="40" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+  </methods>
+</symbols>
\ No newline at end of file
diff --git a/mcs/tests/test-debug-18.cs b/mcs/tests/test-debug-18.cs
new file mode 100644 (file)
index 0000000..12b56a9
--- /dev/null
@@ -0,0 +1,42 @@
+using System;
+
+class C
+{
+       event Func<int> OutEvent;
+       
+       public static void Main ()
+       {
+       }
+       
+       public void M<U, V> (out U u, ref V v)
+       {
+               u = default (U);
+       }
+       
+       void Test_1 ()
+       {
+               dynamic d = "a";
+               string s = d + "b";
+               return;
+       }
+       
+       void Test_2 ()
+       {
+               dynamic d = "a";
+               d.ToString ();
+       }
+       
+       void Test_3 ()
+       {
+               dynamic u = "s";
+               dynamic v = 5;
+               dynamic c = new C ();
+               c.M (out u, ref v);
+       }
+       
+       void Test_4 ()
+       {
+               dynamic d = new C ();
+               d.OutEvent += new Func<int> (() => 100);
+       }
+}
diff --git a/mcs/tests/test-debug-19-ref.xml b/mcs/tests/test-debug-19-ref.xml
new file mode 100644 (file)
index 0000000..ce5e3fb
--- /dev/null
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<symbols>
+  <files>
+    <file id="1" name="test-debug-19.cs" checksum="232e388b5944dfb605baff1236502033" />
+  </files>
+  <methods>
+    <method token="0x6000001">
+      <sequencepoints>
+        <entry il="0x0" row="7" file_ref="1" hidden="false" />
+        <entry il="0x1" row="8" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000002">
+      <sequencepoints />
+      <locals />
+      <scopes>
+        <entry index="0" start="0x0" end="0x6" />
+      </scopes>
+    </method>
+    <method token="0x6000003">
+      <sequencepoints>
+        <entry il="0x0" row="16" file_ref="1" hidden="false" />
+        <entry il="0x1" row="17" file_ref="1" hidden="false" />
+        <entry il="0x2e" row="21" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000004">
+      <sequencepoints />
+      <locals />
+      <scopes>
+        <entry index="0" start="0x0" end="0x6" />
+      </scopes>
+    </method>
+    <method token="0x6000005">
+      <sequencepoints>
+        <entry il="0x0" row="29" file_ref="1" hidden="false" />
+        <entry il="0x1" row="30" file_ref="1" hidden="false" />
+        <entry il="0x2e" row="31" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000006">
+      <sequencepoints />
+      <locals />
+      <scopes>
+        <entry index="0" start="0x0" end="0x6" />
+      </scopes>
+    </method>
+    <method token="0x6000007">
+      <sequencepoints />
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000008">
+      <sequencepoints>
+        <entry il="0x0" row="19" file_ref="1" hidden="false" />
+        <entry il="0x1" row="20" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000009">
+      <sequencepoints>
+        <entry il="0x0" row="30" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x600000a">
+      <sequencepoints>
+        <entry il="0x21" row="11" file_ref="1" hidden="false" />
+        <entry il="0x22" row="12" file_ref="1" hidden="false" />
+        <entry il="0x90" row="13" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes>
+        <entry index="0" start="0x22" end="0x72" />
+      </scopes>
+    </method>
+    <method token="0x600000b">
+      <sequencepoints />
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x600000c">
+      <sequencepoints>
+        <entry il="0x21" row="24" file_ref="1" hidden="false" />
+        <entry il="0x22" row="25" file_ref="1" hidden="false" />
+        <entry il="0x96" row="26" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes>
+        <entry index="0" start="0x22" end="0x78" />
+      </scopes>
+    </method>
+    <method token="0x600000d">
+      <sequencepoints />
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x600000e">
+      <sequencepoints>
+        <entry il="0x21" row="34" file_ref="1" hidden="false" />
+        <entry il="0x22" row="35" file_ref="1" hidden="false" />
+        <entry il="0x2d" row="36" file_ref="1" hidden="false" />
+        <entry il="0x8b" row="37" file_ref="1" hidden="false" />
+        <entry il="0x388" row="38" file_ref="1" hidden="false" />
+        <entry il="0x499" row="39" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes>
+        <entry index="0" start="0x22" end="0x479" />
+      </scopes>
+    </method>
+    <method token="0x600000f">
+      <sequencepoints />
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000010">
+      <sequencepoints>
+        <entry il="0x0" row="37" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+  </methods>
+</symbols>
\ No newline at end of file
diff --git a/mcs/tests/test-debug-19.cs b/mcs/tests/test-debug-19.cs
new file mode 100644 (file)
index 0000000..eacfc52
--- /dev/null
@@ -0,0 +1,40 @@
+using System;
+using System.Threading.Tasks;
+
+class C
+{
+       public static void Main ()
+       {
+       }
+       
+       static async void Test_1 ()
+       {
+               await RunAsync ();
+       }
+
+       static Task RunAsync ()
+       {
+               return Task.Factory.StartNew (
+               () =>
+               {
+               });
+       }
+       
+       static async Task<int> Test_2 ()
+       {
+               return await RunAsync_2 ();
+       }
+
+       static Task<int> RunAsync_2 ()
+       {
+               return Task.Factory.StartNew (() => 2);
+       }
+       
+       async Task<bool> Test_3 ()
+       {
+               dynamic d = new C ();
+               d.Value = 3;
+               d.Value += await Task.Factory.StartNew (() => 2);
+               return d.Value == 5;
+       }
+}
index b96f631a0d629887402ae3acc3a3eb67f75c6415..8a39965cc38bf7805073ea75f3c14c4fcee83e17 100644 (file)
         <size>131</size>
       </method>
       <method name="Void TestAsync()" attrs="145">
-        <size>14</size>
+        <size>13</size>
       </method>
       <method name="System.Threading.Tasks.Task RunAsync()" attrs="145">
         <size>48</size>
     </type>
     <type name="Program+&lt;TestAsync&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>221</size>
+        <size>219</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
   <test name="test-async-02.cs">
     <type name="C">
       <method name="System.Threading.Tasks.Task TestTask()" attrs="134">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task TestTask2()" attrs="134">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task Call()" attrs="129">
         <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestTaskGeneric()" attrs="134">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] CallGeneric()" attrs="129">
         <size>31</size>
     </type>
     <type name="C+&lt;TestTask&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>171</size>
+        <size>169</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
     </type>
     <type name="C+&lt;TestTask2&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>170</size>
+        <size>169</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
     </type>
     <type name="C+&lt;TestTaskGeneric&gt;c__async2">
       <method name="Void MoveNext()" attrs="134">
-        <size>177</size>
+        <size>176</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
         <size>10</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] Test1()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] Test2()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task Test3()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>88</size>
     </type>
     <type name="A+&lt;Test1&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>284</size>
+        <size>283</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
     </type>
     <type name="A+&lt;Test2&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>169</size>
+        <size>168</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
     </type>
     <type name="A+&lt;Test3&gt;c__async2">
       <method name="Void MoveNext()" attrs="134">
-        <size>162</size>
+        <size>160</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
   <test name="test-async-04.cs">
     <type name="C">
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestTaskGeneric()" attrs="134">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>141</size>
     </type>
     <type name="C+&lt;TestTaskGeneric&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>190</size>
+        <size>189</size>
       </method>
       <method name="Int32 &lt;&gt;m__0()" attrs="131">
         <size>49</size>
     </type>
     <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>220</size>
+        <size>218</size>
       </method>
       <method name="Void &lt;&gt;m__5()" attrs="131">
         <size>39</size>
     </type>
     <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async2">
       <method name="Void MoveNext()" attrs="134">
-        <size>220</size>
+        <size>218</size>
       </method>
       <method name="Void &lt;&gt;m__6()" attrs="131">
         <size>39</size>
     </type>
     <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3">
       <method name="Void MoveNext()" attrs="134">
-        <size>200</size>
+        <size>199</size>
       </method>
       <method name="System.String &lt;&gt;m__7()" attrs="131">
         <size>52</size>
     </type>
     <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async4">
       <method name="Void MoveNext()" attrs="134">
-        <size>200</size>
+        <size>199</size>
       </method>
       <method name="Decimal &lt;&gt;m__8()" attrs="131">
         <size>52</size>
     </type>
     <type name="Program+&lt;Main&gt;c__async5">
       <method name="Void MoveNext()" attrs="134">
-        <size>45</size>
+        <size>44</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
     </type>
     <type name="AsyncTypeInference+&lt;Main&gt;c__async5">
       <method name="Void MoveNext()" attrs="134">
-        <size>205</size>
+        <size>204</size>
       </method>
       <method name="Int32 &lt;&gt;m__6()" attrs="145">
         <size>9</size>
     </type>
     <type name="AsyncTypeInference+&lt;Main&gt;c__async8">
       <method name="Void MoveNext()" attrs="134">
-        <size>165</size>
+        <size>163</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
     </type>
     <type name="AsyncTypeInference+&lt;Main&gt;c__asyncB">
       <method name="Void MoveNext()" attrs="134">
-        <size>39</size>
+        <size>37</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
   <test name="test-async-10.cs">
     <type name="C">
       <method name="System.Threading.Tasks.Task`1[System.String] TestCompositionCall_1()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.String] TestCompositionCall_2()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionCall_3()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_1()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_2()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_3()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_4()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Byte] M(Byte)" attrs="145">
         <size>44</size>
     </type>
     <type name="C+&lt;TestCompositionCall_1&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>369</size>
+        <size>368</size>
       </method>
       <method name="System.String &lt;&gt;m__1()" attrs="145">
         <size>21</size>
     </type>
     <type name="C+&lt;TestCompositionCall_2&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>249</size>
+        <size>248</size>
       </method>
       <method name="System.String &lt;&gt;m__3()" attrs="145">
         <size>13</size>
     </type>
     <type name="C+&lt;TestCompositionCall_3&gt;c__async2">
       <method name="Void MoveNext()" attrs="134">
-        <size>339</size>
+        <size>338</size>
       </method>
       <method name="Byte &lt;&gt;m__4()" attrs="145">
         <size>9</size>
     </type>
     <type name="C+&lt;TestCompositionPair_1&gt;c__async3">
       <method name="Void MoveNext()" attrs="134">
-        <size>207</size>
+        <size>206</size>
       </method>
       <method name="Int32 &lt;&gt;m__5()" attrs="145">
         <size>9</size>
     </type>
     <type name="C+&lt;TestCompositionPair_2&gt;c__async4">
       <method name="Void MoveNext()" attrs="134">
-        <size>360</size>
+        <size>359</size>
       </method>
       <method name="Int32 &lt;&gt;m__6()" attrs="145">
         <size>17</size>
     </type>
     <type name="C+&lt;TestCompositionPair_3&gt;c__async5">
       <method name="Void MoveNext()" attrs="134">
-        <size>208</size>
+        <size>207</size>
       </method>
       <method name="Int32 &lt;&gt;m__8()" attrs="145">
         <size>9</size>
     </type>
     <type name="C+&lt;TestCompositionPair_4&gt;c__async6">
       <method name="Void MoveNext()" attrs="134">
-        <size>511</size>
+        <size>510</size>
       </method>
       <method name="Int32 &lt;&gt;m__9()" attrs="145">
         <size>9</size>
   <test name="test-async-11.cs">
     <type name="G`1[T]">
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_1(T)" attrs="134">
-        <size>39</size>
+        <size>38</size>
       </method>
       <method name="Int32 Call(T, T, T ByRef, Int32)" attrs="129">
         <size>17</size>
         <size>90</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_1()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 TestCall2[T1,T2,T3,T4,T5,T6,T7](T1, T2, T3, T4, T5, T6, T7)" attrs="129">
         <size>10</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_2(UInt64)" attrs="145">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_3()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 TestCall3(S ByRef, S ByRef, Int32, Int32)" attrs="145">
         <size>26</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_4()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 TestCall4(E, S, C, Int32)" attrs="145">
         <size>61</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_5()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>370</size>
     </type>
     <type name="G`1+&lt;TestStack_1&gt;c__async0[T]">
       <method name="Void MoveNext()" attrs="134">
-        <size>265</size>
+        <size>264</size>
       </method>
       <method name="Int32 &lt;&gt;m__0()" attrs="145">
         <size>9</size>
     </type>
     <type name="C+&lt;TestStack_1&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>312</size>
+        <size>311</size>
       </method>
       <method name="Int32 &lt;&gt;m__1()" attrs="145">
         <size>9</size>
     </type>
     <type name="C+&lt;TestStack_2&gt;c__async2">
       <method name="Void MoveNext()" attrs="134">
-        <size>294</size>
+        <size>293</size>
       </method>
       <method name="Int32 &lt;&gt;m__2()" attrs="145">
         <size>9</size>
     </type>
     <type name="C+&lt;TestStack_3&gt;c__async3">
       <method name="Void MoveNext()" attrs="134">
-        <size>467</size>
+        <size>466</size>
       </method>
       <method name="Int32 &lt;&gt;m__3()" attrs="145">
         <size>9</size>
     </type>
     <type name="C+&lt;TestStack_4&gt;c__async4">
       <method name="Void MoveNext()" attrs="134">
-        <size>322</size>
+        <size>321</size>
       </method>
       <method name="Int32 &lt;&gt;m__4()" attrs="145">
         <size>9</size>
     </type>
     <type name="C+&lt;TestStack_5&gt;c__async5">
       <method name="Void MoveNext()" attrs="134">
-        <size>300</size>
+        <size>299</size>
       </method>
       <method name="Int32 &lt;&gt;m__5()" attrs="131">
         <size>48</size>
   <test name="test-async-12.cs">
     <type name="C">
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestNested_1()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 Call(Int32, Int32, Int32)" attrs="145">
         <size>53</size>
     </type>
     <type name="C+&lt;TestNested_1&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>500</size>
+        <size>499</size>
       </method>
       <method name="Int32 &lt;&gt;m__0()" attrs="145">
         <size>17</size>
     </type>
     <type name="Tester">
       <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_3()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_4()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_5()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_6()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_7()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_8()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_9()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] AssignTest_1()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] AssignTest_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] AssignTest_3()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_3()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_4()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_1()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] CallTest_2()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_3()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] CallTest_4()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_5()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] CastTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] CastTest_2()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] CoalescingTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] CoalescingTest_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_2()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_3()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_4()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] DelegateInvoke_4()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] EventInvoke_1()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] FieldTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_1()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_2()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_3()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_4()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_5()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_6()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_7()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] IsTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] IsTest_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_3()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] NewTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] NewTest_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] NewInitTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] NewInitTest_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] NewArrayInitTest_3()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_4()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] NewArrayInitTest_5()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_6()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] PropertyTest_1()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] PropertyTest_2()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] PropertyTest_3()" attrs="129">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] StringConcatTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] UnaryTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] UnaryTest_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] UnaryTest_3()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] VariableInitializer_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
         <size>247</size>
     </type>
     <type name="Tester+&lt;ArrayAccessTest_1&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>386</size>
+        <size>385</size>
       </method>
       <method name="Boolean &lt;&gt;m__4()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ArrayAccessTest_2&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>841</size>
+        <size>840</size>
       </method>
       <method name="Int32 &lt;&gt;m__6()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ArrayAccessTest_3&gt;c__async2">
       <method name="Void MoveNext()" attrs="134">
-        <size>1202</size>
+        <size>1201</size>
       </method>
       <method name="Int32 &lt;&gt;m__A()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ArrayAccessTest_4&gt;c__async3">
       <method name="Void MoveNext()" attrs="134">
-        <size>458</size>
+        <size>457</size>
       </method>
       <method name="Int32 &lt;&gt;m__F()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4">
       <method name="Void MoveNext()" attrs="134">
-        <size>458</size>
+        <size>457</size>
       </method>
       <method name="Int32 &lt;&gt;m__11()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ArrayAccessTest_6&gt;c__async5">
       <method name="Void MoveNext()" attrs="134">
-        <size>267</size>
+        <size>266</size>
       </method>
       <method name="Int64 &lt;&gt;m__13()" attrs="145">
         <size>10</size>
     </type>
     <type name="Tester+&lt;ArrayAccessTest_7&gt;c__async6">
       <method name="Void MoveNext()" attrs="134">
-        <size>397</size>
+        <size>396</size>
       </method>
       <method name="Int32 &lt;&gt;m__14()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ArrayAccessTest_8&gt;c__async7">
       <method name="Void MoveNext()" attrs="134">
-        <size>721</size>
+        <size>720</size>
       </method>
       <method name="Int32 &lt;&gt;m__15()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ArrayAccessTest_9&gt;c__async8">
       <method name="Void MoveNext()" attrs="134">
-        <size>1357</size>
+        <size>1356</size>
       </method>
       <method name="Int32 &lt;&gt;m__17()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;AssignTest_1&gt;c__async9">
       <method name="Void MoveNext()" attrs="134">
-        <size>231</size>
+        <size>230</size>
       </method>
       <method name="Int32 &lt;&gt;m__1E()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;AssignTest_2&gt;c__asyncA">
       <method name="Void MoveNext()" attrs="134">
-        <size>283</size>
+        <size>282</size>
       </method>
       <method name="Nullable`1 &lt;&gt;m__1F()" attrs="145">
         <size>17</size>
     </type>
     <type name="Tester+&lt;AssignTest_3&gt;c__asyncB">
       <method name="Void MoveNext()" attrs="134">
-        <size>415</size>
+        <size>414</size>
       </method>
       <method name="Int32 &lt;&gt;m__20()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;BinaryTest_1&gt;c__asyncC">
       <method name="Void MoveNext()" attrs="134">
-        <size>511</size>
+        <size>510</size>
       </method>
       <method name="Int32 &lt;&gt;m__22()" attrs="145">
         <size>17</size>
     </type>
     <type name="Tester+&lt;BinaryTest_2&gt;c__asyncD">
       <method name="Void MoveNext()" attrs="134">
-        <size>542</size>
+        <size>541</size>
       </method>
       <method name="Boolean &lt;&gt;m__25()" attrs="131">
         <size>24</size>
     </type>
     <type name="Tester+&lt;BinaryTest_3&gt;c__asyncE">
       <method name="Void MoveNext()" attrs="134">
-        <size>1233</size>
+        <size>1232</size>
       </method>
       <method name="Nullable`1 &lt;&gt;m__28()" attrs="145">
         <size>14</size>
     </type>
     <type name="Tester+&lt;BinaryTest_4&gt;c__asyncF">
       <method name="Void MoveNext()" attrs="134">
-        <size>910</size>
+        <size>909</size>
       </method>
       <method name="Nullable`1 &lt;&gt;m__2E()" attrs="145">
         <size>14</size>
     </type>
     <type name="Tester+&lt;CallTest_1&gt;c__async10">
       <method name="Void MoveNext()" attrs="134">
-        <size>506</size>
+        <size>505</size>
       </method>
       <method name="Int32 &lt;&gt;m__32()" attrs="145">
         <size>17</size>
     </type>
     <type name="Tester+&lt;CallTest_2&gt;c__async11">
       <method name="Void MoveNext()" attrs="134">
-        <size>277</size>
+        <size>276</size>
       </method>
       <method name="Int32 &lt;&gt;m__35()" attrs="145">
         <size>17</size>
     </type>
     <type name="Tester+&lt;CallTest_3&gt;c__async12">
       <method name="Void MoveNext()" attrs="134">
-        <size>247</size>
+        <size>246</size>
       </method>
       <method name="Int32 &lt;&gt;m__36()" attrs="145">
         <size>10</size>
     </type>
     <type name="Tester+&lt;CallTest_4&gt;c__async13">
       <method name="Void MoveNext()" attrs="134">
-        <size>237</size>
+        <size>236</size>
       </method>
       <method name="E &lt;&gt;m__37()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;CallTest_5&gt;c__async14">
       <method name="Void MoveNext()" attrs="134">
-        <size>303</size>
+        <size>302</size>
       </method>
       <method name="Int32 &lt;&gt;m__38()" attrs="131">
         <size>25</size>
     </type>
     <type name="Tester+&lt;CastTest_1&gt;c__async15">
       <method name="Void MoveNext()" attrs="134">
-        <size>256</size>
+        <size>255</size>
       </method>
       <method name="Decimal &lt;&gt;m__39()" attrs="145">
         <size>15</size>
     </type>
     <type name="Tester+&lt;CastTest_2&gt;c__async16">
       <method name="Void MoveNext()" attrs="134">
-        <size>238</size>
+        <size>237</size>
       </method>
       <method name="Tester &lt;&gt;m__3A()" attrs="131">
         <size>14</size>
     </type>
     <type name="Tester+&lt;CoalescingTest_1&gt;c__async17">
       <method name="Void MoveNext()" attrs="134">
-        <size>402</size>
+        <size>401</size>
       </method>
       <method name="System.String &lt;&gt;m__3B()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;CoalescingTest_2&gt;c__async18">
       <method name="Void MoveNext()" attrs="134">
-        <size>415</size>
+        <size>414</size>
       </method>
       <method name="Nullable`1 &lt;&gt;m__3D()" attrs="145">
         <size>17</size>
     </type>
     <type name="Tester+&lt;ConditionalTest_1&gt;c__async19">
       <method name="Void MoveNext()" attrs="134">
-        <size>223</size>
+        <size>222</size>
       </method>
       <method name="Int32 &lt;&gt;m__3F()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ConditionalTest_2&gt;c__async1A">
       <method name="Void MoveNext()" attrs="134">
-        <size>380</size>
+        <size>379</size>
       </method>
       <method name="Int32 &lt;&gt;m__40()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ConditionalTest_3&gt;c__async1B">
       <method name="Void MoveNext()" attrs="134">
-        <size>398</size>
+        <size>397</size>
       </method>
       <method name="Boolean &lt;&gt;m__42()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;ConditionalTest_4&gt;c__async1C">
       <method name="Void MoveNext()" attrs="134">
-        <size>253</size>
+        <size>252</size>
       </method>
       <method name="Int32 &lt;&gt;m__44()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;DelegateInvoke_4&gt;c__async1D">
       <method name="Void MoveNext()" attrs="134">
-        <size>281</size>
+        <size>280</size>
       </method>
       <method name="Int32 &lt;&gt;m__45(Int32)" attrs="145">
         <size>11</size>
     </type>
     <type name="Tester+&lt;EventInvoke_1&gt;c__async1E">
       <method name="Void MoveNext()" attrs="134">
-        <size>225</size>
+        <size>224</size>
       </method>
       <method name="System.Action &lt;&gt;m__47()" attrs="131">
         <size>23</size>
     </type>
     <type name="Tester+&lt;FieldTest_1&gt;c__async1F">
       <method name="Void MoveNext()" attrs="134">
-        <size>586</size>
+        <size>585</size>
       </method>
       <method name="Int32 &lt;&gt;m__49()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;IndexerTest_1&gt;c__async20">
       <method name="Void MoveNext()" attrs="134">
-        <size>233</size>
+        <size>232</size>
       </method>
       <method name="Int32 &lt;&gt;m__4B()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;IndexerTest_2&gt;c__async21">
       <method name="Void MoveNext()" attrs="134">
-        <size>386</size>
+        <size>385</size>
       </method>
       <method name="Int32 &lt;&gt;m__4C()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;IndexerTest_3&gt;c__async22">
       <method name="Void MoveNext()" attrs="134">
-        <size>415</size>
+        <size>414</size>
       </method>
       <method name="Int32 &lt;&gt;m__4E()" attrs="131">
         <size>25</size>
     </type>
     <type name="Tester+&lt;IndexerTest_4&gt;c__async23">
       <method name="Void MoveNext()" attrs="134">
-        <size>443</size>
+        <size>442</size>
       </method>
       <method name="Int32 &lt;&gt;m__50()" attrs="131">
         <size>25</size>
     </type>
     <type name="Tester+&lt;IndexerTest_5&gt;c__async24">
       <method name="Void MoveNext()" attrs="134">
-        <size>547</size>
+        <size>546</size>
       </method>
       <method name="Int32 &lt;&gt;m__52()" attrs="131">
         <size>25</size>
     </type>
     <type name="Tester+&lt;IndexerTest_6&gt;c__async25">
       <method name="Void MoveNext()" attrs="134">
-        <size>620</size>
+        <size>619</size>
       </method>
       <method name="Int32 &lt;&gt;m__54()" attrs="145">
         <size>10</size>
     </type>
     <type name="Tester+&lt;IndexerTest_7&gt;c__async26">
       <method name="Void MoveNext()" attrs="134">
-        <size>267</size>
+        <size>266</size>
       </method>
       <method name="Int32 &lt;&gt;m__57()" attrs="131">
         <size>25</size>
     </type>
     <type name="Tester+&lt;IsTest_1&gt;c__async27">
       <method name="Void MoveNext()" attrs="134">
-        <size>250</size>
+        <size>249</size>
       </method>
       <method name="Tester &lt;&gt;m__58()" attrs="145">
         <size>13</size>
     </type>
     <type name="Tester+&lt;IsTest_2&gt;c__async28">
       <method name="Void MoveNext()" attrs="134">
-        <size>243</size>
+        <size>242</size>
       </method>
       <method name="Nullable`1 &lt;&gt;m__59()" attrs="145">
         <size>14</size>
     </type>
     <type name="Tester+&lt;LogicalUserOperator_1&gt;c__async29">
       <method name="Void MoveNext()" attrs="134">
-        <size>435</size>
+        <size>434</size>
       </method>
       <method name="Base &lt;&gt;m__5A()" attrs="145">
         <size>13</size>
     </type>
     <type name="Tester+&lt;LogicalUserOperator_2&gt;c__async2A">
       <method name="Void MoveNext()" attrs="134">
-        <size>302</size>
+        <size>301</size>
       </method>
       <method name="Base &lt;&gt;m__5C()" attrs="145">
         <size>13</size>
     </type>
     <type name="Tester+&lt;LogicalUserOperator_3&gt;c__async2B">
       <method name="Void MoveNext()" attrs="134">
-        <size>434</size>
+        <size>433</size>
       </method>
       <method name="Base &lt;&gt;m__5D()" attrs="145">
         <size>13</size>
     </type>
     <type name="Tester+&lt;NewTest_1&gt;c__async2C">
       <method name="Void MoveNext()" attrs="134">
-        <size>263</size>
+        <size>262</size>
       </method>
       <method name="Int32 &lt;&gt;m__5F()" attrs="145">
         <size>10</size>
     </type>
     <type name="Tester+&lt;NewTest_2&gt;c__async2D">
       <method name="Void MoveNext()" attrs="134">
-        <size>399</size>
+        <size>398</size>
       </method>
       <method name="Int32 &lt;&gt;m__60()" attrs="145">
         <size>10</size>
     </type>
     <type name="Tester+&lt;NewInitTest_1&gt;c__async2E">
       <method name="Void MoveNext()" attrs="134">
-        <size>1156</size>
+        <size>1155</size>
       </method>
       <method name="Int32 &lt;&gt;m__62()" attrs="145">
         <size>10</size>
     </type>
     <type name="Tester+&lt;NewInitTest_2&gt;c__async2F">
       <method name="Void MoveNext()" attrs="134">
-        <size>840</size>
+        <size>839</size>
       </method>
       <method name="System.String &lt;&gt;m__68()" attrs="145">
         <size>13</size>
     </type>
     <type name="Tester+&lt;NewArrayInitTest_1&gt;c__async30">
       <method name="Void MoveNext()" attrs="134">
-        <size>243</size>
+        <size>242</size>
       </method>
       <method name="Int32 &lt;&gt;m__6C()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;NewArrayInitTest_2&gt;c__async31">
       <method name="Void MoveNext()" attrs="134">
-        <size>399</size>
+        <size>398</size>
       </method>
       <method name="Int32 &lt;&gt;m__6D()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;NewArrayInitTest_3&gt;c__async32">
       <method name="Void MoveNext()" attrs="134">
-        <size>263</size>
+        <size>262</size>
       </method>
       <method name="Byte &lt;&gt;m__6F()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;NewArrayInitTest_4&gt;c__async33">
       <method name="Void MoveNext()" attrs="134">
-        <size>485</size>
+        <size>484</size>
       </method>
       <method name="UInt16 &lt;&gt;m__70()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;NewArrayInitTest_5&gt;c__async34">
       <method name="Void MoveNext()" attrs="134">
-        <size>281</size>
+        <size>280</size>
       </method>
       <method name="S &lt;&gt;m__72()" attrs="145">
         <size>25</size>
     </type>
     <type name="Tester+&lt;NewArrayInitTest_6&gt;c__async35">
       <method name="Void MoveNext()" attrs="134">
-        <size>283</size>
+        <size>282</size>
       </method>
       <method name="Int32 &lt;&gt;m__73()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;PropertyTest_1&gt;c__async36">
       <method name="Void MoveNext()" attrs="134">
-        <size>230</size>
+        <size>229</size>
       </method>
       <method name="Int32 &lt;&gt;m__74()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;PropertyTest_2&gt;c__async37">
       <method name="Void MoveNext()" attrs="134">
-        <size>298</size>
+        <size>297</size>
       </method>
       <method name="Int32 &lt;&gt;m__75()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;PropertyTest_3&gt;c__async38">
       <method name="Void MoveNext()" attrs="134">
-        <size>714</size>
+        <size>713</size>
       </method>
       <method name="Int32 &lt;&gt;m__76()" attrs="145">
         <size>10</size>
     </type>
     <type name="Tester+&lt;StringConcatTest_1&gt;c__async39">
       <method name="Void MoveNext()" attrs="134">
-        <size>524</size>
+        <size>523</size>
       </method>
       <method name="System.String &lt;&gt;m__79()" attrs="145">
         <size>13</size>
     </type>
     <type name="Tester+&lt;UnaryTest_1&gt;c__async3A">
       <method name="Void MoveNext()" attrs="134">
-        <size>243</size>
+        <size>242</size>
       </method>
       <method name="Int32 &lt;&gt;m__7C()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;UnaryTest_2&gt;c__async3B">
       <method name="Void MoveNext()" attrs="134">
-        <size>343</size>
+        <size>342</size>
       </method>
       <method name="Nullable`1 &lt;&gt;m__7D()" attrs="131">
         <size>14</size>
     </type>
     <type name="Tester+&lt;UnaryTest_3&gt;c__async3C">
       <method name="Void MoveNext()" attrs="134">
-        <size>383</size>
+        <size>382</size>
       </method>
       <method name="Int32 &lt;&gt;m__7E()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;VariableInitializer_1&gt;c__async3D">
       <method name="Void MoveNext()" attrs="134">
-        <size>399</size>
+        <size>398</size>
       </method>
       <method name="Int32 &lt;&gt;m__7F()" attrs="145">
         <size>9</size>
   <test name="test-async-14.cs">
     <type name="C">
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestResult()" attrs="134">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>214</size>
     </type>
     <type name="C+&lt;TestResult&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>221</size>
+        <size>220</size>
       </method>
       <method name="Int32 &lt;&gt;m__1()" attrs="145">
         <size>9</size>
     </type>
     <type name="C+&lt;Main&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>231</size>
+        <size>230</size>
       </method>
       <method name="Int32 &lt;&gt;m__2()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester">
       <method name="System.Threading.Tasks.Task`1[T] NewInitTestGen[T]()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>82</size>
     </type>
     <type name="Tester+&lt;NewInitTestGen&gt;c__async0`1[T]">
       <method name="Void MoveNext()" attrs="134">
-        <size>305</size>
+        <size>304</size>
       </method>
       <method name="Int32 &lt;&gt;m__0()" attrs="145">
         <size>10</size>
     </type>
     <type name="Tester">
       <method name="System.Threading.Tasks.Task`1[System.Int32] SwitchTest_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] Using_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] Foreach_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
         <size>247</size>
     </type>
     <type name="Tester+&lt;SwitchTest_1&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>373</size>
+        <size>372</size>
       </method>
       <method name="System.String &lt;&gt;m__4()" attrs="145">
         <size>13</size>
     </type>
     <type name="Tester+&lt;Using_1&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>867</size>
+        <size>866</size>
       </method>
       <method name="Base &lt;&gt;m__5()" attrs="145">
         <size>13</size>
     </type>
     <type name="Tester+&lt;Foreach_1&gt;c__async2">
       <method name="Void MoveNext()" attrs="134">
-        <size>321</size>
+        <size>320</size>
       </method>
       <method name="System.Collections.Generic.List`1[System.Int32] &lt;&gt;m__9()" attrs="145">
         <size>36</size>
   <test name="test-async-17.cs">
     <type name="Tester">
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task TestException_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task TestException_3()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_4()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_5()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_6()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
         <size>223</size>
     </type>
     <type name="Tester+&lt;TestException_1&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>206</size>
+        <size>205</size>
       </method>
       <method name="Void &lt;&gt;m__4()" attrs="145">
         <size>7</size>
     </type>
     <type name="Tester+&lt;TestException_2&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>199</size>
+        <size>197</size>
       </method>
       <method name="Void &lt;&gt;m__5()" attrs="145">
         <size>7</size>
     </type>
     <type name="Tester+&lt;TestException_3&gt;c__async2">
       <method name="Void MoveNext()" attrs="134">
-        <size>206</size>
+        <size>204</size>
       </method>
       <method name="System.Threading.Tasks.Task &lt;&gt;m__6()" attrs="145">
         <size>24</size>
     </type>
     <type name="Tester+&lt;TestException_4&gt;c__async3">
       <method name="Void MoveNext()" attrs="134">
-        <size>239</size>
+        <size>238</size>
       </method>
       <method name="Int32 &lt;&gt;m__8()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;TestException_5&gt;c__async4">
       <method name="Void MoveNext()" attrs="134">
-        <size>288</size>
+        <size>287</size>
       </method>
       <method name="Void &lt;&gt;m__9()" attrs="145">
         <size>7</size>
     </type>
     <type name="Tester+&lt;TestException_6&gt;c__async5">
       <method name="Void MoveNext()" attrs="134">
-        <size>242</size>
+        <size>241</size>
       </method>
       <method name="Void &lt;&gt;m__A()" attrs="145">
         <size>7</size>
   <test name="test-async-18.cs">
     <type name="Tester">
       <method name="System.Threading.Tasks.Task`1[System.Int32] Lambda_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] Lambda_2()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] Lambda_3[T]()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>203</size>
     </type>
     <type name="Tester+&lt;Lambda_1&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>255</size>
+        <size>254</size>
       </method>
       <method name="Int32 &lt;&gt;m__0()" attrs="131">
         <size>14</size>
     </type>
     <type name="Tester+&lt;Lambda_2&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>255</size>
+        <size>254</size>
       </method>
       <method name="Int32 &lt;&gt;m__1()" attrs="131">
         <size>21</size>
     </type>
     <type name="Tester+&lt;Lambda_3&gt;c__async2`1[T]">
       <method name="Void MoveNext()" attrs="134">
-        <size>255</size>
+        <size>254</size>
       </method>
       <method name="Int32 &lt;&gt;m__2()" attrs="131">
         <size>14</size>
   <test name="test-async-19.cs">
     <type name="C">
       <method name="Void Test(System.Threading.ManualResetEvent)" attrs="145">
-        <size>21</size>
+        <size>20</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>96</size>
     </type>
     <type name="C+&lt;Test&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>194</size>
+        <size>192</size>
       </method>
       <method name="Void &lt;&gt;m__0()" attrs="131">
         <size>29</size>
     </type>
     <type name="Tester">
       <method name="System.Threading.Tasks.Task`1[System.Boolean] Add_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] AssignCompound_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] Convert_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Boolean] Invocation_1()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
         <size>183</size>
     </type>
     <type name="Tester+&lt;Add_1&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>467</size>
+        <size>466</size>
       </method>
       <method name="Int32 &lt;&gt;m__4()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;AssignCompound_1&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>1199</size>
+        <size>1198</size>
       </method>
       <method name="Int32 &lt;&gt;m__5()" attrs="145">
         <size>9</size>
     </type>
     <type name="Tester+&lt;Convert_1&gt;c__async2">
       <method name="Void MoveNext()" attrs="134">
-        <size>333</size>
+        <size>332</size>
       </method>
       <method name="System.Object &lt;&gt;m__6()" attrs="145">
         <size>13</size>
     </type>
     <type name="Tester+&lt;Invocation_1&gt;c__async3">
       <method name="Void MoveNext()" attrs="134">
-        <size>585</size>
+        <size>584</size>
       </method>
       <method name="System.Object &lt;&gt;m__7()" attrs="145">
         <size>13</size>
         <size>10</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[System.Int32] Test1()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>58</size>
     </type>
     <type name="A+&lt;Test1&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>578</size>
+        <size>577</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
   <test name="test-async-22.cs">
     <type name="A">
       <method name="System.Threading.Tasks.Task`1[System.Int32] async()" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="System.Threading.Tasks.Task async(Int32)" attrs="129">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>10</size>
     </type>
     <type name="A+&lt;async&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>39</size>
+        <size>38</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
     </type>
     <type name="A+&lt;async&gt;c__async1">
       <method name="Void MoveNext()" attrs="134">
-        <size>38</size>
+        <size>37</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
     </type>
     <type name="TestPostContext">
       <method name="System.Threading.Tasks.Task`1[System.Int32] Test()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Int32 Main()" attrs="150">
         <size>136</size>
     </type>
     <type name="TestPostContext+&lt;Test&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>205</size>
+        <size>204</size>
       </method>
       <method name="Int32 &lt;&gt;m__0()" attrs="145">
         <size>9</size>
   <test name="test-async-24.cs">
     <type name="Struct">
       <method name="System.Threading.Tasks.Task`1[System.Boolean] AsyncMethod()" attrs="134">
-        <size>37</size>
+        <size>36</size>
       </method>
       <method name="Void .ctor(Object)" attrs="6278">
         <size>9</size>
     </type>
     <type name="Struct+&lt;AsyncMethod&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>283</size>
+        <size>282</size>
       </method>
       <method name="Int32 &lt;&gt;m__0()" attrs="145">
         <size>10</size>
         <size>27</size>
       </method>
       <method name="System.Threading.Tasks.Task`1[TResult] GetTaskResult[TResult](System.Threading.Tasks.Task`1[System.Threading.Tasks.Task`1[TResult]])" attrs="145">
-        <size>32</size>
+        <size>31</size>
       </method>
       <method name="Int32 Main()" attrs="145">
         <size>95</size>
     </type>
     <type name="ConsoleApplication1.Program+&lt;GetTaskResult&gt;c__async0`1[TResult]">
       <method name="Void MoveNext()" attrs="134">
-        <size>177</size>
+        <size>176</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>18</size>
   <test name="test-async-27.cs">
     <type name="MainClass">
       <method name="System.Threading.Tasks.Task AsyncTest()" attrs="145">
-        <size>25</size>
+        <size>24</size>
       </method>
       <method name="Void Main(System.String[])" attrs="150">
         <size>31</size>
     </type>
     <type name="MainClass+&lt;AsyncTest&gt;c__async0">
       <method name="Void MoveNext()" attrs="134">
-        <size>205</size>
+        <size>203</size>
       </method>
       <method name="Int32 &lt;&gt;m__0()" attrs="145">
         <size>10</size>
       </method>
     </type>
   </test>
+  <test name="test-debug-17.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test_1()" attrs="129">
+        <size>76</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-18.cs">
+    <type name="C">
+      <method name="Void add_OutEvent(System.Func`1[System.Int32])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_OutEvent(System.Func`1[System.Int32])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void M[U,V](U ByRef, V ByRef)" attrs="134">
+        <size>17</size>
+      </method>
+      <method name="Void Test_1()" attrs="129">
+        <size>169</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>91</size>
+      </method>
+      <method name="Void Test_3()" attrs="129">
+        <size>130</size>
+      </method>
+      <method name="Void Test_4()" attrs="129">
+        <size>485</size>
+      </method>
+      <method name="Int32 &lt;Test_4&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_3&gt;c__DynamicSite2+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, System.Object ByRef, System.Object ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-19.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test_1()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="System.Threading.Tasks.Task RunAsync()" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Test_2()" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] RunAsync_2()" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] Test_3()" attrs="129">
+        <size>24</size>
+      </method>
+      <method name="Void &lt;RunAsync&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;RunAsync_2&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="134">
+        <size>163</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="134">
+        <size>170</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_3&gt;c__async2">
+      <method name="Void MoveNext()" attrs="134">
+        <size>1198</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
   <test name="test-externalias-01.cs">
     <type name="Test">
       <method name="Int32 Main()" attrs="145">