提交 2c770dfa 编写于 作者: T Tomas Matousek

Remove duplicate sequence point and unnecessary nops emitted to VB iterators

上级 829bc6b2
...@@ -134,8 +134,54 @@ System.Collections.Generic.IEnumerable<int> Foo() ...@@ -134,8 +134,54 @@ System.Collections.Generic.IEnumerable<int> Foo()
} }
"; ";
var c = CreateCompilationWithMscorlibAndSystemCore(text, options: TestOptions.DebugDll); var v = CompileAndVerify(text, options: TestOptions.DebugDll);
c.VerifyPdb(@"
v.VerifyIL("Program.<Foo>d__0.System.Collections.IEnumerator.MoveNext", @"
{
// Code size 63 (0x3f)
.maxstack 2
.locals init (int V_0,
bool V_1)
~IL_0000: ldarg.0
IL_0001: ldfld ""int Program.<Foo>d__0.<>1__state""
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse.s IL_0012
IL_000a: br.s IL_000c
IL_000c: ldloc.0
IL_000d: ldc.i4.1
IL_000e: beq.s IL_0014
IL_0010: br.s IL_0016
IL_0012: br.s IL_001a
IL_0014: br.s IL_0034
IL_0016: ldc.i4.0
IL_0017: stloc.1
IL_0018: ldloc.1
IL_0019: ret
IL_001a: ldarg.0
IL_001b: ldc.i4.m1
IL_001c: stfld ""int Program.<Foo>d__0.<>1__state""
-IL_0021: nop
-IL_0022: ldarg.0
IL_0023: ldc.i4.1
IL_0024: stfld ""int Program.<Foo>d__0.<>2__current""
IL_0029: ldarg.0
IL_002a: ldc.i4.1
IL_002b: stfld ""int Program.<Foo>d__0.<>1__state""
IL_0030: ldc.i4.1
IL_0031: stloc.1
IL_0032: br.s IL_0018
~IL_0034: ldarg.0
IL_0035: ldc.i4.m1
IL_0036: stfld ""int Program.<Foo>d__0.<>1__state""
-IL_003b: ldc.i4.0
IL_003c: stloc.1
IL_003d: br.s IL_0018
}
",
sequencePoints: "Program+<Foo>d__0.MoveNext");
v.VerifyPdb(@"
<symbols> <symbols>
<methods> <methods>
<method containingType=""Program"" name=""Foo""> <method containingType=""Program"" name=""Foo"">
......
...@@ -1162,13 +1162,14 @@ OtherExpressions: ...@@ -1162,13 +1162,14 @@ OtherExpressions:
cur = cur + 1 cur = cur + 1
' Emit case statement sequence point ' Emit case statement sequence point
If _emitPdbSequencePoints Then
Dim caseStatement = caseBlock.CaseStatement Dim caseStatement = caseBlock.CaseStatement
If Not caseStatement.WasCompilerGenerated Then If Not caseStatement.WasCompilerGenerated Then
Debug.Assert(caseStatement.Syntax IsNot Nothing) Debug.Assert(caseStatement.Syntax IsNot Nothing)
If _emitPdbSequencePoints Then
EmitSequencePoint(caseStatement.Syntax) EmitSequencePoint(caseStatement.Syntax)
End If End If
End If
If _optimizations = OptimizationLevel.Debug Then If _optimizations = OptimizationLevel.Debug Then
' Emit nop for the case statement otherwise the above sequence point ' Emit nop for the case statement otherwise the above sequence point
...@@ -1176,6 +1177,7 @@ OtherExpressions: ...@@ -1176,6 +1177,7 @@ OtherExpressions:
' This matches the native compiler codegen. ' This matches the native compiler codegen.
_builder.EmitOpCode(ILOpCode.Nop) _builder.EmitOpCode(ILOpCode.Nop)
End If End If
End If
' Emit case block body ' Emit case block body
EmitBlock(caseBlock.Body) EmitBlock(caseBlock.Body)
......
...@@ -75,7 +75,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ...@@ -75,7 +75,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
GenerateReturn(finished:=True), GenerateReturn(finished:=True),
F.Label(initialLabel), F.Label(initialLabel),
F.Assignment(F.Field(F.Me, Me.StateField, True), Me.F.AssignmentExpression(Me.F.Local(Me.CachedState, True), Me.F.Literal(StateMachineStates.NotStartedStateMachine))), F.Assignment(F.Field(F.Me, Me.StateField, True), Me.F.AssignmentExpression(Me.F.Local(Me.CachedState, True), Me.F.Literal(StateMachineStates.NotStartedStateMachine))),
F.SequencePoint(_originalMethodDeclaration),
newBody, newBody,
HandleReturn() HandleReturn()
)) ))
......
...@@ -1499,7 +1499,7 @@ End Module ...@@ -1499,7 +1499,7 @@ End Module
c.VerifyIL("Program.VB$StateMachine_0_Test2.MoveNext", c.VerifyIL("Program.VB$StateMachine_0_Test2.MoveNext",
<![CDATA[ <![CDATA[
{ {
// Code size 493 (0x1ed) // Code size 491 (0x1eb)
.maxstack 8 .maxstack 8
.locals init (Integer V_0, .locals init (Integer V_0,
Object V_1, Object V_1,
...@@ -1521,211 +1521,209 @@ End Module ...@@ -1521,211 +1521,209 @@ End Module
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.0 IL_000c: ldloc.0
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0018 IL_000e: beq.s IL_0017
IL_0010: br.s IL_001e IL_0010: br.s IL_001c
IL_0012: nop IL_0012: br IL_00b0
IL_0013: br IL_00b2 IL_0017: br IL_017a
IL_0018: nop -IL_001c: nop
IL_0019: br IL_017c -IL_001d: ldarg.0
-IL_001e: nop IL_001e: newobj "Sub MyTask(Of Integer)..ctor()"
-IL_001f: ldarg.0 IL_0023: stfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As Object"
IL_0020: newobj "Sub MyTask(Of Integer)..ctor()" -IL_0028: nop
IL_0025: stfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As Object" IL_0029: ldarg.0
-IL_002a: nop IL_002a: ldfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As Object"
IL_002b: ldarg.0 IL_002f: ldnull
IL_002c: ldfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As Object" IL_0030: ldstr "GetAwaiter"
IL_0031: ldnull IL_0035: ldc.i4.0
IL_0032: ldstr "GetAwaiter" IL_0036: newarr "Object"
IL_0037: ldc.i4.0 IL_003b: ldnull
IL_0038: newarr "Object" IL_003c: ldnull
IL_003d: ldnull IL_003d: ldnull
IL_003e: ldnull IL_003e: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object"
IL_003f: ldnull IL_0043: stloc.1
IL_0040: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object" ~IL_0044: ldloc.1
IL_0045: stloc.1 IL_0045: ldnull
~IL_0046: ldloc.1 IL_0046: ldstr "IsCompleted"
IL_0047: ldnull IL_004b: ldc.i4.0
IL_0048: ldstr "IsCompleted" IL_004c: newarr "Object"
IL_004d: ldc.i4.0 IL_0051: ldnull
IL_004e: newarr "Object" IL_0052: ldnull
IL_0053: ldnull IL_0053: ldnull
IL_0054: ldnull IL_0054: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object"
IL_0055: ldnull IL_0059: call "Function Microsoft.VisualBasic.CompilerServices.Conversions.ToBoolean(Object) As Boolean"
IL_0056: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object" IL_005e: brfalse.s IL_0062
IL_005b: call "Function Microsoft.VisualBasic.CompilerServices.Conversions.ToBoolean(Object) As Boolean" IL_0060: br.s IL_00c7
IL_0060: brfalse.s IL_0064 IL_0062: ldarg.0
IL_0062: br.s IL_00c9 IL_0063: ldc.i4.0
IL_0064: ldarg.0 IL_0064: dup
IL_0065: ldc.i4.0 IL_0065: stloc.0
IL_0066: dup IL_0066: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
IL_0067: stloc.0 <IL_006b: ldarg.0
IL_0068: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_006c: ldloc.1
<IL_006d: ldarg.0 IL_006d: stfld "Program.VB$StateMachine_0_Test2.$A0 As Object"
IL_006e: ldloc.1 IL_0072: ldloc.1
IL_006f: stfld "Program.VB$StateMachine_0_Test2.$A0 As Object" IL_0073: isinst "System.Runtime.CompilerServices.ICriticalNotifyCompletion"
IL_0074: ldloc.1 IL_0078: stloc.2
IL_0075: isinst "System.Runtime.CompilerServices.ICriticalNotifyCompletion" IL_0079: ldloc.2
IL_007a: stloc.2 IL_007a: brfalse.s IL_0091
IL_007b: ldloc.2 IL_007c: ldarg.0
IL_007c: brfalse.s IL_0093 IL_007d: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder"
IL_007e: ldarg.0 IL_0082: ldloca.s V_2
IL_007f: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder" IL_0084: ldarg.0
IL_0084: ldloca.s V_2 IL_0085: stloc.s V_4
IL_0086: ldarg.0 IL_0087: ldloca.s V_4
IL_0087: stloc.s V_4 IL_0089: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.ICriticalNotifyCompletion, Program.VB$StateMachine_0_Test2)(ByRef System.Runtime.CompilerServices.ICriticalNotifyCompletion, ByRef Program.VB$StateMachine_0_Test2)"
IL_0089: ldloca.s V_4 IL_008e: nop
IL_008b: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.ICriticalNotifyCompletion, Program.VB$StateMachine_0_Test2)(ByRef System.Runtime.CompilerServices.ICriticalNotifyCompletion, ByRef Program.VB$StateMachine_0_Test2)" IL_008f: br.s IL_00ab
IL_0090: nop IL_0091: ldloc.1
IL_0091: br.s IL_00ad IL_0092: castclass "System.Runtime.CompilerServices.INotifyCompletion"
IL_0093: ldloc.1 IL_0097: stloc.3
IL_0094: castclass "System.Runtime.CompilerServices.INotifyCompletion" IL_0098: ldarg.0
IL_0099: stloc.3 IL_0099: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder"
IL_009a: ldarg.0 IL_009e: ldloca.s V_3
IL_009b: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder" IL_00a0: ldarg.0
IL_00a0: ldloca.s V_3 IL_00a1: stloc.s V_4
IL_00a2: ldarg.0 IL_00a3: ldloca.s V_4
IL_00a3: stloc.s V_4 IL_00a5: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted(Of System.Runtime.CompilerServices.INotifyCompletion, Program.VB$StateMachine_0_Test2)(ByRef System.Runtime.CompilerServices.INotifyCompletion, ByRef Program.VB$StateMachine_0_Test2)"
IL_00a5: ldloca.s V_4 IL_00aa: nop
IL_00a7: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted(Of System.Runtime.CompilerServices.INotifyCompletion, Program.VB$StateMachine_0_Test2)(ByRef System.Runtime.CompilerServices.INotifyCompletion, ByRef Program.VB$StateMachine_0_Test2)" IL_00ab: leave IL_01ea
IL_00ac: nop >IL_00b0: ldarg.0
IL_00ad: leave IL_01ec IL_00b1: ldc.i4.m1
>IL_00b2: ldarg.0 IL_00b2: dup
IL_00b3: ldc.i4.m1 IL_00b3: stloc.0
IL_00b4: dup IL_00b4: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
IL_00b5: stloc.0 IL_00b9: ldarg.0
IL_00b6: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_00ba: ldfld "Program.VB$StateMachine_0_Test2.$A0 As Object"
IL_00bb: ldarg.0 IL_00bf: stloc.1
IL_00bc: ldfld "Program.VB$StateMachine_0_Test2.$A0 As Object" IL_00c0: ldarg.0
IL_00c1: stloc.1 IL_00c1: ldnull
IL_00c2: ldarg.0 IL_00c2: stfld "Program.VB$StateMachine_0_Test2.$A0 As Object"
IL_00c3: ldnull IL_00c7: ldarg.0
IL_00c4: stfld "Program.VB$StateMachine_0_Test2.$A0 As Object" IL_00c8: ldloc.1
IL_00c9: ldarg.0 IL_00c9: ldnull
IL_00ca: ldloc.1 IL_00ca: ldstr "GetResult"
IL_00cb: ldnull IL_00cf: ldc.i4.0
IL_00cc: ldstr "GetResult" IL_00d0: newarr "Object"
IL_00d1: ldc.i4.0 IL_00d5: ldnull
IL_00d2: newarr "Object" IL_00d6: ldnull
IL_00d7: ldnull IL_00d7: ldnull
IL_00d8: ldnull IL_00d8: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object"
IL_00d9: ldnull IL_00dd: stloc.s V_5
IL_00da: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object" IL_00df: ldnull
IL_00df: stloc.s V_5 IL_00e0: stloc.1
IL_00e1: ldnull IL_00e1: ldloc.s V_5
IL_00e2: stloc.1 IL_00e3: call "Function System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(Object) As Object"
IL_00e3: ldloc.s V_5 IL_00e8: stfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_x$1 As Object"
IL_00e5: call "Function System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(Object) As Object" -IL_00ed: nop
IL_00ea: stfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_x$1 As Object" IL_00ee: ldarg.0
-IL_00ef: nop IL_00ef: ldfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As Object"
IL_00f0: ldarg.0 IL_00f4: ldnull
IL_00f1: ldfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As Object" IL_00f5: ldstr "GetAwaiter"
IL_00f6: ldnull IL_00fa: ldc.i4.0
IL_00f7: ldstr "GetAwaiter" IL_00fb: newarr "Object"
IL_00fc: ldc.i4.0 IL_0100: ldnull
IL_00fd: newarr "Object" IL_0101: ldnull
IL_0102: ldnull IL_0102: ldnull
IL_0103: ldnull IL_0103: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object"
IL_0104: ldnull IL_0108: stloc.s V_6
IL_0105: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object" ~IL_010a: ldloc.s V_6
IL_010a: stloc.s V_6 IL_010c: ldnull
~IL_010c: ldloc.s V_6 IL_010d: ldstr "IsCompleted"
IL_010e: ldnull IL_0112: ldc.i4.0
IL_010f: ldstr "IsCompleted" IL_0113: newarr "Object"
IL_0114: ldc.i4.0 IL_0118: ldnull
IL_0115: newarr "Object" IL_0119: ldnull
IL_011a: ldnull IL_011a: ldnull
IL_011b: ldnull IL_011b: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object"
IL_011c: ldnull IL_0120: call "Function Microsoft.VisualBasic.CompilerServices.Conversions.ToBoolean(Object) As Boolean"
IL_011d: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object, System.Type, String, Object(), String(), System.Type(), Boolean()) As Object" IL_0125: brfalse.s IL_0129
IL_0122: call "Function Microsoft.VisualBasic.CompilerServices.Conversions.ToBoolean(Object) As Boolean" IL_0127: br.s IL_0192
IL_0127: brfalse.s IL_012b IL_0129: ldarg.0
IL_0129: br.s IL_0194 IL_012a: ldc.i4.1
IL_012b: ldarg.0 IL_012b: dup
IL_012c: ldc.i4.1 IL_012c: stloc.0
IL_012d: dup IL_012d: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
IL_012e: stloc.0 <IL_0132: ldarg.0
IL_012f: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_0133: ldloc.s V_6
<IL_0134: ldarg.0 IL_0135: stfld "Program.VB$StateMachine_0_Test2.$A0 As Object"
IL_0135: ldloc.s V_6 IL_013a: ldloc.s V_6
IL_0137: stfld "Program.VB$StateMachine_0_Test2.$A0 As Object" IL_013c: isinst "System.Runtime.CompilerServices.ICriticalNotifyCompletion"
IL_013c: ldloc.s V_6 IL_0141: stloc.s V_7
IL_013e: isinst "System.Runtime.CompilerServices.ICriticalNotifyCompletion" IL_0143: ldloc.s V_7
IL_0143: stloc.s V_7 IL_0145: brfalse.s IL_015c
IL_0145: ldloc.s V_7 IL_0147: ldarg.0
IL_0147: brfalse.s IL_015e IL_0148: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder"
IL_0149: ldarg.0 IL_014d: ldloca.s V_7
IL_014a: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder" IL_014f: ldarg.0
IL_014f: ldloca.s V_7 IL_0150: stloc.s V_4
IL_0151: ldarg.0 IL_0152: ldloca.s V_4
IL_0152: stloc.s V_4 IL_0154: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.ICriticalNotifyCompletion, Program.VB$StateMachine_0_Test2)(ByRef System.Runtime.CompilerServices.ICriticalNotifyCompletion, ByRef Program.VB$StateMachine_0_Test2)"
IL_0154: ldloca.s V_4 IL_0159: nop
IL_0156: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.ICriticalNotifyCompletion, Program.VB$StateMachine_0_Test2)(ByRef System.Runtime.CompilerServices.ICriticalNotifyCompletion, ByRef Program.VB$StateMachine_0_Test2)" IL_015a: br.s IL_0178
IL_015b: nop IL_015c: ldloc.s V_6
IL_015c: br.s IL_017a IL_015e: castclass "System.Runtime.CompilerServices.INotifyCompletion"
IL_015e: ldloc.s V_6 IL_0163: stloc.s V_8
IL_0160: castclass "System.Runtime.CompilerServices.INotifyCompletion" IL_0165: ldarg.0
IL_0165: stloc.s V_8 IL_0166: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder"
IL_0167: ldarg.0 IL_016b: ldloca.s V_8
IL_0168: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder" IL_016d: ldarg.0
IL_016d: ldloca.s V_8 IL_016e: stloc.s V_4
IL_016f: ldarg.0 IL_0170: ldloca.s V_4
IL_0170: stloc.s V_4 IL_0172: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted(Of System.Runtime.CompilerServices.INotifyCompletion, Program.VB$StateMachine_0_Test2)(ByRef System.Runtime.CompilerServices.INotifyCompletion, ByRef Program.VB$StateMachine_0_Test2)"
IL_0172: ldloca.s V_4 IL_0177: nop
IL_0174: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted(Of System.Runtime.CompilerServices.INotifyCompletion, Program.VB$StateMachine_0_Test2)(ByRef System.Runtime.CompilerServices.INotifyCompletion, ByRef Program.VB$StateMachine_0_Test2)" IL_0178: leave.s IL_01ea
IL_0179: nop >IL_017a: ldarg.0
IL_017a: leave.s IL_01ec IL_017b: ldc.i4.m1
>IL_017c: ldarg.0 IL_017c: dup
IL_017d: ldc.i4.m1 IL_017d: stloc.0
IL_017e: dup IL_017e: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
IL_017f: stloc.0 IL_0183: ldarg.0
IL_0180: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_0184: ldfld "Program.VB$StateMachine_0_Test2.$A0 As Object"
IL_0185: ldarg.0 IL_0189: stloc.s V_6
IL_0186: ldfld "Program.VB$StateMachine_0_Test2.$A0 As Object" IL_018b: ldarg.0
IL_018b: stloc.s V_6 IL_018c: ldnull
IL_018d: ldarg.0 IL_018d: stfld "Program.VB$StateMachine_0_Test2.$A0 As Object"
IL_018e: ldnull IL_0192: ldloc.s V_6
IL_018f: stfld "Program.VB$StateMachine_0_Test2.$A0 As Object" IL_0194: ldnull
IL_0194: ldloc.s V_6 IL_0195: ldstr "GetResult"
IL_0196: ldnull IL_019a: ldc.i4.0
IL_0197: ldstr "GetResult" IL_019b: newarr "Object"
IL_019c: ldc.i4.0 IL_01a0: ldnull
IL_019d: newarr "Object" IL_01a1: ldnull
IL_01a2: ldnull IL_01a2: ldnull
IL_01a3: ldnull IL_01a3: ldc.i4.1
IL_01a4: ldnull IL_01a4: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object, System.Type, String, Object(), String(), System.Type(), Boolean(), Boolean) As Object"
IL_01a5: ldc.i4.1 IL_01a9: pop
IL_01a6: call "Function Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object, System.Type, String, Object(), String(), System.Type(), Boolean(), Boolean) As Object" IL_01aa: ldnull
IL_01ab: pop IL_01ab: stloc.s V_6
IL_01ac: ldnull -IL_01ad: leave.s IL_01d4
IL_01ad: stloc.s V_6
-IL_01af: leave.s IL_01d6
} }
catch System.Exception catch System.Exception
{ {
~$IL_01b1: dup ~$IL_01af: dup
IL_01b2: call "Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)" IL_01b0: call "Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"
IL_01b7: stloc.s V_9 IL_01b5: stloc.s V_9
~IL_01b9: ldarg.0 ~IL_01b7: ldarg.0
IL_01ba: ldc.i4.s -2 IL_01b8: ldc.i4.s -2
IL_01bc: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_01ba: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
IL_01c1: ldarg.0 IL_01bf: ldarg.0
IL_01c2: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder" IL_01c0: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder"
IL_01c7: ldloc.s V_9 IL_01c5: ldloc.s V_9
IL_01c9: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetException(System.Exception)" IL_01c7: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetException(System.Exception)"
IL_01ce: nop IL_01cc: nop
IL_01cf: call "Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()" IL_01cd: call "Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"
IL_01d4: leave.s IL_01ec IL_01d2: leave.s IL_01ea
} }
-IL_01d6: ldarg.0 -IL_01d4: ldarg.0
IL_01d7: ldc.i4.s -2 IL_01d5: ldc.i4.s -2
IL_01d9: dup IL_01d7: dup
IL_01da: stloc.0 IL_01d8: stloc.0
IL_01db: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_01d9: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
~IL_01e0: ldarg.0 ~IL_01de: ldarg.0
IL_01e1: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder" IL_01df: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder"
IL_01e6: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetResult()" IL_01e4: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetResult()"
IL_01eb: nop IL_01e9: nop
IL_01ec: ret IL_01ea: ret
} }
]]>, ]]>,
sequencePoints:="Program+VB$StateMachine_0_Test2.MoveNext") sequencePoints:="Program+VB$StateMachine_0_Test2.MoveNext")
...@@ -1785,7 +1783,7 @@ End Module ...@@ -1785,7 +1783,7 @@ End Module
c.VerifyIL("Program.VB$StateMachine_0_Test2.MoveNext", c.VerifyIL("Program.VB$StateMachine_0_Test2.MoveNext",
<![CDATA[ <![CDATA[
{ {
// Code size 225 (0xe1) // Code size 224 (0xe0)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
MyTaskAwaiter(Of Integer) V_1, MyTaskAwaiter(Of Integer) V_1,
...@@ -1799,92 +1797,91 @@ End Module ...@@ -1799,92 +1797,91 @@ End Module
{ {
IL_0007: ldloc.0 IL_0007: ldloc.0
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_0057
IL_000d: br.s IL_0058 IL_000e: nop
IL_000f: nop IL_000f: ldarg.0
IL_0010: ldarg.0 IL_0010: newobj "Sub MyTask(Of Integer)..ctor()"
IL_0011: newobj "Sub MyTask(Of Integer)..ctor()" IL_0015: stfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As MyTask(Of Integer)"
IL_0016: stfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As MyTask(Of Integer)" IL_001a: nop
IL_001b: nop IL_001b: ldarg.0
IL_001c: ldarg.0 IL_001c: ldfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As MyTask(Of Integer)"
IL_001d: ldfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_o$0 As MyTask(Of Integer)" IL_0021: callvirt "Function MyTask(Of Integer).GetAwaiter() As MyTaskAwaiter(Of Integer)"
IL_0022: callvirt "Function MyTask(Of Integer).GetAwaiter() As MyTaskAwaiter(Of Integer)" IL_0026: stloc.1
IL_0027: stloc.1 IL_0027: ldloca.s V_1
IL_0028: ldloca.s V_1 IL_0029: call "Function MyTaskAwaiter(Of Integer).get_IsCompleted() As Boolean"
IL_002a: call "Function MyTaskAwaiter(Of Integer).get_IsCompleted() As Boolean" IL_002e: brtrue.s IL_0075
IL_002f: brtrue.s IL_0076 IL_0030: ldarg.0
IL_0031: ldarg.0 IL_0031: ldc.i4.0
IL_0032: ldc.i4.0 IL_0032: dup
IL_0033: dup IL_0033: stloc.0
IL_0034: stloc.0 IL_0034: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
IL_0035: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_0039: ldarg.0
IL_003a: ldarg.0 IL_003a: ldloc.1
IL_003b: ldloc.1 IL_003b: stfld "Program.VB$StateMachine_0_Test2.$A0 As MyTaskAwaiter(Of Integer)"
IL_003c: stfld "Program.VB$StateMachine_0_Test2.$A0 As MyTaskAwaiter(Of Integer)" IL_0040: ldarg.0
IL_0041: ldarg.0 IL_0041: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder"
IL_0042: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder" IL_0046: ldloca.s V_1
IL_0047: ldloca.s V_1 IL_0048: ldarg.0
IL_0049: ldarg.0 IL_0049: stloc.2
IL_004a: stloc.2 IL_004a: ldloca.s V_2
IL_004b: ldloca.s V_2 IL_004c: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted(Of MyTaskAwaiter(Of Integer), Program.VB$StateMachine_0_Test2)(ByRef MyTaskAwaiter(Of Integer), ByRef Program.VB$StateMachine_0_Test2)"
IL_004d: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted(Of MyTaskAwaiter(Of Integer), Program.VB$StateMachine_0_Test2)(ByRef MyTaskAwaiter(Of Integer), ByRef Program.VB$StateMachine_0_Test2)" IL_0051: nop
IL_0052: nop IL_0052: leave IL_00df
IL_0053: leave IL_00e0 IL_0057: ldarg.0
IL_0058: ldarg.0 IL_0058: ldc.i4.m1
IL_0059: ldc.i4.m1 IL_0059: dup
IL_005a: dup IL_005a: stloc.0
IL_005b: stloc.0 IL_005b: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
IL_005c: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_0060: ldarg.0
IL_0061: ldarg.0 IL_0061: ldfld "Program.VB$StateMachine_0_Test2.$A0 As MyTaskAwaiter(Of Integer)"
IL_0062: ldfld "Program.VB$StateMachine_0_Test2.$A0 As MyTaskAwaiter(Of Integer)" IL_0066: stloc.1
IL_0067: stloc.1 IL_0067: ldarg.0
IL_0068: ldarg.0 IL_0068: ldflda "Program.VB$StateMachine_0_Test2.$A0 As MyTaskAwaiter(Of Integer)"
IL_0069: ldflda "Program.VB$StateMachine_0_Test2.$A0 As MyTaskAwaiter(Of Integer)" IL_006d: initobj "MyTaskAwaiter(Of Integer)"
IL_006e: initobj "MyTaskAwaiter(Of Integer)" IL_0073: br.s IL_0075
IL_0074: br.s IL_0076 IL_0075: ldarg.0
IL_0076: ldarg.0 IL_0076: ldloca.s V_1
IL_0077: ldloca.s V_1 IL_0078: call "Function MyTaskAwaiter(Of Integer).GetResult() As Object"
IL_0079: call "Function MyTaskAwaiter(Of Integer).GetResult() As Object" IL_007d: stloc.3
IL_007e: stloc.3 IL_007e: ldloca.s V_1
IL_007f: ldloca.s V_1 IL_0080: initobj "MyTaskAwaiter(Of Integer)"
IL_0081: initobj "MyTaskAwaiter(Of Integer)" IL_0086: ldloc.3
IL_0087: ldloc.3 IL_0087: call "Function System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(Object) As Object"
IL_0088: call "Function System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(Object) As Object" IL_008c: call "Function Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(Object) As Integer"
IL_008d: call "Function Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(Object) As Integer" IL_0091: stfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_x$1 As Integer"
IL_0092: stfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_x$1 As Integer" IL_0096: ldarg.0
IL_0097: ldarg.0 IL_0097: ldfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_x$1 As Integer"
IL_0098: ldfld "Program.VB$StateMachine_0_Test2.$VB$ResumableLocal_x$1 As Integer" IL_009c: call "Sub System.Console.WriteLine(Integer)"
IL_009d: call "Sub System.Console.WriteLine(Integer)" IL_00a1: nop
IL_00a2: nop IL_00a2: leave.s IL_00c9
IL_00a3: leave.s IL_00ca
} }
catch System.Exception catch System.Exception
{ {
IL_00a5: dup IL_00a4: dup
IL_00a6: call "Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)" IL_00a5: call "Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"
IL_00ab: stloc.s V_4 IL_00aa: stloc.s V_4
IL_00ad: ldarg.0 IL_00ac: ldarg.0
IL_00ae: ldc.i4.s -2 IL_00ad: ldc.i4.s -2
IL_00b0: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_00af: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
IL_00b5: ldarg.0 IL_00b4: ldarg.0
IL_00b6: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder" IL_00b5: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder"
IL_00bb: ldloc.s V_4 IL_00ba: ldloc.s V_4
IL_00bd: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetException(System.Exception)" IL_00bc: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetException(System.Exception)"
IL_00c2: nop IL_00c1: nop
IL_00c3: call "Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()" IL_00c2: call "Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"
IL_00c8: leave.s IL_00e0 IL_00c7: leave.s IL_00df
} }
IL_00ca: ldarg.0 IL_00c9: ldarg.0
IL_00cb: ldc.i4.s -2 IL_00ca: ldc.i4.s -2
IL_00cd: dup IL_00cc: dup
IL_00ce: stloc.0 IL_00cd: stloc.0
IL_00cf: stfld "Program.VB$StateMachine_0_Test2.$State As Integer" IL_00ce: stfld "Program.VB$StateMachine_0_Test2.$State As Integer"
IL_00d4: ldarg.0 IL_00d3: ldarg.0
IL_00d5: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder" IL_00d4: ldflda "Program.VB$StateMachine_0_Test2.$Builder As System.Runtime.CompilerServices.AsyncVoidMethodBuilder"
IL_00da: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetResult()" IL_00d9: call "Sub System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetResult()"
IL_00df: nop IL_00de: nop
IL_00e0: ret IL_00df: ret
} }
]]>) ]]>)
End Sub End Sub
......
...@@ -248,7 +248,7 @@ End Class ...@@ -248,7 +248,7 @@ End Class
IL_0000: ret IL_0000: ret
} }
{ {
// Code size 66 (0x42) // Code size 63 (0x3f)
.maxstack 3 .maxstack 3
IL_0000: ldarg.0 IL_0000: ldarg.0
IL_0001: ldfld 0x04000005 IL_0001: ldfld 0x04000005
...@@ -258,38 +258,35 @@ End Class ...@@ -258,38 +258,35 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_0018 IL_0010: br.s IL_0016
IL_0012: nop IL_0012: br.s IL_0018
IL_0013: br.s IL_001a IL_0014: br.s IL_0034
IL_0015: nop IL_0016: ldc.i4.0
IL_0016: br.s IL_0037 IL_0017: ret
IL_0018: ldc.i4.0 IL_0018: ldarg.0
IL_0019: ret IL_0019: ldc.i4.m1
IL_001a: ldarg.0 IL_001a: dup
IL_001b: ldc.i4.m1 IL_001b: stloc.1
IL_001c: dup IL_001c: stfld 0x04000005
IL_001d: stloc.1 IL_0021: nop
IL_001e: stfld 0x04000005 IL_0022: ldarg.0
IL_0023: nop IL_0023: ldc.i4.2
IL_0024: nop IL_0024: stfld 0x04000006
IL_0025: ldarg.0 IL_0029: ldarg.0
IL_0026: ldc.i4.2 IL_002a: ldc.i4.1
IL_0027: stfld 0x04000006 IL_002b: dup
IL_002c: ldarg.0 IL_002c: stloc.1
IL_002d: ldc.i4.1 IL_002d: stfld 0x04000005
IL_002e: dup IL_0032: ldc.i4.1
IL_002f: stloc.1 IL_0033: ret
IL_0030: stfld 0x04000005 IL_0034: ldarg.0
IL_0035: ldc.i4.1 IL_0035: ldc.i4.m1
IL_0036: ret IL_0036: dup
IL_0037: ldarg.0 IL_0037: stloc.1
IL_0038: ldc.i4.m1 IL_0038: stfld 0x04000005
IL_0039: dup IL_003d: ldc.i4.0
IL_003a: stloc.1 IL_003e: ret
IL_003b: stfld 0x04000005
IL_0040: ldc.i4.0
IL_0041: ret
} }
{ {
// Code size 55 (0x37) // Code size 55 (0x37)
...@@ -357,12 +354,11 @@ End Class ...@@ -357,12 +354,11 @@ End Class
<method token="0x600000e"> <method token="0x600000e">
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="1"/> <entry offset="0x0" hidden="true" document="1"/>
<entry offset="0x23" startLine="6" startColumn="5" endLine="6" endColumn="53" document="1"/> <entry offset="0x21" startLine="6" startColumn="5" endLine="6" endColumn="53" document="1"/>
<entry offset="0x24" startLine="6" startColumn="5" endLine="6" endColumn="53" document="1"/> <entry offset="0x22" startLine="7" startColumn="9" endLine="7" endColumn="16" document="1"/>
<entry offset="0x25" startLine="7" startColumn="9" endLine="7" endColumn="16" document="1"/> <entry offset="0x3d" startLine="8" startColumn="5" endLine="8" endColumn="17" document="1"/>
<entry offset="0x40" startLine="8" startColumn="5" endLine="8" endColumn="17" document="1"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0x42"> <scope startOffset="0x0" endOffset="0x3f">
<namespace name="System.Collections.Generic" importlevel="file"/> <namespace name="System.Collections.Generic" importlevel="file"/>
<currentnamespace name=""/> <currentnamespace name=""/>
</scope> </scope>
...@@ -566,86 +562,85 @@ End Class ...@@ -566,86 +562,85 @@ End Class
IL_0006: ret IL_0006: ret
} }
{ {
// Code size 186 (0xba) // Code size 185 (0xb9)
.maxstack 3 .maxstack 3
IL_0000: ldarg.0 IL_0000: ldarg.0
IL_0001: ldfld 0x04000001 IL_0001: ldfld 0x04000001
IL_0006: stloc.1 IL_0006: stloc.1
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_004a
IL_000d: br.s IL_004b IL_000e: nop
IL_000f: nop IL_000f: nop
IL_0010: nop IL_0010: ldc.i4.1
IL_0011: ldc.i4.1 IL_0011: call 0x2B000002
IL_0012: call 0x2B000002 IL_0016: callvirt 0x0A00000F
IL_0017: callvirt 0x0A00000F IL_001b: stloc.3
IL_001c: stloc.3 IL_001c: ldloca.s V_3
IL_001d: ldloca.s V_3 IL_001e: call 0x0A000010
IL_001f: call 0x0A000010 IL_0023: brtrue.s IL_0068
IL_0024: brtrue.s IL_0069 IL_0025: ldarg.0
IL_0026: ldarg.0 IL_0026: ldc.i4.0
IL_0027: ldc.i4.0 IL_0027: dup
IL_0028: dup IL_0028: stloc.1
IL_0029: stloc.1 IL_0029: stfld 0x04000001
IL_002a: stfld 0x04000001 IL_002e: ldarg.0
IL_002f: ldarg.0 IL_002f: ldloc.3
IL_0030: ldloc.3 IL_0030: stfld 0x04000004
IL_0031: stfld 0x04000004 IL_0035: ldarg.0
IL_0036: ldarg.0 IL_0036: ldflda 0x04000002
IL_0037: ldflda 0x04000002 IL_003b: ldloca.s V_3
IL_003c: ldloca.s V_3 IL_003d: ldarg.0
IL_003e: ldarg.0 IL_003e: stloc.s V_4
IL_003f: stloc.s V_4 IL_0040: ldloca.s V_4
IL_0041: ldloca.s V_4 IL_0042: call 0x2B000003
IL_0043: call 0x2B000003 IL_0047: nop
IL_0048: nop IL_0048: leave.s IL_00b8
IL_0049: leave.s IL_00b9 IL_004a: ldarg.0
IL_004b: ldarg.0 IL_004b: ldc.i4.m1
IL_004c: ldc.i4.m1 IL_004c: dup
IL_004d: dup IL_004d: stloc.1
IL_004e: stloc.1 IL_004e: stfld 0x04000001
IL_004f: stfld 0x04000001 IL_0053: ldarg.0
IL_0054: ldarg.0 IL_0054: ldfld 0x04000004
IL_0055: ldfld 0x04000004 IL_0059: stloc.3
IL_005a: stloc.3 IL_005a: ldarg.0
IL_005b: ldarg.0 IL_005b: ldflda 0x04000004
IL_005c: ldflda 0x04000004 IL_0060: initobj 0x1B000003
IL_0061: initobj 0x1B000003 IL_0066: br.s IL_0068
IL_0067: br.s IL_0069 IL_0068: ldloca.s V_3
IL_0069: ldloca.s V_3 IL_006a: call 0x0A000012
IL_006b: call 0x0A000012 IL_006f: pop
IL_0070: pop IL_0070: ldloca.s V_3
IL_0071: ldloca.s V_3 IL_0072: initobj 0x1B000003
IL_0073: initobj 0x1B000003 IL_0078: ldc.i4.0
IL_0079: ldc.i4.0 IL_0079: stloc.0
IL_007a: stloc.0 IL_007a: leave.s IL_00a1
IL_007b: leave.s IL_00a2 IL_007c: dup
IL_007d: dup IL_007d: call 0x0A000013
IL_007e: call 0x0A000013 IL_0082: stloc.s V_5
IL_0083: stloc.s V_5 IL_0084: ldarg.0
IL_0085: ldarg.0 IL_0085: ldc.i4.s -2
IL_0086: ldc.i4.s -2 IL_0087: stfld 0x04000001
IL_0088: stfld 0x04000001 IL_008c: ldarg.0
IL_008d: ldarg.0 IL_008d: ldflda 0x04000002
IL_008e: ldflda 0x04000002 IL_0092: ldloc.s V_5
IL_0093: ldloc.s V_5 IL_0094: call 0x0A000014
IL_0095: call 0x0A000014 IL_0099: nop
IL_009a: nop IL_009a: call 0x0A000015
IL_009b: call 0x0A000015 IL_009f: leave.s IL_00b8
IL_00a0: leave.s IL_00b9 IL_00a1: ldarg.0
IL_00a2: ldarg.0 IL_00a2: ldc.i4.s -2
IL_00a3: ldc.i4.s -2 IL_00a4: dup
IL_00a5: dup IL_00a5: stloc.1
IL_00a6: stloc.1 IL_00a6: stfld 0x04000001
IL_00a7: stfld 0x04000001 IL_00ab: ldarg.0
IL_00ac: ldarg.0 IL_00ac: ldflda 0x04000002
IL_00ad: ldflda 0x04000002 IL_00b1: ldloc.0
IL_00b2: ldloc.0 IL_00b2: call 0x0A000016
IL_00b3: call 0x0A000016 IL_00b7: nop
IL_00b8: nop IL_00b8: ret
IL_00b9: ret
} }
{ {
// Code size 1 (0x1) // Code size 1 (0x1)
...@@ -664,22 +659,22 @@ End Class ...@@ -664,22 +659,22 @@ End Class
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="1"/> <entry offset="0x0" hidden="true" document="1"/>
<entry offset="0x7" hidden="true" document="1"/> <entry offset="0x7" hidden="true" document="1"/>
<entry offset="0xf" startLine="3" startColumn="5" endLine="3" endColumn="43" document="1"/> <entry offset="0xe" startLine="3" startColumn="5" endLine="3" endColumn="43" document="1"/>
<entry offset="0x10" startLine="4" startColumn="9" endLine="4" endColumn="33" document="1"/> <entry offset="0xf" startLine="4" startColumn="9" endLine="4" endColumn="33" document="1"/>
<entry offset="0x1d" hidden="true" document="1"/> <entry offset="0x1c" hidden="true" document="1"/>
<entry offset="0x79" startLine="5" startColumn="9" endLine="5" endColumn="17" document="1"/> <entry offset="0x78" startLine="5" startColumn="9" endLine="5" endColumn="17" document="1"/>
<entry offset="0x7d" hidden="true" document="1"/> <entry offset="0x7c" hidden="true" document="1"/>
<entry offset="0x85" hidden="true" document="1"/> <entry offset="0x84" hidden="true" document="1"/>
<entry offset="0xa2" startLine="6" startColumn="5" endLine="6" endColumn="17" document="1"/> <entry offset="0xa1" startLine="6" startColumn="5" endLine="6" endColumn="17" document="1"/>
<entry offset="0xac" hidden="true" document="1"/> <entry offset="0xab" hidden="true" document="1"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0xba"> <scope startOffset="0x0" endOffset="0xb9">
<namespace name="System.Threading.Tasks" importlevel="file"/> <namespace name="System.Threading.Tasks" importlevel="file"/>
<currentnamespace name=""/> <currentnamespace name=""/>
</scope> </scope>
<asyncInfo> <asyncInfo>
<kickoffMethod token="0x6000002"/> <kickoffMethod token="0x6000002"/>
<await yield="0x2f" resume="0x4b" token="0x6000004"/> <await yield="0x2e" resume="0x4a" token="0x6000004"/>
</asyncInfo> </asyncInfo>
</method> </method>
</methods> </methods>
...@@ -1106,7 +1101,7 @@ End Class ...@@ -1106,7 +1101,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 66 (0x42) // Code size 63 (0x3f)
.maxstack 3 .maxstack 3
.locals init (Boolean V_0, .locals init (Boolean V_0,
Integer V_1) Integer V_1)
...@@ -1118,43 +1113,40 @@ End Class ...@@ -1118,43 +1113,40 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_0018 IL_0010: br.s IL_0016
IL_0012: nop IL_0012: br.s IL_0018
IL_0013: br.s IL_001a IL_0014: br.s IL_0034
IL_0015: nop IL_0016: ldc.i4.0
IL_0016: br.s IL_0037 IL_0017: ret
IL_0018: ldc.i4.0 IL_0018: ldarg.0
IL_0019: ret IL_0019: ldc.i4.m1
IL_001a: ldarg.0 IL_001a: dup
IL_001b: ldc.i4.m1 IL_001b: stloc.1
IL_001c: dup IL_001c: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_001d: stloc.1 IL_0021: nop
IL_001e: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0022: ldarg.0
IL_0023: nop IL_0023: ldc.i4.2
IL_0024: nop IL_0024: stfld ""C.VB$StateMachine_1_F.$Current As Integer""
IL_0025: ldarg.0 IL_0029: ldarg.0
IL_0026: ldc.i4.2 IL_002a: ldc.i4.1
IL_0027: stfld ""C.VB$StateMachine_1_F.$Current As Integer"" IL_002b: dup
IL_002c: ldarg.0 IL_002c: stloc.1
IL_002d: ldc.i4.1 IL_002d: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_002e: dup IL_0032: ldc.i4.1
IL_002f: stloc.1 IL_0033: ret
IL_0030: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0034: ldarg.0
IL_0035: ldc.i4.1 IL_0035: ldc.i4.m1
IL_0036: ret IL_0036: dup
IL_0037: ldarg.0 IL_0037: stloc.1
IL_0038: ldc.i4.m1 IL_0038: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0039: dup IL_003d: ldc.i4.0
IL_003a: stloc.1 IL_003e: ret
IL_003b: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0040: ldc.i4.0
IL_0041: ret
} }
") ")
v0.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " v0.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 66 (0x42) // Code size 63 (0x3f)
.maxstack 3 .maxstack 3
.locals init (Boolean V_0, .locals init (Boolean V_0,
Integer V_1) Integer V_1)
...@@ -1166,38 +1158,35 @@ End Class ...@@ -1166,38 +1158,35 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_0018 IL_0010: br.s IL_0016
IL_0012: nop IL_0012: br.s IL_0018
IL_0013: br.s IL_001a IL_0014: br.s IL_0034
IL_0015: nop IL_0016: ldc.i4.0
IL_0016: br.s IL_0037 IL_0017: ret
IL_0018: ldc.i4.0 IL_0018: ldarg.0
IL_0019: ret IL_0019: ldc.i4.m1
IL_001a: ldarg.0 IL_001a: dup
IL_001b: ldc.i4.m1 IL_001b: stloc.1
IL_001c: dup IL_001c: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_001d: stloc.1 IL_0021: nop
IL_001e: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0022: ldarg.0
IL_0023: nop IL_0023: ldc.i4.1
IL_0024: nop IL_0024: stfld ""C.VB$StateMachine_1_F.$Current As Integer""
IL_0025: ldarg.0 IL_0029: ldarg.0
IL_0026: ldc.i4.1 IL_002a: ldc.i4.1
IL_0027: stfld ""C.VB$StateMachine_1_F.$Current As Integer"" IL_002b: dup
IL_002c: ldarg.0 IL_002c: stloc.1
IL_002d: ldc.i4.1 IL_002d: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_002e: dup IL_0032: ldc.i4.1
IL_002f: stloc.1 IL_0033: ret
IL_0030: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0034: ldarg.0
IL_0035: ldc.i4.1 IL_0035: ldc.i4.m1
IL_0036: ret IL_0036: dup
IL_0037: ldarg.0 IL_0037: stloc.1
IL_0038: ldc.i4.m1 IL_0038: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0039: dup IL_003d: ldc.i4.0
IL_003a: stloc.1 IL_003e: ret
IL_003b: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0040: ldc.i4.0
IL_0041: ret
} }
") ")
End Using End Using
...@@ -1260,7 +1249,7 @@ End Class ...@@ -1260,7 +1249,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 188 (0xbc) // Code size 187 (0xbb)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -1275,108 +1264,11 @@ End Class ...@@ -1275,108 +1264,11 @@ End Class
{ {
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_004b
IL_000d: br.s IL_004c IL_000e: nop
IL_000f: nop IL_000f: nop
IL_0010: nop IL_0010: ldc.i4.s 10
IL_0011: ldc.i4.s 10
IL_0013: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)""
IL_0018: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_001d: stloc.3
IL_001e: ldloca.s V_3
IL_0020: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean""
IL_0025: brtrue.s IL_006a
IL_0027: ldarg.0
IL_0028: ldc.i4.0
IL_0029: dup
IL_002a: stloc.1
IL_002b: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0030: ldarg.0
IL_0031: ldloc.3
IL_0032: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0037: ldarg.0
IL_0038: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_003d: ldloca.s V_3
IL_003f: ldarg.0
IL_0040: stloc.s V_4
IL_0042: ldloca.s V_4
IL_0044: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)""
IL_0049: nop
IL_004a: leave.s IL_00bb
IL_004c: ldarg.0
IL_004d: ldc.i4.m1
IL_004e: dup
IL_004f: stloc.1
IL_0050: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0055: ldarg.0
IL_0056: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_005b: stloc.3
IL_005c: ldarg.0
IL_005d: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0062: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0068: br.s IL_006a
IL_006a: ldloca.s V_3
IL_006c: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer""
IL_0071: pop
IL_0072: ldloca.s V_3
IL_0074: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_007a: ldc.i4.s 20
IL_007c: stloc.0
IL_007d: leave.s IL_00a4
}
catch System.Exception
{
IL_007f: dup
IL_0080: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0085: stloc.s V_5
IL_0087: ldarg.0
IL_0088: ldc.i4.s -2
IL_008a: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_008f: ldarg.0
IL_0090: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0095: ldloc.s V_5
IL_0097: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_009c: nop
IL_009d: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00a2: leave.s IL_00bb
}
IL_00a4: ldarg.0
IL_00a5: ldc.i4.s -2
IL_00a7: dup
IL_00a8: stloc.1
IL_00a9: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00ae: ldarg.0
IL_00af: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00b4: ldloc.0
IL_00b5: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00ba: nop
IL_00bb: ret
}
")
v0.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{
// Code size 186 (0xba)
.maxstack 3
.locals init (Integer V_0,
Integer V_1,
System.Threading.Tasks.Task(Of Integer) V_2,
System.Runtime.CompilerServices.TaskAwaiter(Of Integer) V_3,
C.VB$StateMachine_1_F V_4,
System.Exception V_5)
IL_0000: ldarg.0
IL_0001: ldfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0006: stloc.1
.try
{
IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f
IL_000c: nop
IL_000d: br.s IL_004b
IL_000f: nop
IL_0010: nop
IL_0011: ldc.i4.1
IL_0012: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)"" IL_0012: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)""
IL_0017: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0017: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_001c: stloc.3 IL_001c: stloc.3
...@@ -1399,7 +1291,7 @@ End Class ...@@ -1399,7 +1291,7 @@ End Class
IL_0041: ldloca.s V_4 IL_0041: ldloca.s V_4
IL_0043: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)"" IL_0043: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)""
IL_0048: nop IL_0048: nop
IL_0049: leave.s IL_00b9 IL_0049: leave.s IL_00ba
IL_004b: ldarg.0 IL_004b: ldarg.0
IL_004c: ldc.i4.m1 IL_004c: ldc.i4.m1
IL_004d: dup IL_004d: dup
...@@ -1417,37 +1309,132 @@ End Class ...@@ -1417,37 +1309,132 @@ End Class
IL_0070: pop IL_0070: pop
IL_0071: ldloca.s V_3 IL_0071: ldloca.s V_3
IL_0073: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0073: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0079: ldc.i4.2 IL_0079: ldc.i4.s 20
IL_007a: stloc.0 IL_007b: stloc.0
IL_007b: leave.s IL_00a2 IL_007c: leave.s IL_00a3
}
catch System.Exception
{
IL_007e: dup
IL_007f: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0084: stloc.s V_5
IL_0086: ldarg.0
IL_0087: ldc.i4.s -2
IL_0089: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_008e: ldarg.0
IL_008f: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0094: ldloc.s V_5
IL_0096: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_009b: nop
IL_009c: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00a1: leave.s IL_00ba
}
IL_00a3: ldarg.0
IL_00a4: ldc.i4.s -2
IL_00a6: dup
IL_00a7: stloc.1
IL_00a8: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00ad: ldarg.0
IL_00ae: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00b3: ldloc.0
IL_00b4: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00b9: nop
IL_00ba: ret
}
")
v0.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{
// Code size 185 (0xb9)
.maxstack 3
.locals init (Integer V_0,
Integer V_1,
System.Threading.Tasks.Task(Of Integer) V_2,
System.Runtime.CompilerServices.TaskAwaiter(Of Integer) V_3,
C.VB$StateMachine_1_F V_4,
System.Exception V_5)
IL_0000: ldarg.0
IL_0001: ldfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0006: stloc.1
.try
{
IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000e
IL_000c: br.s IL_004a
IL_000e: nop
IL_000f: nop
IL_0010: ldc.i4.1
IL_0011: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)""
IL_0016: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_001b: stloc.3
IL_001c: ldloca.s V_3
IL_001e: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean""
IL_0023: brtrue.s IL_0068
IL_0025: ldarg.0
IL_0026: ldc.i4.0
IL_0027: dup
IL_0028: stloc.1
IL_0029: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_002e: ldarg.0
IL_002f: ldloc.3
IL_0030: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0035: ldarg.0
IL_0036: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_003b: ldloca.s V_3
IL_003d: ldarg.0
IL_003e: stloc.s V_4
IL_0040: ldloca.s V_4
IL_0042: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)""
IL_0047: nop
IL_0048: leave.s IL_00b8
IL_004a: ldarg.0
IL_004b: ldc.i4.m1
IL_004c: dup
IL_004d: stloc.1
IL_004e: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0053: ldarg.0
IL_0054: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0059: stloc.3
IL_005a: ldarg.0
IL_005b: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0060: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0066: br.s IL_0068
IL_0068: ldloca.s V_3
IL_006a: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer""
IL_006f: pop
IL_0070: ldloca.s V_3
IL_0072: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0078: ldc.i4.2
IL_0079: stloc.0
IL_007a: leave.s IL_00a1
} }
catch System.Exception catch System.Exception
{ {
IL_007d: dup IL_007c: dup
IL_007e: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_007d: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0083: stloc.s V_5 IL_0082: stloc.s V_5
IL_0085: ldarg.0 IL_0084: ldarg.0
IL_0086: ldc.i4.s -2 IL_0085: ldc.i4.s -2
IL_0088: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0087: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_008d: ldarg.0 IL_008c: ldarg.0
IL_008e: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_008d: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0093: ldloc.s V_5 IL_0092: ldloc.s V_5
IL_0095: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_0094: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_009a: nop IL_0099: nop
IL_009b: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_009a: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00a0: leave.s IL_00b9 IL_009f: leave.s IL_00b8
} }
IL_00a2: ldarg.0 IL_00a1: ldarg.0
IL_00a3: ldc.i4.s -2 IL_00a2: ldc.i4.s -2
IL_00a5: dup IL_00a4: dup
IL_00a6: stloc.1 IL_00a5: stloc.1
IL_00a7: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_00a6: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00ac: ldarg.0 IL_00ab: ldarg.0
IL_00ad: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00ac: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00b2: ldloc.0 IL_00b1: ldloc.0
IL_00b3: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_00b2: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00b8: nop IL_00b7: nop
IL_00b9: ret IL_00b8: ret
} }
") ")
End Using End Using
...@@ -1518,7 +1505,7 @@ End Class ...@@ -1518,7 +1505,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 78 (0x4e) // Code size 75 (0x4b)
.maxstack 3 .maxstack 3
.locals init (Boolean V_0, .locals init (Boolean V_0,
Integer V_1) Integer V_1)
...@@ -1530,42 +1517,39 @@ End Class ...@@ -1530,42 +1517,39 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_0018 IL_0010: br.s IL_0016
IL_0012: nop IL_0012: br.s IL_0018
IL_0013: br.s IL_001a IL_0014: br.s IL_0040
IL_0015: nop IL_0016: ldc.i4.0
IL_0016: br.s IL_0043 IL_0017: ret
IL_0018: ldc.i4.0 IL_0018: ldarg.0
IL_0019: ret IL_0019: ldc.i4.m1
IL_001a: ldarg.0 IL_001a: dup
IL_001b: ldc.i4.m1 IL_001b: stloc.1
IL_001c: dup IL_001c: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_001d: stloc.1 IL_0021: nop
IL_001e: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0022: ldarg.0
IL_0023: nop IL_0023: ldarg.0
IL_0024: nop IL_0024: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer""
IL_0025: ldarg.0 IL_0029: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$0 As Integer""
IL_0026: ldarg.0 IL_002e: ldarg.0
IL_0027: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer"" IL_002f: ldc.i4.2
IL_002c: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$0 As Integer"" IL_0030: stfld ""C.VB$StateMachine_1_F.$Current As Integer""
IL_0031: ldarg.0 IL_0035: ldarg.0
IL_0032: ldc.i4.2 IL_0036: ldc.i4.1
IL_0033: stfld ""C.VB$StateMachine_1_F.$Current As Integer"" IL_0037: dup
IL_0038: ldarg.0 IL_0038: stloc.1
IL_0039: ldc.i4.1 IL_0039: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_003a: dup IL_003e: ldc.i4.1
IL_003b: stloc.1 IL_003f: ret
IL_003c: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0040: ldarg.0
IL_0041: ldc.i4.1 IL_0041: ldc.i4.m1
IL_0042: ret IL_0042: dup
IL_0043: ldarg.0 IL_0043: stloc.1
IL_0044: ldc.i4.m1 IL_0044: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0045: dup IL_0049: ldc.i4.0
IL_0046: stloc.1 IL_004a: ret
IL_0047: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_004c: ldc.i4.0
IL_004d: ret
} }
") ")
End Using End Using
...@@ -1639,7 +1623,7 @@ End Class ...@@ -1639,7 +1623,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 94 (0x5e) // Code size 91 (0x5b)
.maxstack 3 .maxstack 3
.locals init (Boolean V_0, .locals init (Boolean V_0,
Integer V_1) Integer V_1)
...@@ -1651,46 +1635,43 @@ End Class ...@@ -1651,46 +1635,43 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_0018 IL_0010: br.s IL_0016
IL_0012: nop IL_0012: br.s IL_0018
IL_0013: br.s IL_001a IL_0014: br.s IL_0050
IL_0015: nop IL_0016: ldc.i4.0
IL_0016: br.s IL_0053 IL_0017: ret
IL_0018: ldc.i4.0 IL_0018: ldarg.0
IL_0019: ret IL_0019: ldc.i4.m1
IL_001a: ldarg.0 IL_001a: dup
IL_001b: ldc.i4.m1 IL_001b: stloc.1
IL_001c: dup IL_001c: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_001d: stloc.1 IL_0021: nop
IL_001e: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0022: ldarg.0
IL_0023: nop IL_0023: ldarg.0
IL_0024: nop IL_0024: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer""
IL_0025: ldarg.0 IL_0029: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$0 As Integer""
IL_0026: ldarg.0 IL_002e: ldarg.0
IL_0027: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer"" IL_002f: ldc.i4 0x4d2
IL_002c: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$0 As Integer"" IL_0034: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer""
IL_0031: ldarg.0 IL_0039: ldarg.0
IL_0032: ldc.i4 0x4d2 IL_003a: ldarg.0
IL_0037: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer"" IL_003b: ldfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer""
IL_003c: ldarg.0 IL_0040: stfld ""C.VB$StateMachine_1_F.$Current As Integer""
IL_003d: ldarg.0 IL_0045: ldarg.0
IL_003e: ldfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer"" IL_0046: ldc.i4.1
IL_0043: stfld ""C.VB$StateMachine_1_F.$Current As Integer"" IL_0047: dup
IL_0048: ldarg.0 IL_0048: stloc.1
IL_0049: ldc.i4.1 IL_0049: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_004a: dup IL_004e: ldc.i4.1
IL_004b: stloc.1 IL_004f: ret
IL_004c: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0050: ldarg.0
IL_0051: ldc.i4.1 IL_0051: ldc.i4.m1
IL_0052: ret IL_0052: dup
IL_0053: ldarg.0 IL_0053: stloc.1
IL_0054: ldc.i4.m1 IL_0054: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0055: dup IL_0059: ldc.i4.0
IL_0056: stloc.1 IL_005a: ret
IL_0057: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_005c: ldc.i4.0
IL_005d: ret
} }
") ")
End Using End Using
...@@ -1763,7 +1744,7 @@ End Class ...@@ -1763,7 +1744,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 82 (0x52) // Code size 79 (0x4f)
.maxstack 3 .maxstack 3
.locals init (Boolean V_0, .locals init (Boolean V_0,
Integer V_1) Integer V_1)
...@@ -1775,42 +1756,39 @@ End Class ...@@ -1775,42 +1756,39 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_0018 IL_0010: br.s IL_0016
IL_0012: nop IL_0012: br.s IL_0018
IL_0013: br.s IL_001a IL_0014: br.s IL_0044
IL_0015: nop IL_0016: ldc.i4.0
IL_0016: br.s IL_0047 IL_0017: ret
IL_0018: ldc.i4.0 IL_0018: ldarg.0
IL_0019: ret IL_0019: ldc.i4.m1
IL_001a: ldarg.0 IL_001a: dup
IL_001b: ldc.i4.m1 IL_001b: stloc.1
IL_001c: dup IL_001c: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_001d: stloc.1 IL_0021: nop
IL_001e: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0022: ldarg.0
IL_0023: nop IL_0023: ldc.i4 0x4d2
IL_0024: nop IL_0028: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer""
IL_0025: ldarg.0 IL_002d: ldarg.0
IL_0026: ldc.i4 0x4d2 IL_002e: ldarg.0
IL_002b: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer"" IL_002f: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer""
IL_0030: ldarg.0 IL_0034: stfld ""C.VB$StateMachine_1_F.$Current As Integer""
IL_0031: ldarg.0 IL_0039: ldarg.0
IL_0032: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer"" IL_003a: ldc.i4.1
IL_0037: stfld ""C.VB$StateMachine_1_F.$Current As Integer"" IL_003b: dup
IL_003c: ldarg.0 IL_003c: stloc.1
IL_003d: ldc.i4.1 IL_003d: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_003e: dup IL_0042: ldc.i4.1
IL_003f: stloc.1 IL_0043: ret
IL_0040: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0044: ldarg.0
IL_0045: ldc.i4.1 IL_0045: ldc.i4.m1
IL_0046: ret IL_0046: dup
IL_0047: ldarg.0 IL_0047: stloc.1
IL_0048: ldc.i4.m1 IL_0048: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0049: dup IL_004d: ldc.i4.0
IL_004a: stloc.1 IL_004e: ret
IL_004b: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0050: ldc.i4.0
IL_0051: ret
} }
") ")
End Using End Using
...@@ -1883,7 +1861,7 @@ End Class ...@@ -1883,7 +1861,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 77 (0x4d) // Code size 74 (0x4a)
.maxstack 3 .maxstack 3
.locals init (Boolean V_0, .locals init (Boolean V_0,
Integer V_1) Integer V_1)
...@@ -1895,41 +1873,38 @@ End Class ...@@ -1895,41 +1873,38 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_0018 IL_0010: br.s IL_0016
IL_0012: nop IL_0012: br.s IL_0018
IL_0013: br.s IL_001a IL_0014: br.s IL_003f
IL_0015: nop IL_0016: ldc.i4.0
IL_0016: br.s IL_0042 IL_0017: ret
IL_0018: ldc.i4.0 IL_0018: ldarg.0
IL_0019: ret IL_0019: ldc.i4.m1
IL_001a: ldarg.0 IL_001a: dup
IL_001b: ldc.i4.m1 IL_001b: stloc.1
IL_001c: dup IL_001c: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_001d: stloc.1 IL_0021: nop
IL_001e: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0022: ldarg.0
IL_0023: nop IL_0023: ldc.i4 0x4d2
IL_0024: nop IL_0028: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$1 As Integer""
IL_0025: ldarg.0 IL_002d: ldarg.0
IL_0026: ldc.i4 0x4d2 IL_002e: ldc.i4.0
IL_002b: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$1 As Integer"" IL_002f: stfld ""C.VB$StateMachine_1_F.$Current As Integer""
IL_0030: ldarg.0 IL_0034: ldarg.0
IL_0031: ldc.i4.0 IL_0035: ldc.i4.1
IL_0032: stfld ""C.VB$StateMachine_1_F.$Current As Integer"" IL_0036: dup
IL_0037: ldarg.0 IL_0037: stloc.1
IL_0038: ldc.i4.1 IL_0038: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0039: dup IL_003d: ldc.i4.1
IL_003a: stloc.1 IL_003e: ret
IL_003b: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_003f: ldarg.0
IL_0040: ldc.i4.1 IL_0040: ldc.i4.m1
IL_0041: ret IL_0041: dup
IL_0042: ldarg.0 IL_0042: stloc.1
IL_0043: ldc.i4.m1 IL_0043: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0044: dup IL_0048: ldc.i4.0
IL_0045: stloc.1 IL_0049: ret
IL_0046: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_004b: ldc.i4.0
IL_004c: ret
} }
") ")
End Using End Using
...@@ -2033,7 +2008,7 @@ End Class ...@@ -2033,7 +2008,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 165 (0xa5) // Code size 162 (0xa2)
.maxstack 5 .maxstack 5
.locals init (Boolean V_0, .locals init (Boolean V_0,
Integer V_1, Integer V_1,
...@@ -2046,78 +2021,75 @@ End Class ...@@ -2046,78 +2021,75 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_0018 IL_0010: br.s IL_0016
IL_0012: nop IL_0012: br.s IL_0018
IL_0013: br.s IL_001a IL_0014: br.s IL_0074
IL_0015: nop IL_0016: ldc.i4.0
IL_0016: br.s IL_0077 IL_0017: ret
IL_0018: ldc.i4.0 IL_0018: ldarg.0
IL_0019: ret IL_0019: ldc.i4.m1
IL_001a: ldarg.0 IL_001a: dup
IL_001b: ldc.i4.m1 IL_001b: stloc.1
IL_001c: dup IL_001c: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_001d: stloc.1 IL_0021: nop
IL_001e: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0022: ldarg.0
IL_0023: nop IL_0023: ldc.i4.2
IL_0024: nop IL_0024: newarr ""Double""
IL_0025: ldarg.0 IL_0029: dup
IL_0026: ldc.i4.2 IL_002a: ldc.i4.0
IL_0027: newarr ""Double"" IL_002b: ldc.r8 1
IL_002c: dup IL_0034: stelem.r8
IL_002d: ldc.i4.0 IL_0035: dup
IL_002e: ldc.r8 1 IL_0036: ldc.i4.1
IL_0037: stelem.r8 IL_0037: ldc.r8 2
IL_0038: dup IL_0040: stelem.r8
IL_0039: ldc.i4.1 IL_0041: stfld ""C.VB$StateMachine_1_F.$S3 As Double()""
IL_003a: ldc.r8 2 IL_0046: ldarg.0
IL_0043: stelem.r8 IL_0047: ldc.i4.0
IL_0044: stfld ""C.VB$StateMachine_1_F.$S3 As Double()"" IL_0048: stfld ""C.VB$StateMachine_1_F.$S1 As Integer""
IL_0049: ldarg.0 IL_004d: br.s IL_008c
IL_004a: ldc.i4.0 IL_004f: ldarg.0
IL_004b: stfld ""C.VB$StateMachine_1_F.$S1 As Integer"" IL_0050: ldarg.0
IL_0050: br.s IL_008f IL_0051: ldfld ""C.VB$StateMachine_1_F.$S3 As Double()""
IL_0052: ldarg.0 IL_0056: ldarg.0
IL_0053: ldarg.0 IL_0057: ldfld ""C.VB$StateMachine_1_F.$S1 As Integer""
IL_0054: ldfld ""C.VB$StateMachine_1_F.$S3 As Double()"" IL_005c: ldelem.r8
IL_0059: ldarg.0 IL_005d: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$4 As Double""
IL_005a: ldfld ""C.VB$StateMachine_1_F.$S1 As Integer"" IL_0062: ldarg.0
IL_005f: ldelem.r8 IL_0063: ldc.i4.1
IL_0060: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$4 As Double"" IL_0064: stfld ""C.VB$StateMachine_1_F.$Current As Integer""
IL_0065: ldarg.0 IL_0069: ldarg.0
IL_0066: ldc.i4.1 IL_006a: ldc.i4.1
IL_0067: stfld ""C.VB$StateMachine_1_F.$Current As Integer"" IL_006b: dup
IL_006c: ldarg.0 IL_006c: stloc.1
IL_006d: ldc.i4.1 IL_006d: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_006e: dup IL_0072: ldc.i4.1
IL_006f: stloc.1 IL_0073: ret
IL_0070: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0074: ldarg.0
IL_0075: ldc.i4.1 IL_0075: ldc.i4.m1
IL_0076: ret IL_0076: dup
IL_0077: ldarg.0 IL_0077: stloc.1
IL_0078: ldc.i4.m1 IL_0078: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0079: dup IL_007d: nop
IL_007a: stloc.1 IL_007e: ldarg.0
IL_007b: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_007f: ldarg.0
IL_0080: nop IL_0080: ldfld ""C.VB$StateMachine_1_F.$S1 As Integer""
IL_0081: ldarg.0 IL_0085: ldc.i4.1
IL_0082: ldarg.0 IL_0086: add.ovf
IL_0083: ldfld ""C.VB$StateMachine_1_F.$S1 As Integer"" IL_0087: stfld ""C.VB$StateMachine_1_F.$S1 As Integer""
IL_0088: ldc.i4.1 IL_008c: ldarg.0
IL_0089: add.ovf IL_008d: ldfld ""C.VB$StateMachine_1_F.$S1 As Integer""
IL_008a: stfld ""C.VB$StateMachine_1_F.$S1 As Integer"" IL_0092: ldarg.0
IL_008f: ldarg.0 IL_0093: ldfld ""C.VB$StateMachine_1_F.$S3 As Double()""
IL_0090: ldfld ""C.VB$StateMachine_1_F.$S1 As Integer"" IL_0098: ldlen
IL_0095: ldarg.0 IL_0099: conv.i4
IL_0096: ldfld ""C.VB$StateMachine_1_F.$S3 As Double()"" IL_009a: clt
IL_009b: ldlen IL_009c: stloc.2
IL_009c: conv.i4 IL_009d: ldloc.2
IL_009d: clt IL_009e: brtrue.s IL_004f
IL_009f: stloc.2 IL_00a0: ldc.i4.0
IL_00a0: ldloc.2 IL_00a1: ret
IL_00a1: brtrue.s IL_0052
IL_00a3: ldc.i4.0
IL_00a4: ret
} }
") ")
End Using End Using
...@@ -2185,7 +2157,7 @@ End Class ...@@ -2185,7 +2157,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 201 (0xc9) // Code size 200 (0xc8)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -2201,87 +2173,86 @@ End Class ...@@ -2201,87 +2173,86 @@ End Class
{ {
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_0057
IL_000d: br.s IL_0058 IL_000e: nop
IL_000f: nop IL_000f: ldarg.0
IL_0010: ldarg.0 IL_0010: ldarg.0
IL_0011: ldarg.0 IL_0011: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer""
IL_0012: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer"" IL_0016: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$0 As Integer""
IL_0017: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$0 As Integer"" IL_001b: nop
IL_001c: nop IL_001c: ldc.i4.s 20
IL_001d: ldc.i4.s 20 IL_001e: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)""
IL_001f: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)"" IL_0023: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0024: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0028: stloc.3
IL_0029: stloc.3 IL_0029: ldloca.s V_3
IL_002a: ldloca.s V_3 IL_002b: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean""
IL_002c: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean"" IL_0030: brtrue.s IL_0075
IL_0031: brtrue.s IL_0076 IL_0032: ldarg.0
IL_0033: ldarg.0 IL_0033: ldc.i4.0
IL_0034: ldc.i4.0 IL_0034: dup
IL_0035: dup IL_0035: stloc.1
IL_0036: stloc.1 IL_0036: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0037: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_003b: ldarg.0
IL_003c: ldarg.0 IL_003c: ldloc.3
IL_003d: ldloc.3 IL_003d: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_003e: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0042: ldarg.0
IL_0043: ldarg.0 IL_0043: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0044: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_0048: ldloca.s V_3
IL_0049: ldloca.s V_3 IL_004a: ldarg.0
IL_004b: ldarg.0 IL_004b: stloc.s V_4
IL_004c: stloc.s V_4 IL_004d: ldloca.s V_4
IL_004e: ldloca.s V_4 IL_004f: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)""
IL_0050: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)"" IL_0054: nop
IL_0055: nop IL_0055: leave.s IL_00c7
IL_0056: leave.s IL_00c8 IL_0057: ldarg.0
IL_0058: ldarg.0 IL_0058: ldc.i4.m1
IL_0059: ldc.i4.m1 IL_0059: dup
IL_005a: dup IL_005a: stloc.1
IL_005b: stloc.1 IL_005b: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_005c: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0060: ldarg.0
IL_0061: ldarg.0 IL_0061: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0062: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0066: stloc.3
IL_0067: stloc.3 IL_0067: ldarg.0
IL_0068: ldarg.0 IL_0068: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0069: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_006d: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_006e: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0073: br.s IL_0075
IL_0074: br.s IL_0076 IL_0075: ldloca.s V_3
IL_0076: ldloca.s V_3 IL_0077: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer""
IL_0078: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer"" IL_007c: stloc.s V_5
IL_007d: stloc.s V_5 IL_007e: ldloca.s V_3
IL_007f: ldloca.s V_3 IL_0080: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0081: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0086: ldloc.s V_5
IL_0087: ldloc.s V_5 IL_0088: stloc.0
IL_0089: stloc.0 IL_0089: leave.s IL_00b0
IL_008a: leave.s IL_00b1
} }
catch System.Exception catch System.Exception
{ {
IL_008c: dup IL_008b: dup
IL_008d: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_008c: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0092: stloc.s V_6 IL_0091: stloc.s V_6
IL_0094: ldarg.0 IL_0093: ldarg.0
IL_0095: ldc.i4.s -2 IL_0094: ldc.i4.s -2
IL_0097: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0096: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_009c: ldarg.0 IL_009b: ldarg.0
IL_009d: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_009c: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00a2: ldloc.s V_6 IL_00a1: ldloc.s V_6
IL_00a4: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_00a3: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_00a9: nop IL_00a8: nop
IL_00aa: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_00a9: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00af: leave.s IL_00c8 IL_00ae: leave.s IL_00c7
} }
IL_00b1: ldarg.0 IL_00b0: ldarg.0
IL_00b2: ldc.i4.s -2 IL_00b1: ldc.i4.s -2
IL_00b4: dup IL_00b3: dup
IL_00b5: stloc.1 IL_00b4: stloc.1
IL_00b6: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_00b5: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00bb: ldarg.0 IL_00ba: ldarg.0
IL_00bc: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00bb: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00c1: ldloc.0 IL_00c0: ldloc.0
IL_00c2: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_00c1: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00c7: nop IL_00c6: nop
IL_00c8: ret IL_00c7: ret
} }
") ")
End Using End Using
...@@ -2352,7 +2323,7 @@ End Class ...@@ -2352,7 +2323,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 213 (0xd5) // Code size 212 (0xd4)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -2368,91 +2339,90 @@ End Class ...@@ -2368,91 +2339,90 @@ End Class
{ {
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_0063
IL_000d: br.s IL_0064 IL_000e: nop
IL_000f: nop IL_000f: ldarg.0
IL_0010: ldarg.0 IL_0010: ldarg.0
IL_0011: ldarg.0 IL_0011: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer""
IL_0012: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer"" IL_0016: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$0 As Integer""
IL_0017: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$0 As Integer"" IL_001b: ldarg.0
IL_001c: ldarg.0 IL_001c: ldc.i4.s 10
IL_001d: ldc.i4.s 10 IL_001e: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer""
IL_001f: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer"" IL_0023: nop
IL_0024: nop IL_0024: ldarg.0
IL_0025: ldarg.0 IL_0025: ldfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer""
IL_0026: ldfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer"" IL_002a: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)""
IL_002b: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)"" IL_002f: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0030: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0034: stloc.3
IL_0035: stloc.3 IL_0035: ldloca.s V_3
IL_0036: ldloca.s V_3 IL_0037: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean""
IL_0038: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean"" IL_003c: brtrue.s IL_0081
IL_003d: brtrue.s IL_0082 IL_003e: ldarg.0
IL_003f: ldarg.0 IL_003f: ldc.i4.0
IL_0040: ldc.i4.0 IL_0040: dup
IL_0041: dup IL_0041: stloc.1
IL_0042: stloc.1 IL_0042: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0043: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0047: ldarg.0
IL_0048: ldarg.0 IL_0048: ldloc.3
IL_0049: ldloc.3 IL_0049: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_004a: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_004e: ldarg.0
IL_004f: ldarg.0 IL_004f: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0050: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_0054: ldloca.s V_3
IL_0055: ldloca.s V_3 IL_0056: ldarg.0
IL_0057: ldarg.0 IL_0057: stloc.s V_4
IL_0058: stloc.s V_4 IL_0059: ldloca.s V_4
IL_005a: ldloca.s V_4 IL_005b: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)""
IL_005c: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)"" IL_0060: nop
IL_0061: nop IL_0061: leave.s IL_00d3
IL_0062: leave.s IL_00d4 IL_0063: ldarg.0
IL_0064: ldarg.0 IL_0064: ldc.i4.m1
IL_0065: ldc.i4.m1 IL_0065: dup
IL_0066: dup IL_0066: stloc.1
IL_0067: stloc.1 IL_0067: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0068: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_006c: ldarg.0
IL_006d: ldarg.0 IL_006d: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_006e: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0072: stloc.3
IL_0073: stloc.3 IL_0073: ldarg.0
IL_0074: ldarg.0 IL_0074: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0075: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0079: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_007a: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_007f: br.s IL_0081
IL_0080: br.s IL_0082 IL_0081: ldloca.s V_3
IL_0082: ldloca.s V_3 IL_0083: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer""
IL_0084: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer"" IL_0088: stloc.s V_5
IL_0089: stloc.s V_5 IL_008a: ldloca.s V_3
IL_008b: ldloca.s V_3 IL_008c: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_008d: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0092: ldloc.s V_5
IL_0093: ldloc.s V_5 IL_0094: stloc.0
IL_0095: stloc.0 IL_0095: leave.s IL_00bc
IL_0096: leave.s IL_00bd
} }
catch System.Exception catch System.Exception
{ {
IL_0098: dup IL_0097: dup
IL_0099: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_0098: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_009e: stloc.s V_6 IL_009d: stloc.s V_6
IL_00a0: ldarg.0 IL_009f: ldarg.0
IL_00a1: ldc.i4.s -2 IL_00a0: ldc.i4.s -2
IL_00a3: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_00a2: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00a8: ldarg.0 IL_00a7: ldarg.0
IL_00a9: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00a8: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00ae: ldloc.s V_6 IL_00ad: ldloc.s V_6
IL_00b0: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_00af: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_00b5: nop IL_00b4: nop
IL_00b6: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_00b5: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00bb: leave.s IL_00d4 IL_00ba: leave.s IL_00d3
} }
IL_00bd: ldarg.0 IL_00bc: ldarg.0
IL_00be: ldc.i4.s -2 IL_00bd: ldc.i4.s -2
IL_00c0: dup IL_00bf: dup
IL_00c1: stloc.1 IL_00c0: stloc.1
IL_00c2: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_00c1: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00c7: ldarg.0 IL_00c6: ldarg.0
IL_00c8: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00c7: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00cd: ldloc.0 IL_00cc: ldloc.0
IL_00ce: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_00cd: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00d3: nop IL_00d2: nop
IL_00d4: ret IL_00d3: ret
} }
") ")
End Using End Using
...@@ -2522,7 +2492,7 @@ End Class ...@@ -2522,7 +2492,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 204 (0xcc) // Code size 203 (0xcb)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -2538,87 +2508,86 @@ End Class ...@@ -2538,87 +2508,86 @@ End Class
{ {
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_005a
IL_000d: br.s IL_005b IL_000e: nop
IL_000f: nop IL_000f: ldarg.0
IL_0010: ldarg.0 IL_0010: ldc.i4 0x4d2
IL_0011: ldc.i4 0x4d2 IL_0015: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer""
IL_0016: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_y$1 As Integer"" IL_001a: nop
IL_001b: nop IL_001b: ldarg.0
IL_001c: ldarg.0 IL_001c: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer""
IL_001d: ldfld ""C.VB$StateMachine_1_F.$VB$Local_p As Integer"" IL_0021: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)""
IL_0022: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)"" IL_0026: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0027: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_002b: stloc.3
IL_002c: stloc.3 IL_002c: ldloca.s V_3
IL_002d: ldloca.s V_3 IL_002e: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean""
IL_002f: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean"" IL_0033: brtrue.s IL_0078
IL_0034: brtrue.s IL_0079 IL_0035: ldarg.0
IL_0036: ldarg.0 IL_0036: ldc.i4.0
IL_0037: ldc.i4.0 IL_0037: dup
IL_0038: dup IL_0038: stloc.1
IL_0039: stloc.1 IL_0039: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_003a: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_003e: ldarg.0
IL_003f: ldarg.0 IL_003f: ldloc.3
IL_0040: ldloc.3 IL_0040: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0041: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0045: ldarg.0
IL_0046: ldarg.0 IL_0046: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0047: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_004b: ldloca.s V_3
IL_004c: ldloca.s V_3 IL_004d: ldarg.0
IL_004e: ldarg.0 IL_004e: stloc.s V_4
IL_004f: stloc.s V_4 IL_0050: ldloca.s V_4
IL_0051: ldloca.s V_4 IL_0052: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)""
IL_0053: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)"" IL_0057: nop
IL_0058: nop IL_0058: leave.s IL_00ca
IL_0059: leave.s IL_00cb IL_005a: ldarg.0
IL_005b: ldarg.0 IL_005b: ldc.i4.m1
IL_005c: ldc.i4.m1 IL_005c: dup
IL_005d: dup IL_005d: stloc.1
IL_005e: stloc.1 IL_005e: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_005f: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0063: ldarg.0
IL_0064: ldarg.0 IL_0064: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0065: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0069: stloc.3
IL_006a: stloc.3 IL_006a: ldarg.0
IL_006b: ldarg.0 IL_006b: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_006c: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0070: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0071: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0076: br.s IL_0078
IL_0077: br.s IL_0079 IL_0078: ldloca.s V_3
IL_0079: ldloca.s V_3 IL_007a: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer""
IL_007b: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer"" IL_007f: stloc.s V_5
IL_0080: stloc.s V_5 IL_0081: ldloca.s V_3
IL_0082: ldloca.s V_3 IL_0083: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0084: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0089: ldloc.s V_5
IL_008a: ldloc.s V_5 IL_008b: stloc.0
IL_008c: stloc.0 IL_008c: leave.s IL_00b3
IL_008d: leave.s IL_00b4
} }
catch System.Exception catch System.Exception
{ {
IL_008f: dup IL_008e: dup
IL_0090: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_008f: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0095: stloc.s V_6 IL_0094: stloc.s V_6
IL_0097: ldarg.0 IL_0096: ldarg.0
IL_0098: ldc.i4.s -2 IL_0097: ldc.i4.s -2
IL_009a: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0099: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_009f: ldarg.0 IL_009e: ldarg.0
IL_00a0: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_009f: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00a5: ldloc.s V_6 IL_00a4: ldloc.s V_6
IL_00a7: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_00a6: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_00ac: nop IL_00ab: nop
IL_00ad: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_00ac: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00b2: leave.s IL_00cb IL_00b1: leave.s IL_00ca
} }
IL_00b4: ldarg.0 IL_00b3: ldarg.0
IL_00b5: ldc.i4.s -2 IL_00b4: ldc.i4.s -2
IL_00b7: dup IL_00b6: dup
IL_00b8: stloc.1 IL_00b7: stloc.1
IL_00b9: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_00b8: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00be: ldarg.0 IL_00bd: ldarg.0
IL_00bf: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00be: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00c4: ldloc.0 IL_00c3: ldloc.0
IL_00c5: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_00c4: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00ca: nop IL_00c9: nop
IL_00cb: ret IL_00ca: ret
} }
") ")
End Using End Using
...@@ -2688,7 +2657,7 @@ End Class ...@@ -2688,7 +2657,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 204 (0xcc) // Code size 203 (0xcb)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -2704,86 +2673,85 @@ End Class ...@@ -2704,86 +2673,85 @@ End Class
{ {
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_005a
IL_000d: br.s IL_005b IL_000e: nop
IL_000f: nop IL_000f: ldarg.0
IL_0010: ldarg.0 IL_0010: ldc.r8 10
IL_0011: ldc.r8 10 IL_0019: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$1 As Double""
IL_001a: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_x$1 As Double"" IL_001e: nop
IL_001f: nop IL_001f: ldc.i4.s 20
IL_0020: ldc.i4.s 20 IL_0021: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)""
IL_0022: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)"" IL_0026: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0027: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_002b: stloc.3
IL_002c: stloc.3 IL_002c: ldloca.s V_3
IL_002d: ldloca.s V_3 IL_002e: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean""
IL_002f: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean"" IL_0033: brtrue.s IL_0078
IL_0034: brtrue.s IL_0079 IL_0035: ldarg.0
IL_0036: ldarg.0 IL_0036: ldc.i4.0
IL_0037: ldc.i4.0 IL_0037: dup
IL_0038: dup IL_0038: stloc.1
IL_0039: stloc.1 IL_0039: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_003a: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_003e: ldarg.0
IL_003f: ldarg.0 IL_003f: ldloc.3
IL_0040: ldloc.3 IL_0040: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0041: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0045: ldarg.0
IL_0046: ldarg.0 IL_0046: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0047: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_004b: ldloca.s V_3
IL_004c: ldloca.s V_3 IL_004d: ldarg.0
IL_004e: ldarg.0 IL_004e: stloc.s V_4
IL_004f: stloc.s V_4 IL_0050: ldloca.s V_4
IL_0051: ldloca.s V_4 IL_0052: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)""
IL_0053: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_1_F)"" IL_0057: nop
IL_0058: nop IL_0058: leave.s IL_00ca
IL_0059: leave.s IL_00cb IL_005a: ldarg.0
IL_005b: ldarg.0 IL_005b: ldc.i4.m1
IL_005c: ldc.i4.m1 IL_005c: dup
IL_005d: dup IL_005d: stloc.1
IL_005e: stloc.1 IL_005e: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_005f: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0063: ldarg.0
IL_0064: ldarg.0 IL_0064: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0065: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0069: stloc.3
IL_006a: stloc.3 IL_006a: ldarg.0
IL_006b: ldarg.0 IL_006b: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_006c: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0070: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0071: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0076: br.s IL_0078
IL_0077: br.s IL_0079 IL_0078: ldloca.s V_3
IL_0079: ldloca.s V_3 IL_007a: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer""
IL_007b: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer"" IL_007f: stloc.s V_5
IL_0080: stloc.s V_5 IL_0081: ldloca.s V_3
IL_0082: ldloca.s V_3 IL_0083: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0084: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0089: ldloc.s V_5
IL_008a: ldloc.s V_5 IL_008b: stloc.0
IL_008c: stloc.0 IL_008c: leave.s IL_00b3
IL_008d: leave.s IL_00b4
} }
catch System.Exception catch System.Exception
{ {
IL_008f: dup IL_008e: dup
IL_0090: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_008f: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0095: stloc.s V_6 IL_0094: stloc.s V_6
IL_0097: ldarg.0 IL_0096: ldarg.0
IL_0098: ldc.i4.s -2 IL_0097: ldc.i4.s -2
IL_009a: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0099: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_009f: ldarg.0 IL_009e: ldarg.0
IL_00a0: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_009f: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00a5: ldloc.s V_6 IL_00a4: ldloc.s V_6
IL_00a7: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_00a6: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_00ac: nop IL_00ab: nop
IL_00ad: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_00ac: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00b2: leave.s IL_00cb IL_00b1: leave.s IL_00ca
} }
IL_00b4: ldarg.0 IL_00b3: ldarg.0
IL_00b5: ldc.i4.s -2 IL_00b4: ldc.i4.s -2
IL_00b7: dup IL_00b6: dup
IL_00b8: stloc.1 IL_00b7: stloc.1
IL_00b9: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_00b8: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00be: ldarg.0 IL_00bd: ldarg.0
IL_00bf: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00be: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00c4: ldloc.0 IL_00c3: ldloc.0
IL_00c5: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_00c4: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00ca: nop IL_00c9: nop
IL_00cb: ret IL_00ca: ret
} }
") ")
End Using End Using
...@@ -3010,7 +2978,7 @@ End Class ...@@ -3010,7 +2978,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 204 (0xcc) // Code size 203 (0xcb)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -3025,89 +2993,88 @@ End Class ...@@ -3025,89 +2993,88 @@ End Class
{ {
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_005c
IL_000d: br.s IL_005d IL_000e: nop
IL_000f: nop IL_000f: ldarg.0
IL_0010: ldarg.0 IL_0010: newobj ""Sub C..ctor()""
IL_0011: newobj ""Sub C..ctor()"" IL_0015: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_a1$2 As C""
IL_0016: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_a1$2 As C"" IL_001a: ldarg.0
IL_001b: ldarg.0 IL_001b: ldc.i4.3
IL_001c: ldc.i4.3 IL_001c: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_a2$1 As Integer""
IL_001d: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_a2$1 As Integer"" IL_0021: nop
IL_0022: nop IL_0022: ldc.i4.0
IL_0023: ldc.i4.0 IL_0023: call ""Function System.Threading.Tasks.Task.Delay(Integer) As System.Threading.Tasks.Task""
IL_0024: call ""Function System.Threading.Tasks.Task.Delay(Integer) As System.Threading.Tasks.Task"" IL_0028: callvirt ""Function System.Threading.Tasks.Task.GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter""
IL_0029: callvirt ""Function System.Threading.Tasks.Task.GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter"" IL_002d: stloc.3
IL_002e: stloc.3 IL_002e: ldloca.s V_3
IL_002f: ldloca.s V_3 IL_0030: call ""Function System.Runtime.CompilerServices.TaskAwaiter.get_IsCompleted() As Boolean""
IL_0031: call ""Function System.Runtime.CompilerServices.TaskAwaiter.get_IsCompleted() As Boolean"" IL_0035: brtrue.s IL_007a
IL_0036: brtrue.s IL_007b IL_0037: ldarg.0
IL_0038: ldarg.0 IL_0038: ldc.i4.0
IL_0039: ldc.i4.0 IL_0039: dup
IL_003a: dup IL_003a: stloc.1
IL_003b: stloc.1 IL_003b: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_003c: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0040: ldarg.0
IL_0041: ldarg.0 IL_0041: ldloc.3
IL_0042: ldloc.3 IL_0042: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter""
IL_0043: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter"" IL_0047: ldarg.0
IL_0048: ldarg.0 IL_0048: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0049: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_004d: ldloca.s V_3
IL_004e: ldloca.s V_3 IL_004f: ldarg.0
IL_0050: ldarg.0 IL_0050: stloc.s V_4
IL_0051: stloc.s V_4 IL_0052: ldloca.s V_4
IL_0053: ldloca.s V_4 IL_0054: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter, C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter, ByRef C.VB$StateMachine_1_F)""
IL_0055: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter, C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter, ByRef C.VB$StateMachine_1_F)"" IL_0059: nop
IL_005a: nop IL_005a: leave.s IL_00ca
IL_005b: leave.s IL_00cb IL_005c: ldarg.0
IL_005d: ldarg.0 IL_005d: ldc.i4.m1
IL_005e: ldc.i4.m1 IL_005e: dup
IL_005f: dup IL_005f: stloc.1
IL_0060: stloc.1 IL_0060: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0061: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0065: ldarg.0
IL_0066: ldarg.0 IL_0066: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter""
IL_0067: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter"" IL_006b: stloc.3
IL_006c: stloc.3 IL_006c: ldarg.0
IL_006d: ldarg.0 IL_006d: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter""
IL_006e: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter"" IL_0072: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_0073: initobj ""System.Runtime.CompilerServices.TaskAwaiter"" IL_0078: br.s IL_007a
IL_0079: br.s IL_007b IL_007a: ldloca.s V_3
IL_007b: ldloca.s V_3 IL_007c: call ""Sub System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_007d: call ""Sub System.Runtime.CompilerServices.TaskAwaiter.GetResult()"" IL_0081: nop
IL_0082: nop IL_0082: ldloca.s V_3
IL_0083: ldloca.s V_3 IL_0084: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_0085: initobj ""System.Runtime.CompilerServices.TaskAwaiter"" IL_008a: ldc.i4.1
IL_008b: ldc.i4.1 IL_008b: stloc.0
IL_008c: stloc.0 IL_008c: leave.s IL_00b3
IL_008d: leave.s IL_00b4
} }
catch System.Exception catch System.Exception
{ {
IL_008f: dup IL_008e: dup
IL_0090: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_008f: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0095: stloc.s V_5 IL_0094: stloc.s V_5
IL_0097: ldarg.0 IL_0096: ldarg.0
IL_0098: ldc.i4.s -2 IL_0097: ldc.i4.s -2
IL_009a: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0099: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_009f: ldarg.0 IL_009e: ldarg.0
IL_00a0: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_009f: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00a5: ldloc.s V_5 IL_00a4: ldloc.s V_5
IL_00a7: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_00a6: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_00ac: nop IL_00ab: nop
IL_00ad: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_00ac: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00b2: leave.s IL_00cb IL_00b1: leave.s IL_00ca
} }
IL_00b4: ldarg.0 IL_00b3: ldarg.0
IL_00b5: ldc.i4.s -2 IL_00b4: ldc.i4.s -2
IL_00b7: dup IL_00b6: dup
IL_00b8: stloc.1 IL_00b7: stloc.1
IL_00b9: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_00b8: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00be: ldarg.0 IL_00bd: ldarg.0
IL_00bf: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00be: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00c4: ldloc.0 IL_00c3: ldloc.0
IL_00c5: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_00c4: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00ca: nop IL_00c9: nop
IL_00cb: ret IL_00ca: ret
} }
") ")
...@@ -3126,7 +3093,7 @@ End Class ...@@ -3126,7 +3093,7 @@ End Class
diff2.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", " diff2.VerifyIL("C.VB$StateMachine_1_F.MoveNext()", "
{ {
// Code size 204 (0xcc) // Code size 203 (0xcb)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -3141,89 +3108,88 @@ End Class ...@@ -3141,89 +3108,88 @@ End Class
{ {
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_005c
IL_000d: br.s IL_005d IL_000e: nop
IL_000f: nop IL_000f: ldarg.0
IL_0010: ldarg.0 IL_0010: ldc.i4.1
IL_0011: ldc.i4.1 IL_0011: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_a1$3 As Boolean""
IL_0012: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_a1$3 As Boolean"" IL_0016: ldarg.0
IL_0017: ldarg.0 IL_0017: newobj ""Sub C..ctor()""
IL_0018: newobj ""Sub C..ctor()"" IL_001c: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_a2$4 As C""
IL_001d: stfld ""C.VB$StateMachine_1_F.$VB$ResumableLocal_a2$4 As C"" IL_0021: nop
IL_0022: nop IL_0022: ldc.i4.0
IL_0023: ldc.i4.0 IL_0023: call ""Function System.Threading.Tasks.Task.Delay(Integer) As System.Threading.Tasks.Task""
IL_0024: call ""Function System.Threading.Tasks.Task.Delay(Integer) As System.Threading.Tasks.Task"" IL_0028: callvirt ""Function System.Threading.Tasks.Task.GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter""
IL_0029: callvirt ""Function System.Threading.Tasks.Task.GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter"" IL_002d: stloc.3
IL_002e: stloc.3 IL_002e: ldloca.s V_3
IL_002f: ldloca.s V_3 IL_0030: call ""Function System.Runtime.CompilerServices.TaskAwaiter.get_IsCompleted() As Boolean""
IL_0031: call ""Function System.Runtime.CompilerServices.TaskAwaiter.get_IsCompleted() As Boolean"" IL_0035: brtrue.s IL_007a
IL_0036: brtrue.s IL_007b IL_0037: ldarg.0
IL_0038: ldarg.0 IL_0038: ldc.i4.0
IL_0039: ldc.i4.0 IL_0039: dup
IL_003a: dup IL_003a: stloc.1
IL_003b: stloc.1 IL_003b: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_003c: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0040: ldarg.0
IL_0041: ldarg.0 IL_0041: ldloc.3
IL_0042: ldloc.3 IL_0042: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter""
IL_0043: stfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter"" IL_0047: ldarg.0
IL_0048: ldarg.0 IL_0048: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0049: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_004d: ldloca.s V_3
IL_004e: ldloca.s V_3 IL_004f: ldarg.0
IL_0050: ldarg.0 IL_0050: stloc.s V_4
IL_0051: stloc.s V_4 IL_0052: ldloca.s V_4
IL_0053: ldloca.s V_4 IL_0054: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter, C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter, ByRef C.VB$StateMachine_1_F)""
IL_0055: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter, C.VB$StateMachine_1_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter, ByRef C.VB$StateMachine_1_F)"" IL_0059: nop
IL_005a: nop IL_005a: leave.s IL_00ca
IL_005b: leave.s IL_00cb IL_005c: ldarg.0
IL_005d: ldarg.0 IL_005d: ldc.i4.m1
IL_005e: ldc.i4.m1 IL_005e: dup
IL_005f: dup IL_005f: stloc.1
IL_0060: stloc.1 IL_0060: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0061: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0065: ldarg.0
IL_0066: ldarg.0 IL_0066: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter""
IL_0067: ldfld ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter"" IL_006b: stloc.3
IL_006c: stloc.3 IL_006c: ldarg.0
IL_006d: ldarg.0 IL_006d: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter""
IL_006e: ldflda ""C.VB$StateMachine_1_F.$A0 As System.Runtime.CompilerServices.TaskAwaiter"" IL_0072: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_0073: initobj ""System.Runtime.CompilerServices.TaskAwaiter"" IL_0078: br.s IL_007a
IL_0079: br.s IL_007b IL_007a: ldloca.s V_3
IL_007b: ldloca.s V_3 IL_007c: call ""Sub System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_007d: call ""Sub System.Runtime.CompilerServices.TaskAwaiter.GetResult()"" IL_0081: nop
IL_0082: nop IL_0082: ldloca.s V_3
IL_0083: ldloca.s V_3 IL_0084: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_0085: initobj ""System.Runtime.CompilerServices.TaskAwaiter"" IL_008a: ldc.i4.1
IL_008b: ldc.i4.1 IL_008b: stloc.0
IL_008c: stloc.0 IL_008c: leave.s IL_00b3
IL_008d: leave.s IL_00b4
} }
catch System.Exception catch System.Exception
{ {
IL_008f: dup IL_008e: dup
IL_0090: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_008f: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0095: stloc.s V_5 IL_0094: stloc.s V_5
IL_0097: ldarg.0 IL_0096: ldarg.0
IL_0098: ldc.i4.s -2 IL_0097: ldc.i4.s -2
IL_009a: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_0099: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_009f: ldarg.0 IL_009e: ldarg.0
IL_00a0: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_009f: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00a5: ldloc.s V_5 IL_00a4: ldloc.s V_5
IL_00a7: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_00a6: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_00ac: nop IL_00ab: nop
IL_00ad: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_00ac: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00b2: leave.s IL_00cb IL_00b1: leave.s IL_00ca
} }
IL_00b4: ldarg.0 IL_00b3: ldarg.0
IL_00b5: ldc.i4.s -2 IL_00b4: ldc.i4.s -2
IL_00b7: dup IL_00b6: dup
IL_00b8: stloc.1 IL_00b7: stloc.1
IL_00b9: stfld ""C.VB$StateMachine_1_F.$State As Integer"" IL_00b8: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_00be: ldarg.0 IL_00bd: ldarg.0
IL_00bf: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00be: ldflda ""C.VB$StateMachine_1_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00c4: ldloc.0 IL_00c3: ldloc.0
IL_00c5: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_00c4: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00ca: nop IL_00c9: nop
IL_00cb: ret IL_00ca: ret
} }
") ")
...@@ -3523,7 +3489,7 @@ End Class ...@@ -3523,7 +3489,7 @@ End Class
diff1.VerifyIL("C.VB$StateMachine_4_F.MoveNext()", " diff1.VerifyIL("C.VB$StateMachine_4_F.MoveNext()", "
{ {
// Code size 319 (0x13f) // Code size 317 (0x13d)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -3542,130 +3508,128 @@ End Class ...@@ -3542,130 +3508,128 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_001b IL_0010: br.s IL_0019
IL_0012: nop IL_0012: br.s IL_005d
IL_0013: br.s IL_005f IL_0014: br IL_00cd
IL_0015: nop IL_0019: nop
IL_0016: br IL_00cf IL_001a: nop
IL_001b: nop IL_001b: ldarg.0
IL_001c: nop IL_001c: ldfld ""C.VB$StateMachine_4_F.$VB$Me As C""
IL_001d: ldarg.0 IL_0021: callvirt ""Function C.A3() As System.Threading.Tasks.Task(Of C)""
IL_001e: ldfld ""C.VB$StateMachine_4_F.$VB$Me As C"" IL_0026: callvirt ""Function System.Threading.Tasks.Task(Of C).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_0023: callvirt ""Function C.A3() As System.Threading.Tasks.Task(Of C)"" IL_002b: stloc.3
IL_0028: callvirt ""Function System.Threading.Tasks.Task(Of C).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_002c: ldloca.s V_3
IL_002d: stloc.3 IL_002e: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of C).get_IsCompleted() As Boolean""
IL_002e: ldloca.s V_3 IL_0033: brtrue.s IL_007b
IL_0030: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of C).get_IsCompleted() As Boolean"" IL_0035: ldarg.0
IL_0035: brtrue.s IL_007d IL_0036: ldc.i4.0
IL_0037: ldarg.0 IL_0037: dup
IL_0038: ldc.i4.0 IL_0038: stloc.1
IL_0039: dup IL_0039: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_003a: stloc.1 IL_003e: ldarg.0
IL_003b: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_003f: ldloc.3
IL_0040: ldarg.0 IL_0040: stfld ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_0041: ldloc.3 IL_0045: ldarg.0
IL_0042: stfld ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_0046: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0047: ldarg.0 IL_004b: ldloca.s V_3
IL_0048: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_004d: ldarg.0
IL_004d: ldloca.s V_3 IL_004e: stloc.s V_4
IL_004f: ldarg.0 IL_0050: ldloca.s V_4
IL_0050: stloc.s V_4 IL_0052: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of C), C.VB$StateMachine_4_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of C), ByRef C.VB$StateMachine_4_F)""
IL_0052: ldloca.s V_4 IL_0057: nop
IL_0054: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of C), C.VB$StateMachine_4_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of C), ByRef C.VB$StateMachine_4_F)"" IL_0058: leave IL_013c
IL_0059: nop IL_005d: ldarg.0
IL_005a: leave IL_013e IL_005e: ldc.i4.m1
IL_005f: ldarg.0 IL_005f: dup
IL_0060: ldc.i4.m1 IL_0060: stloc.1
IL_0061: dup IL_0061: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_0062: stloc.1 IL_0066: ldarg.0
IL_0063: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_0067: ldfld ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_0068: ldarg.0 IL_006c: stloc.3
IL_0069: ldfld ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_006d: ldarg.0
IL_006e: stloc.3 IL_006e: ldflda ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_006f: ldarg.0 IL_0073: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_0070: ldflda ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_0079: br.s IL_007b
IL_0075: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_007b: ldloca.s V_3
IL_007b: br.s IL_007d IL_007d: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of C).GetResult() As C""
IL_007d: ldloca.s V_3 IL_0082: pop
IL_007f: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of C).GetResult() As C"" IL_0083: ldloca.s V_3
IL_0084: pop IL_0085: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_0085: ldloca.s V_3 IL_008b: nop
IL_0087: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_008c: ldarg.0
IL_008d: nop IL_008d: ldfld ""C.VB$StateMachine_4_F.$VB$Me As C""
IL_008e: ldarg.0 IL_0092: callvirt ""Function C.A2() As System.Threading.Tasks.Task(Of Integer)""
IL_008f: ldfld ""C.VB$StateMachine_4_F.$VB$Me As C"" IL_0097: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0094: callvirt ""Function C.A2() As System.Threading.Tasks.Task(Of Integer)"" IL_009c: stloc.s V_5
IL_0099: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_009e: ldloca.s V_5
IL_009e: stloc.s V_5 IL_00a0: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean""
IL_00a0: ldloca.s V_5 IL_00a5: brtrue.s IL_00ec
IL_00a2: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean"" IL_00a7: ldarg.0
IL_00a7: brtrue.s IL_00ee IL_00a8: ldc.i4.1
IL_00a9: ldarg.0 IL_00a9: dup
IL_00aa: ldc.i4.1 IL_00aa: stloc.1
IL_00ab: dup IL_00ab: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_00ac: stloc.1 IL_00b0: ldarg.0
IL_00ad: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_00b1: ldloc.s V_5
IL_00b2: ldarg.0 IL_00b3: stfld ""C.VB$StateMachine_4_F.$A1 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_00b3: ldloc.s V_5 IL_00b8: ldarg.0
IL_00b5: stfld ""C.VB$StateMachine_4_F.$A1 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_00b9: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00ba: ldarg.0 IL_00be: ldloca.s V_5
IL_00bb: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00c0: ldarg.0
IL_00c0: ldloca.s V_5 IL_00c1: stloc.s V_4
IL_00c2: ldarg.0 IL_00c3: ldloca.s V_4
IL_00c3: stloc.s V_4 IL_00c5: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_4_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_4_F)""
IL_00c5: ldloca.s V_4 IL_00ca: nop
IL_00c7: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_4_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_4_F)"" IL_00cb: leave.s IL_013c
IL_00cc: nop IL_00cd: ldarg.0
IL_00cd: leave.s IL_013e IL_00ce: ldc.i4.m1
IL_00cf: ldarg.0 IL_00cf: dup
IL_00d0: ldc.i4.m1 IL_00d0: stloc.1
IL_00d1: dup IL_00d1: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_00d2: stloc.1 IL_00d6: ldarg.0
IL_00d3: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_00d7: ldfld ""C.VB$StateMachine_4_F.$A1 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_00d8: ldarg.0 IL_00dc: stloc.s V_5
IL_00d9: ldfld ""C.VB$StateMachine_4_F.$A1 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_00de: ldarg.0
IL_00de: stloc.s V_5 IL_00df: ldflda ""C.VB$StateMachine_4_F.$A1 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_00e0: ldarg.0 IL_00e4: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_00e1: ldflda ""C.VB$StateMachine_4_F.$A1 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_00ea: br.s IL_00ec
IL_00e6: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_00ec: ldloca.s V_5
IL_00ec: br.s IL_00ee IL_00ee: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer""
IL_00ee: ldloca.s V_5 IL_00f3: pop
IL_00f0: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer"" IL_00f4: ldloca.s V_5
IL_00f5: pop IL_00f6: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_00f6: ldloca.s V_5 IL_00fc: ldc.i4.1
IL_00f8: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_00fd: stloc.0
IL_00fe: ldc.i4.1 IL_00fe: leave.s IL_0125
IL_00ff: stloc.0
IL_0100: leave.s IL_0127
} }
catch System.Exception catch System.Exception
{ {
IL_0102: dup IL_0100: dup
IL_0103: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_0101: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0108: stloc.s V_6 IL_0106: stloc.s V_6
IL_010a: ldarg.0 IL_0108: ldarg.0
IL_010b: ldc.i4.s -2 IL_0109: ldc.i4.s -2
IL_010d: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_010b: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_0112: ldarg.0 IL_0110: ldarg.0
IL_0113: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_0111: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0118: ldloc.s V_6 IL_0116: ldloc.s V_6
IL_011a: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_0118: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_011f: nop IL_011d: nop
IL_0120: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_011e: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_0125: leave.s IL_013e IL_0123: leave.s IL_013c
} }
IL_0127: ldarg.0 IL_0125: ldarg.0
IL_0128: ldc.i4.s -2 IL_0126: ldc.i4.s -2
IL_012a: dup IL_0128: dup
IL_012b: stloc.1 IL_0129: stloc.1
IL_012c: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_012a: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_0131: ldarg.0 IL_012f: ldarg.0
IL_0132: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_0130: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0137: ldloc.0 IL_0135: ldloc.0
IL_0138: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_0136: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_013d: nop IL_013b: nop
IL_013e: ret IL_013c: ret
} }
") ")
...@@ -3682,7 +3646,7 @@ End Class ...@@ -3682,7 +3646,7 @@ End Class
diff2.VerifyIL("C.VB$StateMachine_4_F.MoveNext()", " diff2.VerifyIL("C.VB$StateMachine_4_F.MoveNext()", "
{ {
// Code size 319 (0x13f) // Code size 317 (0x13d)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -3701,130 +3665,128 @@ End Class ...@@ -3701,130 +3665,128 @@ End Class
IL_000a: br.s IL_000c IL_000a: br.s IL_000c
IL_000c: ldloc.1 IL_000c: ldloc.1
IL_000d: ldc.i4.1 IL_000d: ldc.i4.1
IL_000e: beq.s IL_0015 IL_000e: beq.s IL_0014
IL_0010: br.s IL_001b IL_0010: br.s IL_0019
IL_0012: nop IL_0012: br.s IL_005d
IL_0013: br.s IL_005f IL_0014: br IL_00cd
IL_0015: nop IL_0019: nop
IL_0016: br IL_00cf IL_001a: nop
IL_001b: nop IL_001b: ldarg.0
IL_001c: nop IL_001c: ldfld ""C.VB$StateMachine_4_F.$VB$Me As C""
IL_001d: ldarg.0 IL_0021: callvirt ""Function C.A1() As System.Threading.Tasks.Task(Of Boolean)""
IL_001e: ldfld ""C.VB$StateMachine_4_F.$VB$Me As C"" IL_0026: callvirt ""Function System.Threading.Tasks.Task(Of Boolean).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)""
IL_0023: callvirt ""Function C.A1() As System.Threading.Tasks.Task(Of Boolean)"" IL_002b: stloc.3
IL_0028: callvirt ""Function System.Threading.Tasks.Task(Of Boolean).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)"" IL_002c: ldloca.s V_3
IL_002d: stloc.3 IL_002e: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Boolean).get_IsCompleted() As Boolean""
IL_002e: ldloca.s V_3 IL_0033: brtrue.s IL_007b
IL_0030: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Boolean).get_IsCompleted() As Boolean"" IL_0035: ldarg.0
IL_0035: brtrue.s IL_007d IL_0036: ldc.i4.0
IL_0037: ldarg.0 IL_0037: dup
IL_0038: ldc.i4.0 IL_0038: stloc.1
IL_0039: dup IL_0039: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_003a: stloc.1 IL_003e: ldarg.0
IL_003b: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_003f: ldloc.3
IL_0040: ldarg.0 IL_0040: stfld ""C.VB$StateMachine_4_F.$A3 As System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)""
IL_0041: ldloc.3 IL_0045: ldarg.0
IL_0042: stfld ""C.VB$StateMachine_4_F.$A3 As System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)"" IL_0046: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0047: ldarg.0 IL_004b: ldloca.s V_3
IL_0048: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_004d: ldarg.0
IL_004d: ldloca.s V_3 IL_004e: stloc.s V_4
IL_004f: ldarg.0 IL_0050: ldloca.s V_4
IL_0050: stloc.s V_4 IL_0052: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Boolean), C.VB$StateMachine_4_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Boolean), ByRef C.VB$StateMachine_4_F)""
IL_0052: ldloca.s V_4 IL_0057: nop
IL_0054: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Boolean), C.VB$StateMachine_4_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Boolean), ByRef C.VB$StateMachine_4_F)"" IL_0058: leave IL_013c
IL_0059: nop IL_005d: ldarg.0
IL_005a: leave IL_013e IL_005e: ldc.i4.m1
IL_005f: ldarg.0 IL_005f: dup
IL_0060: ldc.i4.m1 IL_0060: stloc.1
IL_0061: dup IL_0061: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_0062: stloc.1 IL_0066: ldarg.0
IL_0063: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_0067: ldfld ""C.VB$StateMachine_4_F.$A3 As System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)""
IL_0068: ldarg.0 IL_006c: stloc.3
IL_0069: ldfld ""C.VB$StateMachine_4_F.$A3 As System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)"" IL_006d: ldarg.0
IL_006e: stloc.3 IL_006e: ldflda ""C.VB$StateMachine_4_F.$A3 As System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)""
IL_006f: ldarg.0 IL_0073: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)""
IL_0070: ldflda ""C.VB$StateMachine_4_F.$A3 As System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)"" IL_0079: br.s IL_007b
IL_0075: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)"" IL_007b: ldloca.s V_3
IL_007b: br.s IL_007d IL_007d: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Boolean).GetResult() As Boolean""
IL_007d: ldloca.s V_3 IL_0082: pop
IL_007f: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Boolean).GetResult() As Boolean"" IL_0083: ldloca.s V_3
IL_0084: pop IL_0085: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)""
IL_0085: ldloca.s V_3 IL_008b: nop
IL_0087: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Boolean)"" IL_008c: ldarg.0
IL_008d: nop IL_008d: ldfld ""C.VB$StateMachine_4_F.$VB$Me As C""
IL_008e: ldarg.0 IL_0092: callvirt ""Function C.A3() As System.Threading.Tasks.Task(Of C)""
IL_008f: ldfld ""C.VB$StateMachine_4_F.$VB$Me As C"" IL_0097: callvirt ""Function System.Threading.Tasks.Task(Of C).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_0094: callvirt ""Function C.A3() As System.Threading.Tasks.Task(Of C)"" IL_009c: stloc.s V_5
IL_0099: callvirt ""Function System.Threading.Tasks.Task(Of C).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_009e: ldloca.s V_5
IL_009e: stloc.s V_5 IL_00a0: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of C).get_IsCompleted() As Boolean""
IL_00a0: ldloca.s V_5 IL_00a5: brtrue.s IL_00ec
IL_00a2: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of C).get_IsCompleted() As Boolean"" IL_00a7: ldarg.0
IL_00a7: brtrue.s IL_00ee IL_00a8: ldc.i4.1
IL_00a9: ldarg.0 IL_00a9: dup
IL_00aa: ldc.i4.1 IL_00aa: stloc.1
IL_00ab: dup IL_00ab: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_00ac: stloc.1 IL_00b0: ldarg.0
IL_00ad: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_00b1: ldloc.s V_5
IL_00b2: ldarg.0 IL_00b3: stfld ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_00b3: ldloc.s V_5 IL_00b8: ldarg.0
IL_00b5: stfld ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_00b9: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00ba: ldarg.0 IL_00be: ldloca.s V_5
IL_00bb: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00c0: ldarg.0
IL_00c0: ldloca.s V_5 IL_00c1: stloc.s V_4
IL_00c2: ldarg.0 IL_00c3: ldloca.s V_4
IL_00c3: stloc.s V_4 IL_00c5: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of C), C.VB$StateMachine_4_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of C), ByRef C.VB$StateMachine_4_F)""
IL_00c5: ldloca.s V_4 IL_00ca: nop
IL_00c7: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of C), C.VB$StateMachine_4_F)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of C), ByRef C.VB$StateMachine_4_F)"" IL_00cb: leave.s IL_013c
IL_00cc: nop IL_00cd: ldarg.0
IL_00cd: leave.s IL_013e IL_00ce: ldc.i4.m1
IL_00cf: ldarg.0 IL_00cf: dup
IL_00d0: ldc.i4.m1 IL_00d0: stloc.1
IL_00d1: dup IL_00d1: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_00d2: stloc.1 IL_00d6: ldarg.0
IL_00d3: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_00d7: ldfld ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_00d8: ldarg.0 IL_00dc: stloc.s V_5
IL_00d9: ldfld ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_00de: ldarg.0
IL_00de: stloc.s V_5 IL_00df: ldflda ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_00e0: ldarg.0 IL_00e4: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_00e1: ldflda ""C.VB$StateMachine_4_F.$A2 As System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_00ea: br.s IL_00ec
IL_00e6: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_00ec: ldloca.s V_5
IL_00ec: br.s IL_00ee IL_00ee: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of C).GetResult() As C""
IL_00ee: ldloca.s V_5 IL_00f3: pop
IL_00f0: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of C).GetResult() As C"" IL_00f4: ldloca.s V_5
IL_00f5: pop IL_00f6: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of C)""
IL_00f6: ldloca.s V_5 IL_00fc: ldc.i4.1
IL_00f8: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of C)"" IL_00fd: stloc.0
IL_00fe: ldc.i4.1 IL_00fe: leave.s IL_0125
IL_00ff: stloc.0
IL_0100: leave.s IL_0127
} }
catch System.Exception catch System.Exception
{ {
IL_0102: dup IL_0100: dup
IL_0103: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_0101: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0108: stloc.s V_6 IL_0106: stloc.s V_6
IL_010a: ldarg.0 IL_0108: ldarg.0
IL_010b: ldc.i4.s -2 IL_0109: ldc.i4.s -2
IL_010d: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_010b: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_0112: ldarg.0 IL_0110: ldarg.0
IL_0113: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_0111: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0118: ldloc.s V_6 IL_0116: ldloc.s V_6
IL_011a: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_0118: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_011f: nop IL_011d: nop
IL_0120: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_011e: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_0125: leave.s IL_013e IL_0123: leave.s IL_013c
} }
IL_0127: ldarg.0 IL_0125: ldarg.0
IL_0128: ldc.i4.s -2 IL_0126: ldc.i4.s -2
IL_012a: dup IL_0128: dup
IL_012b: stloc.1 IL_0129: stloc.1
IL_012c: stfld ""C.VB$StateMachine_4_F.$State As Integer"" IL_012a: stfld ""C.VB$StateMachine_4_F.$State As Integer""
IL_0131: ldarg.0 IL_012f: ldarg.0
IL_0132: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_0130: ldflda ""C.VB$StateMachine_4_F.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0137: ldloc.0 IL_0135: ldloc.0
IL_0138: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_0136: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_013d: nop IL_013b: nop
IL_013e: ret IL_013c: ret
} }
") ")
......
...@@ -586,7 +586,7 @@ End Class ...@@ -586,7 +586,7 @@ End Class
Dim v0 = CompileAndVerify(compilation:=compilation0) Dim v0 = CompileAndVerify(compilation:=compilation0)
v0.VerifyIL("C.VB$StateMachine_2_M.MoveNext()", " v0.VerifyIL("C.VB$StateMachine_2_M.MoveNext()", "
{ {
// Code size 198 (0xc6) // Code size 192 (0xc0)
.maxstack 3 .maxstack 3
.locals init (Boolean V_0, .locals init (Boolean V_0,
Integer V_1) Integer V_1)
...@@ -596,108 +596,102 @@ End Class ...@@ -596,108 +596,102 @@ End Class
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: switch ( IL_0008: switch (
IL_001f, IL_001f,
IL_0022, IL_0021,
IL_0022, IL_0021,
IL_0025) IL_0023)
IL_001d: br.s IL_002b IL_001d: br.s IL_0028
IL_001f: nop IL_001f: br.s IL_002a
IL_0020: br.s IL_002d IL_0021: br.s IL_0046
IL_0022: nop IL_0023: br IL_00b3
IL_0023: br.s IL_004a IL_0028: ldc.i4.0
IL_0025: nop IL_0029: ret
IL_0026: br IL_00b9 IL_002a: ldarg.0
IL_002b: ldc.i4.0 IL_002b: ldc.i4.m1
IL_002c: ret IL_002c: dup
IL_002d: ldarg.0 IL_002d: stloc.1
IL_002e: ldc.i4.m1 IL_002e: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_002f: dup IL_0033: nop
IL_0030: stloc.1 IL_0034: nop
IL_0031: stfld ""C.VB$StateMachine_2_M.$State As Integer"" IL_0035: ldarg.0
IL_0036: nop IL_0036: ldarg.0
IL_0037: nop IL_0037: ldfld ""C.VB$StateMachine_2_M.$VB$Me As C""
IL_0038: nop IL_003c: callvirt ""Function C.F() As System.IDisposable""
IL_0039: ldarg.0 IL_0041: stfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable""
IL_003a: ldarg.0 IL_0046: nop
IL_003b: ldfld ""C.VB$StateMachine_2_M.$VB$Me As C""
IL_0040: callvirt ""Function C.F() As System.IDisposable""
IL_0045: stfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable""
IL_004a: nop
.try .try
{ {
IL_004b: ldloc.1 IL_0047: ldloc.1
IL_004c: ldc.i4.1 IL_0048: ldc.i4.1
IL_004d: beq.s IL_0057 IL_0049: beq.s IL_0053
IL_004f: br.s IL_0051 IL_004b: br.s IL_004d
IL_0051: ldloc.1 IL_004d: ldloc.1
IL_0052: ldc.i4.2 IL_004e: ldc.i4.2
IL_0053: beq.s IL_005a IL_004f: beq.s IL_0055
IL_0055: br.s IL_005d IL_0051: br.s IL_0057
IL_0057: nop IL_0053: br.s IL_007a
IL_0058: br.s IL_0080 IL_0055: br.s IL_0059
IL_005a: nop IL_0057: br.s IL_0066
IL_005b: br.s IL_005f IL_0059: ldarg.0
IL_005d: br.s IL_006c IL_005a: ldc.i4.m1
IL_005f: ldarg.0 IL_005b: dup
IL_0060: ldc.i4.m1 IL_005c: stloc.1
IL_0061: dup IL_005d: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_0062: stloc.1 IL_0062: ldc.i4.1
IL_0063: stfld ""C.VB$StateMachine_2_M.$State As Integer"" IL_0063: stloc.0
IL_0068: ldc.i4.1 IL_0064: leave.s IL_00be
IL_0069: stloc.0 IL_0066: ldarg.0
IL_006a: leave.s IL_00c4 IL_0067: ldc.i4.1
IL_006c: ldarg.0 IL_0068: stfld ""C.VB$StateMachine_2_M.$Current As Integer""
IL_006d: ldc.i4.1 IL_006d: ldarg.0
IL_006e: stfld ""C.VB$StateMachine_2_M.$Current As Integer"" IL_006e: ldc.i4.1
IL_0073: ldarg.0 IL_006f: dup
IL_0074: ldc.i4.1 IL_0070: stloc.1
IL_0075: dup IL_0071: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_0076: stloc.1 IL_0076: ldc.i4.1
IL_0077: stfld ""C.VB$StateMachine_2_M.$State As Integer"" IL_0077: stloc.0
IL_007c: ldc.i4.1 IL_0078: leave.s IL_00be
IL_007d: stloc.0 IL_007a: ldarg.0
IL_007e: leave.s IL_00c4 IL_007b: ldc.i4.m1
IL_0080: ldarg.0 IL_007c: dup
IL_0081: ldc.i4.m1 IL_007d: stloc.1
IL_0082: dup IL_007e: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_0083: stloc.1 IL_0083: leave.s IL_00a1
IL_0084: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_0089: leave.s IL_00a7
} }
finally finally
{ {
IL_008b: ldloc.1 IL_0085: ldloc.1
IL_008c: ldc.i4.0 IL_0086: ldc.i4.0
IL_008d: bge.s IL_00a6 IL_0087: bge.s IL_00a0
IL_008f: nop IL_0089: nop
IL_0090: ldarg.0 IL_008a: ldarg.0
IL_0091: ldfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable"" IL_008b: ldfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable""
IL_0096: brfalse.s IL_00a4 IL_0090: brfalse.s IL_009e
IL_0098: ldarg.0 IL_0092: ldarg.0
IL_0099: ldfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable"" IL_0093: ldfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable""
IL_009e: callvirt ""Sub System.IDisposable.Dispose()"" IL_0098: callvirt ""Sub System.IDisposable.Dispose()""
IL_00a3: nop IL_009d: nop
IL_00a4: br.s IL_00a6 IL_009e: br.s IL_00a0
IL_00a6: endfinally IL_00a0: endfinally
} }
IL_00a7: ldarg.0 IL_00a1: ldarg.0
IL_00a8: ldc.i4.2 IL_00a2: ldc.i4.2
IL_00a9: stfld ""C.VB$StateMachine_2_M.$Current As Integer"" IL_00a3: stfld ""C.VB$StateMachine_2_M.$Current As Integer""
IL_00ae: ldarg.0 IL_00a8: ldarg.0
IL_00af: ldc.i4.3 IL_00a9: ldc.i4.3
IL_00b0: dup IL_00aa: dup
IL_00b1: stloc.1 IL_00ab: stloc.1
IL_00b2: stfld ""C.VB$StateMachine_2_M.$State As Integer"" IL_00ac: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_00b7: ldc.i4.1 IL_00b1: ldc.i4.1
IL_00b8: ret IL_00b2: ret
IL_00b9: ldarg.0 IL_00b3: ldarg.0
IL_00ba: ldc.i4.m1 IL_00b4: ldc.i4.m1
IL_00bb: dup IL_00b5: dup
IL_00bc: stloc.1 IL_00b6: stloc.1
IL_00bd: stfld ""C.VB$StateMachine_2_M.$State As Integer"" IL_00b7: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_00c2: ldc.i4.0 IL_00bc: ldc.i4.0
IL_00c3: ret IL_00bd: ret
IL_00c4: ldloc.0 IL_00be: ldloc.0
IL_00c5: ret IL_00bf: ret
} }
") ")
v0.VerifyPdb("C+VB$StateMachine_2_M.MoveNext", " v0.VerifyPdb("C+VB$StateMachine_2_M.MoveNext", "
...@@ -715,20 +709,19 @@ End Class ...@@ -715,20 +709,19 @@ End Class
</customDebugInfo> </customDebugInfo>
<sequencePoints> <sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" /> <entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x36"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""53"" document=""1"" /> <entry offset=""0x33"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""53"" document=""1"" />
<entry offset=""0x37"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""53"" document=""1"" /> <entry offset=""0x34"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""18"" document=""1"" />
<entry offset=""0x38"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""18"" document=""1"" /> <entry offset=""0x46"" hidden=""true"" document=""1"" />
<entry offset=""0x4a"" hidden=""true"" document=""1"" /> <entry offset=""0x47"" hidden=""true"" document=""1"" />
<entry offset=""0x4b"" hidden=""true"" document=""1"" /> <entry offset=""0x66"" startLine=""10"" startColumn=""13"" endLine=""10"" endColumn=""20"" document=""1"" />
<entry offset=""0x6c"" startLine=""10"" startColumn=""13"" endLine=""10"" endColumn=""20"" document=""1"" /> <entry offset=""0x83"" hidden=""true"" document=""1"" />
<entry offset=""0x89"" hidden=""true"" document=""1"" /> <entry offset=""0x85"" hidden=""true"" document=""1"" />
<entry offset=""0x8b"" hidden=""true"" document=""1"" /> <entry offset=""0x89"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""18"" document=""1"" />
<entry offset=""0x8f"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""18"" document=""1"" /> <entry offset=""0xa0"" hidden=""true"" document=""1"" />
<entry offset=""0xa6"" hidden=""true"" document=""1"" /> <entry offset=""0xa1"" startLine=""12"" startColumn=""9"" endLine=""12"" endColumn=""16"" document=""1"" />
<entry offset=""0xa7"" startLine=""12"" startColumn=""9"" endLine=""12"" endColumn=""16"" document=""1"" /> <entry offset=""0xbc"" startLine=""13"" startColumn=""5"" endLine=""13"" endColumn=""17"" document=""1"" />
<entry offset=""0xc2"" startLine=""13"" startColumn=""5"" endLine=""13"" endColumn=""17"" document=""1"" />
</sequencePoints> </sequencePoints>
<scope startOffset=""0x0"" endOffset=""0xc6""> <scope startOffset=""0x0"" endOffset=""0xc0"">
<importsforward declaringType=""C"" methodName=""F"" /> <importsforward declaringType=""C"" methodName=""F"" />
</scope> </scope>
</method> </method>
...@@ -765,7 +758,7 @@ End Class ...@@ -765,7 +758,7 @@ End Class
Dim v0 = CompileAndVerify(compilation:=compilation0) Dim v0 = CompileAndVerify(compilation:=compilation0)
v0.VerifyIL("C.VB$StateMachine_2_M.MoveNext()", " v0.VerifyIL("C.VB$StateMachine_2_M.MoveNext()", "
{ {
// Code size 235 (0xeb) // Code size 234 (0xea)
.maxstack 3 .maxstack 3
.locals init (Integer V_0, .locals init (Integer V_0,
Integer V_1, Integer V_1,
...@@ -780,109 +773,108 @@ End Class ...@@ -780,109 +773,108 @@ End Class
{ {
IL_0007: ldloc.1 IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000f IL_000a: br.s IL_000e
IL_000c: nop IL_000c: br.s IL_007b
IL_000d: br.s IL_007c IL_000e: nop
IL_000f: nop IL_000f: nop
IL_0010: nop IL_0010: ldarg.0
IL_0011: ldarg.0 IL_0011: ldarg.0
IL_0012: ldarg.0 IL_0012: ldfld ""C.VB$StateMachine_2_M.$VB$Me As C""
IL_0013: ldfld ""C.VB$StateMachine_2_M.$VB$Me As C"" IL_0017: callvirt ""Function C.F() As System.IDisposable""
IL_0018: callvirt ""Function C.F() As System.IDisposable"" IL_001c: stfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable""
IL_001d: stfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable""
.try .try
{ {
IL_0022: leave.s IL_0040 IL_0021: leave.s IL_003f
} }
finally finally
{ {
IL_0024: ldloc.1 IL_0023: ldloc.1
IL_0025: ldc.i4.0 IL_0024: ldc.i4.0
IL_0026: bge.s IL_003f IL_0025: bge.s IL_003e
IL_0028: nop IL_0027: nop
IL_0029: ldarg.0 IL_0028: ldarg.0
IL_002a: ldfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable"" IL_0029: ldfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable""
IL_002f: brfalse.s IL_003d IL_002e: brfalse.s IL_003c
IL_0031: ldarg.0 IL_0030: ldarg.0
IL_0032: ldfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable"" IL_0031: ldfld ""C.VB$StateMachine_2_M.$S0 As System.IDisposable""
IL_0037: callvirt ""Sub System.IDisposable.Dispose()"" IL_0036: callvirt ""Sub System.IDisposable.Dispose()""
IL_003c: nop IL_003b: nop
IL_003d: br.s IL_003f IL_003c: br.s IL_003e
IL_003f: endfinally IL_003e: endfinally
} }
IL_0040: nop IL_003f: nop
IL_0041: ldc.i4.s 10 IL_0040: ldc.i4.s 10
IL_0043: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)"" IL_0042: call ""Function System.Threading.Tasks.Task.FromResult(Of Integer)(Integer) As System.Threading.Tasks.Task(Of Integer)""
IL_0048: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0047: callvirt ""Function System.Threading.Tasks.Task(Of Integer).GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_004d: stloc.3 IL_004c: stloc.3
IL_004e: ldloca.s V_3 IL_004d: ldloca.s V_3
IL_0050: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean"" IL_004f: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).get_IsCompleted() As Boolean""
IL_0055: brtrue.s IL_009a IL_0054: brtrue.s IL_0099
IL_0057: ldarg.0 IL_0056: ldarg.0
IL_0058: ldc.i4.0 IL_0057: ldc.i4.0
IL_0059: dup IL_0058: dup
IL_005a: stloc.1 IL_0059: stloc.1
IL_005b: stfld ""C.VB$StateMachine_2_M.$State As Integer"" IL_005a: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_0060: ldarg.0 IL_005f: ldarg.0
IL_0061: ldloc.3 IL_0060: ldloc.3
IL_0062: stfld ""C.VB$StateMachine_2_M.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0061: stfld ""C.VB$StateMachine_2_M.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0067: ldarg.0 IL_0066: ldarg.0
IL_0068: ldflda ""C.VB$StateMachine_2_M.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_0067: ldflda ""C.VB$StateMachine_2_M.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_006d: ldloca.s V_3 IL_006c: ldloca.s V_3
IL_006f: ldarg.0 IL_006e: ldarg.0
IL_0070: stloc.s V_4 IL_006f: stloc.s V_4
IL_0072: ldloca.s V_4 IL_0071: ldloca.s V_4
IL_0074: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_2_M)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_2_M)"" IL_0073: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter(Of Integer), C.VB$StateMachine_2_M)(ByRef System.Runtime.CompilerServices.TaskAwaiter(Of Integer), ByRef C.VB$StateMachine_2_M)""
IL_0079: nop IL_0078: nop
IL_007a: leave.s IL_00ea IL_0079: leave.s IL_00e9
IL_007c: ldarg.0 IL_007b: ldarg.0
IL_007d: ldc.i4.m1 IL_007c: ldc.i4.m1
IL_007e: dup IL_007d: dup
IL_007f: stloc.1 IL_007e: stloc.1
IL_0080: stfld ""C.VB$StateMachine_2_M.$State As Integer"" IL_007f: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_0085: ldarg.0 IL_0084: ldarg.0
IL_0086: ldfld ""C.VB$StateMachine_2_M.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0085: ldfld ""C.VB$StateMachine_2_M.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_008b: stloc.3 IL_008a: stloc.3
IL_008c: ldarg.0 IL_008b: ldarg.0
IL_008d: ldflda ""C.VB$StateMachine_2_M.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_008c: ldflda ""C.VB$StateMachine_2_M.$A0 As System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0092: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_0091: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_0098: br.s IL_009a IL_0097: br.s IL_0099
IL_009a: ldloca.s V_3 IL_0099: ldloca.s V_3
IL_009c: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer"" IL_009b: call ""Function System.Runtime.CompilerServices.TaskAwaiter(Of Integer).GetResult() As Integer""
IL_00a1: pop IL_00a0: pop
IL_00a2: ldloca.s V_3 IL_00a1: ldloca.s V_3
IL_00a4: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)"" IL_00a3: initobj ""System.Runtime.CompilerServices.TaskAwaiter(Of Integer)""
IL_00aa: ldc.i4.2 IL_00a9: ldc.i4.2
IL_00ab: stloc.0 IL_00aa: stloc.0
IL_00ac: leave.s IL_00d3 IL_00ab: leave.s IL_00d2
} }
catch System.Exception catch System.Exception
{ {
IL_00ae: dup IL_00ad: dup
IL_00af: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)"" IL_00ae: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_00b4: stloc.s V_5 IL_00b3: stloc.s V_5
IL_00b6: ldarg.0 IL_00b5: ldarg.0
IL_00b7: ldc.i4.s -2 IL_00b6: ldc.i4.s -2
IL_00b9: stfld ""C.VB$StateMachine_2_M.$State As Integer"" IL_00b8: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_00be: ldarg.0 IL_00bd: ldarg.0
IL_00bf: ldflda ""C.VB$StateMachine_2_M.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00be: ldflda ""C.VB$StateMachine_2_M.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00c4: ldloc.s V_5 IL_00c3: ldloc.s V_5
IL_00c6: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)"" IL_00c5: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_00cb: nop IL_00ca: nop
IL_00cc: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()"" IL_00cb: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_00d1: leave.s IL_00ea IL_00d0: leave.s IL_00e9
} }
IL_00d3: ldarg.0 IL_00d2: ldarg.0
IL_00d4: ldc.i4.s -2 IL_00d3: ldc.i4.s -2
IL_00d6: dup IL_00d5: dup
IL_00d7: stloc.1 IL_00d6: stloc.1
IL_00d8: stfld ""C.VB$StateMachine_2_M.$State As Integer"" IL_00d7: stfld ""C.VB$StateMachine_2_M.$State As Integer""
IL_00dd: ldarg.0 IL_00dc: ldarg.0
IL_00de: ldflda ""C.VB$StateMachine_2_M.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)"" IL_00dd: ldflda ""C.VB$StateMachine_2_M.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00e3: ldloc.0 IL_00e2: ldloc.0
IL_00e4: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)"" IL_00e3: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00e9: nop IL_00e8: nop
IL_00ea: ret IL_00e9: ret
} }
") ")
...@@ -906,26 +898,26 @@ End Class ...@@ -906,26 +898,26 @@ End Class
<sequencePoints> <sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" /> <entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" /> <entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0xf"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""43"" document=""1"" /> <entry offset=""0xe"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""43"" document=""1"" />
<entry offset=""0x10"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""18"" document=""1"" /> <entry offset=""0xf"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""18"" document=""1"" />
<entry offset=""0x22"" hidden=""true"" document=""1"" /> <entry offset=""0x21"" hidden=""true"" document=""1"" />
<entry offset=""0x24"" hidden=""true"" document=""1"" /> <entry offset=""0x23"" hidden=""true"" document=""1"" />
<entry offset=""0x28"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""18"" document=""1"" /> <entry offset=""0x27"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""18"" document=""1"" />
<entry offset=""0x3f"" hidden=""true"" document=""1"" /> <entry offset=""0x3e"" hidden=""true"" document=""1"" />
<entry offset=""0x40"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""34"" document=""1"" /> <entry offset=""0x3f"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""34"" document=""1"" />
<entry offset=""0x4e"" hidden=""true"" document=""1"" /> <entry offset=""0x4d"" hidden=""true"" document=""1"" />
<entry offset=""0xaa"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""17"" document=""1"" /> <entry offset=""0xa9"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""17"" document=""1"" />
<entry offset=""0xae"" hidden=""true"" document=""1"" /> <entry offset=""0xad"" hidden=""true"" document=""1"" />
<entry offset=""0xb6"" hidden=""true"" document=""1"" /> <entry offset=""0xb5"" hidden=""true"" document=""1"" />
<entry offset=""0xd3"" startLine=""12"" startColumn=""5"" endLine=""12"" endColumn=""17"" document=""1"" /> <entry offset=""0xd2"" startLine=""12"" startColumn=""5"" endLine=""12"" endColumn=""17"" document=""1"" />
<entry offset=""0xdd"" hidden=""true"" document=""1"" /> <entry offset=""0xdc"" hidden=""true"" document=""1"" />
</sequencePoints> </sequencePoints>
<scope startOffset=""0x0"" endOffset=""0xeb""> <scope startOffset=""0x0"" endOffset=""0xea"">
<importsforward declaringType=""C"" methodName=""F"" /> <importsforward declaringType=""C"" methodName=""F"" />
</scope> </scope>
<asyncInfo> <asyncInfo>
<kickoffMethod declaringType=""C"" methodName=""M"" /> <kickoffMethod declaringType=""C"" methodName=""M"" />
<await yield=""0x60"" resume=""0x7c"" declaringType=""C+VB$StateMachine_2_M"" methodName=""MoveNext"" /> <await yield=""0x5f"" resume=""0x7b"" declaringType=""C+VB$StateMachine_2_M"" methodName=""MoveNext"" />
</asyncInfo> </asyncInfo>
</method> </method>
</methods> </methods>
......
...@@ -7,6 +7,162 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.PDB ...@@ -7,6 +7,162 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.PDB
Public Class PDBAsyncTests Public Class PDBAsyncTests
Inherits BasicTestBase Inherits BasicTestBase
<WorkItem(1085911)>
<Fact>
Public Sub SimpleAsyncMethod()
Dim source =
<compilation>
<file>
Imports System
Imports System.Threading.Tasks
Class C
Shared Async Function M() As Task(Of Integer)
Await Task.Delay(1)
Return 1
End Function
End Class
</file>
</compilation>
Dim v = CompileAndVerify(source, LatestReferences, options:=TestOptions.DebugDll)
v.VerifyIL("C.VB$StateMachine_1_M.MoveNext", "
{
// Code size 185 (0xb9)
.maxstack 3
.locals init (Integer V_0,
Integer V_1,
System.Threading.Tasks.Task(Of Integer) V_2,
System.Runtime.CompilerServices.TaskAwaiter V_3,
C.VB$StateMachine_1_M V_4,
System.Exception V_5)
~IL_0000: ldarg.0
IL_0001: ldfld ""C.VB$StateMachine_1_M.$State As Integer""
IL_0006: stloc.1
.try
{
~IL_0007: ldloc.1
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000e
IL_000c: br.s IL_004a
-IL_000e: nop
-IL_000f: nop
IL_0010: ldc.i4.1
IL_0011: call ""Function System.Threading.Tasks.Task.Delay(Integer) As System.Threading.Tasks.Task""
IL_0016: callvirt ""Function System.Threading.Tasks.Task.GetAwaiter() As System.Runtime.CompilerServices.TaskAwaiter""
IL_001b: stloc.3
~IL_001c: ldloca.s V_3
IL_001e: call ""Function System.Runtime.CompilerServices.TaskAwaiter.get_IsCompleted() As Boolean""
IL_0023: brtrue.s IL_0068
IL_0025: ldarg.0
IL_0026: ldc.i4.0
IL_0027: dup
IL_0028: stloc.1
IL_0029: stfld ""C.VB$StateMachine_1_M.$State As Integer""
<IL_002e: ldarg.0
IL_002f: ldloc.3
IL_0030: stfld ""C.VB$StateMachine_1_M.$A0 As System.Runtime.CompilerServices.TaskAwaiter""
IL_0035: ldarg.0
IL_0036: ldflda ""C.VB$StateMachine_1_M.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_003b: ldloca.s V_3
IL_003d: ldarg.0
IL_003e: stloc.s V_4
IL_0040: ldloca.s V_4
IL_0042: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).AwaitUnsafeOnCompleted(Of System.Runtime.CompilerServices.TaskAwaiter, C.VB$StateMachine_1_M)(ByRef System.Runtime.CompilerServices.TaskAwaiter, ByRef C.VB$StateMachine_1_M)""
IL_0047: nop
IL_0048: leave.s IL_00b8
>IL_004a: ldarg.0
IL_004b: ldc.i4.m1
IL_004c: dup
IL_004d: stloc.1
IL_004e: stfld ""C.VB$StateMachine_1_M.$State As Integer""
IL_0053: ldarg.0
IL_0054: ldfld ""C.VB$StateMachine_1_M.$A0 As System.Runtime.CompilerServices.TaskAwaiter""
IL_0059: stloc.3
IL_005a: ldarg.0
IL_005b: ldflda ""C.VB$StateMachine_1_M.$A0 As System.Runtime.CompilerServices.TaskAwaiter""
IL_0060: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_0066: br.s IL_0068
IL_0068: ldloca.s V_3
IL_006a: call ""Sub System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_006f: nop
IL_0070: ldloca.s V_3
IL_0072: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
-IL_0078: ldc.i4.1
IL_0079: stloc.0
IL_007a: leave.s IL_00a1
}
catch System.Exception
{
~IL_007c: dup
IL_007d: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.SetProjectError(System.Exception)""
IL_0082: stloc.s V_5
~IL_0084: ldarg.0
IL_0085: ldc.i4.s -2
IL_0087: stfld ""C.VB$StateMachine_1_M.$State As Integer""
IL_008c: ldarg.0
IL_008d: ldflda ""C.VB$StateMachine_1_M.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_0092: ldloc.s V_5
IL_0094: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetException(System.Exception)""
IL_0099: nop
IL_009a: call ""Sub Microsoft.VisualBasic.CompilerServices.ProjectData.ClearProjectError()""
IL_009f: leave.s IL_00b8
}
-IL_00a1: ldarg.0
IL_00a2: ldc.i4.s -2
IL_00a4: dup
IL_00a5: stloc.1
IL_00a6: stfld ""C.VB$StateMachine_1_M.$State As Integer""
~IL_00ab: ldarg.0
IL_00ac: ldflda ""C.VB$StateMachine_1_M.$Builder As System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer)""
IL_00b1: ldloc.0
IL_00b2: call ""Sub System.Runtime.CompilerServices.AsyncTaskMethodBuilder(Of Integer).SetResult(Integer)""
IL_00b7: nop
IL_00b8: ret
}", sequencePoints:="C+VB$StateMachine_1_M.MoveNext")
' NOTE: No <local> for the return variable "M".
v.VerifyPdb("C+VB$StateMachine_1_M.MoveNext",
<symbols>
<methods>
<method containingType="C+VB$StateMachine_1_M" name="MoveNext">
<customDebugInfo>
<encLocalSlotMap>
<slot kind="20" offset="-1"/>
<slot kind="27" offset="-1"/>
<slot kind="0" offset="-1"/>
<slot kind="33" offset="0"/>
<slot kind="temp"/>
<slot kind="temp"/>
</encLocalSlotMap>
</customDebugInfo>
<sequencePoints>
<entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x7" hidden="true" document="0"/>
<entry offset="0xe" startLine="5" startColumn="5" endLine="5" endColumn="50" document="0"/>
<entry offset="0xf" startLine="6" startColumn="9" endLine="6" endColumn="28" document="0"/>
<entry offset="0x1c" hidden="true" document="0"/>
<entry offset="0x78" startLine="7" startColumn="9" endLine="7" endColumn="17" document="0"/>
<entry offset="0x7c" hidden="true" document="0"/>
<entry offset="0x84" hidden="true" document="0"/>
<entry offset="0xa1" startLine="8" startColumn="5" endLine="8" endColumn="17" document="0"/>
<entry offset="0xab" hidden="true" document="0"/>
</sequencePoints>
<scope startOffset="0x0" endOffset="0xb9">
<namespace name="System" importlevel="file"/>
<namespace name="System.Threading.Tasks" importlevel="file"/>
<currentnamespace name=""/>
</scope>
<asyncInfo>
<kickoffMethod declaringType="C" methodName="M"/>
<await yield="0x2e" resume="0x4a" declaringType="C+VB$StateMachine_1_M" methodName="MoveNext"/>
</asyncInfo>
</method>
</methods>
</symbols>)
End Sub
<Fact, WorkItem(651996, "DevDiv")> <Fact, WorkItem(651996, "DevDiv")>
Public Sub TestAsync() Public Sub TestAsync()
Dim source = Dim source =
...@@ -75,21 +231,21 @@ End Module ...@@ -75,21 +231,21 @@ End Module
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="0"/> <entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x7" hidden="true" document="0"/> <entry offset="0x7" hidden="true" document="0"/>
<entry offset="0xf" startLine="11" startColumn="5" endLine="11" endColumn="68" document="0"/> <entry offset="0xe" startLine="11" startColumn="5" endLine="11" endColumn="68" document="0"/>
<entry offset="0x10" startLine="12" startColumn="9" endLine="12" endColumn="25" document="0"/> <entry offset="0xf" startLine="12" startColumn="9" endLine="12" endColumn="25" document="0"/>
<entry offset="0x20" hidden="true" document="0"/> <entry offset="0x1f" hidden="true" document="0"/>
<entry offset="0x7c" startLine="13" startColumn="9" endLine="13" endColumn="17" document="0"/> <entry offset="0x7b" startLine="13" startColumn="9" endLine="13" endColumn="17" document="0"/>
<entry offset="0x80" hidden="true" document="0"/> <entry offset="0x7f" hidden="true" document="0"/>
<entry offset="0x88" hidden="true" document="0"/> <entry offset="0x87" hidden="true" document="0"/>
<entry offset="0xa5" startLine="14" startColumn="5" endLine="14" endColumn="17" document="0"/> <entry offset="0xa4" startLine="14" startColumn="5" endLine="14" endColumn="17" document="0"/>
<entry offset="0xaf" hidden="true" document="0"/> <entry offset="0xae" hidden="true" document="0"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0xbd"> <scope startOffset="0x0" endOffset="0xbc">
<importsforward declaringType="Module1" methodName="Main" parameterNames="args"/> <importsforward declaringType="Module1" methodName="Main" parameterNames="args"/>
</scope> </scope>
<asyncInfo> <asyncInfo>
<kickoffMethod declaringType="Module1" methodName="F" parameterNames="a"/> <kickoffMethod declaringType="Module1" methodName="F" parameterNames="a"/>
<await yield="0x32" resume="0x4e" declaringType="Module1+VB$StateMachine_1_F" methodName="MoveNext"/> <await yield="0x31" resume="0x4d" declaringType="Module1+VB$StateMachine_1_F" methodName="MoveNext"/>
</asyncInfo> </asyncInfo>
</method> </method>
</methods> </methods>
...@@ -130,45 +286,45 @@ End Module ...@@ -130,45 +286,45 @@ End Module
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="0"/> <entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x7" hidden="true" document="0"/> <entry offset="0x7" hidden="true" document="0"/>
<entry offset="0x66" startLine="16" startColumn="5" endLine="16" endColumn="34" document="0"/> <entry offset="0x5d" startLine="16" startColumn="5" endLine="16" endColumn="34" document="0"/>
<entry offset="0x67" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/> <entry offset="0x5e" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/>
<entry offset="0x68" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/> <entry offset="0x5f" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/>
<entry offset="0x69" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/> <entry offset="0x60" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/>
<entry offset="0x7c" hidden="true" document="0"/> <entry offset="0x73" hidden="true" document="0"/>
<entry offset="0xe6" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/> <entry offset="0xdd" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/>
<entry offset="0xfe" hidden="true" document="0"/> <entry offset="0xf5" hidden="true" document="0"/>
<entry offset="0x183" hidden="true" document="0"/> <entry offset="0x17a" hidden="true" document="0"/>
<entry offset="0x1eb" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/> <entry offset="0x1e2" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/>
<entry offset="0x1ec" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/> <entry offset="0x1e3" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/>
<entry offset="0x1ed" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/> <entry offset="0x1e4" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/>
<entry offset="0x1ee" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/> <entry offset="0x1e5" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/>
<entry offset="0x201" hidden="true" document="0"/> <entry offset="0x1f8" hidden="true" document="0"/>
<entry offset="0x27a" hidden="true" document="0"/> <entry offset="0x271" hidden="true" document="0"/>
<entry offset="0x2f3" hidden="true" document="0"/> <entry offset="0x2ea" hidden="true" document="0"/>
<entry offset="0x35d" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/> <entry offset="0x354" startLine="17" startColumn="9" endLine="23" endColumn="34" document="0"/>
<entry offset="0x375" hidden="true" document="0"/> <entry offset="0x36c" hidden="true" document="0"/>
<entry offset="0x3f6" hidden="true" document="0"/> <entry offset="0x3ed" hidden="true" document="0"/>
<entry offset="0x475" hidden="true" document="0"/> <entry offset="0x46c" hidden="true" document="0"/>
<entry offset="0x4d1" startLine="24" startColumn="5" endLine="24" endColumn="17" document="0"/> <entry offset="0x4c8" startLine="24" startColumn="5" endLine="24" endColumn="17" document="0"/>
<entry offset="0x4d3" hidden="true" document="0"/> <entry offset="0x4ca" hidden="true" document="0"/>
<entry offset="0x4db" hidden="true" document="0"/> <entry offset="0x4d2" hidden="true" document="0"/>
<entry offset="0x4f8" startLine="24" startColumn="5" endLine="24" endColumn="17" document="0"/> <entry offset="0x4ef" startLine="24" startColumn="5" endLine="24" endColumn="17" document="0"/>
<entry offset="0x502" hidden="true" document="0"/> <entry offset="0x4f9" hidden="true" document="0"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0x50f"> <scope startOffset="0x0" endOffset="0x506">
<importsforward declaringType="Module1" methodName="Main" parameterNames="args"/> <importsforward declaringType="Module1" methodName="Main" parameterNames="args"/>
</scope> </scope>
<asyncInfo> <asyncInfo>
<kickoffMethod declaringType="Module1" methodName="Test"/> <kickoffMethod declaringType="Module1" methodName="Test"/>
<await yield="0x8e" resume="0xae" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/> <await yield="0x85" resume="0xa5" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/>
<await yield="0x110" resume="0x130" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/> <await yield="0x107" resume="0x127" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/>
<await yield="0x195" resume="0x1b4" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/> <await yield="0x18c" resume="0x1ab" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/>
<await yield="0x213" resume="0x233" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/> <await yield="0x20a" resume="0x22a" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/>
<await yield="0x28c" resume="0x2ac" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/> <await yield="0x283" resume="0x2a3" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/>
<await yield="0x305" resume="0x325" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/> <await yield="0x2fc" resume="0x31c" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/>
<await yield="0x387" resume="0x3a7" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/> <await yield="0x37e" resume="0x39e" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/>
<await yield="0x408" resume="0x427" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/> <await yield="0x3ff" resume="0x41e" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/>
<await yield="0x487" resume="0x4a3" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/> <await yield="0x47e" resume="0x49a" declaringType="Module1+VB$StateMachine_2_Test" methodName="MoveNext"/>
</asyncInfo> </asyncInfo>
</method> </method>
</methods> </methods>
...@@ -201,22 +357,22 @@ End Module ...@@ -201,22 +357,22 @@ End Module
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="0"/> <entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x7" hidden="true" document="0"/> <entry offset="0x7" hidden="true" document="0"/>
<entry offset="0xf" startLine="26" startColumn="5" endLine="26" endColumn="18" document="0"/> <entry offset="0xe" startLine="26" startColumn="5" endLine="26" endColumn="18" document="0"/>
<entry offset="0x10" startLine="27" startColumn="9" endLine="27" endColumn="25" document="0"/> <entry offset="0xf" startLine="27" startColumn="9" endLine="27" endColumn="25" document="0"/>
<entry offset="0x1f" hidden="true" document="0"/> <entry offset="0x1e" hidden="true" document="0"/>
<entry offset="0x7a" startLine="28" startColumn="5" endLine="28" endColumn="12" document="0"/> <entry offset="0x79" startLine="28" startColumn="5" endLine="28" endColumn="12" document="0"/>
<entry offset="0x7c" hidden="true" document="0"/> <entry offset="0x7b" hidden="true" document="0"/>
<entry offset="0x84" hidden="true" document="0"/> <entry offset="0x83" hidden="true" document="0"/>
<entry offset="0xa1" startLine="28" startColumn="5" endLine="28" endColumn="12" document="0"/> <entry offset="0xa0" startLine="28" startColumn="5" endLine="28" endColumn="12" document="0"/>
<entry offset="0xab" hidden="true" document="0"/> <entry offset="0xaa" hidden="true" document="0"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0xb8"> <scope startOffset="0x0" endOffset="0xb7">
<importsforward declaringType="Module1" methodName="Main" parameterNames="args"/> <importsforward declaringType="Module1" methodName="Main" parameterNames="args"/>
</scope> </scope>
<asyncInfo> <asyncInfo>
<catchHandler offset="0x7c"/> <catchHandler offset="0x7b"/>
<kickoffMethod declaringType="Module1" methodName="S"/> <kickoffMethod declaringType="Module1" methodName="S"/>
<await yield="0x31" resume="0x4c" declaringType="Module1+VB$StateMachine_3_S" methodName="MoveNext"/> <await yield="0x30" resume="0x4b" declaringType="Module1+VB$StateMachine_3_S" methodName="MoveNext"/>
</asyncInfo> </asyncInfo>
</method> </method>
</methods> </methods>
...@@ -268,31 +424,31 @@ End Class ...@@ -268,31 +424,31 @@ End Class
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="0"/> <entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x7" hidden="true" document="0"/> <entry offset="0x7" hidden="true" document="0"/>
<entry offset="0x12" startLine="5" startColumn="5" endLine="5" endColumn="50" document="0"/> <entry offset="0x11" startLine="5" startColumn="5" endLine="5" endColumn="50" document="0"/>
<entry offset="0x13" hidden="true" document="0"/> <entry offset="0x12" hidden="true" document="0"/>
<entry offset="0x1e" startLine="6" startColumn="13" endLine="6" endColumn="29" document="0"/> <entry offset="0x1d" startLine="6" startColumn="13" endLine="6" endColumn="29" document="0"/>
<entry offset="0x2a" startLine="7" startColumn="13" endLine="7" endColumn="29" document="0"/> <entry offset="0x29" startLine="7" startColumn="13" endLine="7" endColumn="29" document="0"/>
<entry offset="0x36" startLine="9" startColumn="13" endLine="9" endColumn="53" document="0"/> <entry offset="0x35" startLine="9" startColumn="13" endLine="9" endColumn="53" document="0"/>
<entry offset="0x4d" startLine="11" startColumn="9" endLine="11" endColumn="55" document="0"/> <entry offset="0x4c" startLine="11" startColumn="9" endLine="11" endColumn="55" document="0"/>
<entry offset="0x7d" hidden="true" document="0"/> <entry offset="0x7c" hidden="true" document="0"/>
<entry offset="0xdb" startLine="12" startColumn="9" endLine="12" endColumn="21" document="0"/> <entry offset="0xda" startLine="12" startColumn="9" endLine="12" endColumn="21" document="0"/>
<entry offset="0xec" startLine="13" startColumn="9" endLine="13" endColumn="21" document="0"/> <entry offset="0xeb" startLine="13" startColumn="9" endLine="13" endColumn="21" document="0"/>
<entry offset="0xfd" startLine="14" startColumn="5" endLine="14" endColumn="17" document="0"/> <entry offset="0xfc" startLine="14" startColumn="5" endLine="14" endColumn="17" document="0"/>
<entry offset="0xff" hidden="true" document="0"/> <entry offset="0xfe" hidden="true" document="0"/>
<entry offset="0x107" hidden="true" document="0"/> <entry offset="0x106" hidden="true" document="0"/>
<entry offset="0x124" startLine="14" startColumn="5" endLine="14" endColumn="17" document="0"/> <entry offset="0x123" startLine="14" startColumn="5" endLine="14" endColumn="17" document="0"/>
<entry offset="0x12e" hidden="true" document="0"/> <entry offset="0x12d" hidden="true" document="0"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0x13b"> <scope startOffset="0x0" endOffset="0x13a">
<importsforward declaringType="C+_Closure$__1-0" methodName="_Lambda$__0"/> <importsforward declaringType="C+_Closure$__1-0" methodName="_Lambda$__0"/>
<scope startOffset="0x12" endOffset="0xfe"> <scope startOffset="0x11" endOffset="0xfd">
<local name="$VB$ResumableLocal_$VB$Closure_$0" il_index="0" il_start="0x12" il_end="0xfe" attributes="0"/> <local name="$VB$ResumableLocal_$VB$Closure_$0" il_index="0" il_start="0x11" il_end="0xfd" attributes="0"/>
<local name="$VB$ResumableLocal_a$1" il_index="1" il_start="0x12" il_end="0xfe" attributes="0"/> <local name="$VB$ResumableLocal_a$1" il_index="1" il_start="0x11" il_end="0xfd" attributes="0"/>
</scope> </scope>
</scope> </scope>
<asyncInfo> <asyncInfo>
<kickoffMethod declaringType="C" methodName="Async_Lambda"/> <kickoffMethod declaringType="C" methodName="Async_Lambda"/>
<await yield="0x8f" resume="0xad" declaringType="C+VB$StateMachine_1_Async_Lambda" methodName="MoveNext"/> <await yield="0x8e" resume="0xac" declaringType="C+VB$StateMachine_1_Async_Lambda" methodName="MoveNext"/>
</asyncInfo> </asyncInfo>
</method> </method>
</methods> </methods>
...@@ -406,31 +562,31 @@ End Class ...@@ -406,31 +562,31 @@ End Class
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="0"/> <entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x7" hidden="true" document="0"/> <entry offset="0x7" hidden="true" document="0"/>
<entry offset="0xf" startLine="5" startColumn="5" endLine="5" endColumn="52" document="0"/> <entry offset="0xe" startLine="5" startColumn="5" endLine="5" endColumn="52" document="0"/>
<entry offset="0x10" startLine="6" startColumn="13" endLine="6" endColumn="29" document="0"/> <entry offset="0xf" startLine="6" startColumn="13" endLine="6" endColumn="29" document="0"/>
<entry offset="0x17" startLine="7" startColumn="13" endLine="7" endColumn="29" document="0"/> <entry offset="0x16" startLine="7" startColumn="13" endLine="7" endColumn="29" document="0"/>
<entry offset="0x1e" startLine="9" startColumn="9" endLine="9" endColumn="55" document="0"/> <entry offset="0x1d" startLine="9" startColumn="9" endLine="9" endColumn="55" document="0"/>
<entry offset="0x44" hidden="true" document="0"/> <entry offset="0x43" hidden="true" document="0"/>
<entry offset="0xa2" startLine="10" startColumn="9" endLine="10" endColumn="21" document="0"/> <entry offset="0xa1" startLine="10" startColumn="9" endLine="10" endColumn="21" document="0"/>
<entry offset="0xae" startLine="11" startColumn="9" endLine="11" endColumn="21" document="0"/> <entry offset="0xad" startLine="11" startColumn="9" endLine="11" endColumn="21" document="0"/>
<entry offset="0xba" startLine="12" startColumn="5" endLine="12" endColumn="17" document="0"/> <entry offset="0xb9" startLine="12" startColumn="5" endLine="12" endColumn="17" document="0"/>
<entry offset="0xbc" hidden="true" document="0"/> <entry offset="0xbb" hidden="true" document="0"/>
<entry offset="0xc4" hidden="true" document="0"/> <entry offset="0xc3" hidden="true" document="0"/>
<entry offset="0xe1" startLine="12" startColumn="5" endLine="12" endColumn="17" document="0"/> <entry offset="0xe0" startLine="12" startColumn="5" endLine="12" endColumn="17" document="0"/>
<entry offset="0xeb" hidden="true" document="0"/> <entry offset="0xea" hidden="true" document="0"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0xf8"> <scope startOffset="0x0" endOffset="0xf7">
<namespace name="System" importlevel="file"/> <namespace name="System" importlevel="file"/>
<namespace name="System.Threading.Tasks" importlevel="file"/> <namespace name="System.Threading.Tasks" importlevel="file"/>
<currentnamespace name=""/> <currentnamespace name=""/>
<scope startOffset="0xf" endOffset="0xbb"> <scope startOffset="0xe" endOffset="0xba">
<local name="$VB$ResumableLocal_x$0" il_index="0" il_start="0xf" il_end="0xbb" attributes="0"/> <local name="$VB$ResumableLocal_x$0" il_index="0" il_start="0xe" il_end="0xba" attributes="0"/>
<local name="$VB$ResumableLocal_y$1" il_index="1" il_start="0xf" il_end="0xbb" attributes="0"/> <local name="$VB$ResumableLocal_y$1" il_index="1" il_start="0xe" il_end="0xba" attributes="0"/>
</scope> </scope>
</scope> </scope>
<asyncInfo> <asyncInfo>
<kickoffMethod declaringType="C" methodName="Async_NoLambda"/> <kickoffMethod declaringType="C" methodName="Async_NoLambda"/>
<await yield="0x56" resume="0x74" declaringType="C+VB$StateMachine_1_Async_NoLambda" methodName="MoveNext"/> <await yield="0x55" resume="0x73" declaringType="C+VB$StateMachine_1_Async_NoLambda" methodName="MoveNext"/>
</asyncInfo> </asyncInfo>
</method> </method>
</methods> </methods>
...@@ -501,60 +657,5 @@ End Class ...@@ -501,60 +657,5 @@ End Class
</symbols>) </symbols>)
End Sub End Sub
<WorkItem(1085911)>
<Fact>
Public Sub AsyncReturnVariable()
Dim source =
<compilation>
<file>
Imports System
Imports System.Threading.Tasks
Class C
Shared Async Function M() As Task(Of Integer)
Return 1
End Function
End Class
</file>
</compilation>
Dim c = CreateCompilationWithReferences(source, references:=LatestReferences, options:=TestOptions.DebugDll)
c.AssertNoErrors()
' NOTE: No <local> for the return variable "M".
c.VerifyPdb("C+VB$StateMachine_1_M.MoveNext",
<symbols>
<methods>
<method containingType="C+VB$StateMachine_1_M" name="MoveNext">
<customDebugInfo>
<encLocalSlotMap>
<slot kind="20" offset="-1"/>
<slot kind="27" offset="-1"/>
<slot kind="0" offset="-1"/>
<slot kind="temp"/>
</encLocalSlotMap>
</customDebugInfo>
<sequencePoints>
<entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x7" startLine="5" startColumn="5" endLine="5" endColumn="50" document="0"/>
<entry offset="0x8" startLine="6" startColumn="9" endLine="6" endColumn="17" document="0"/>
<entry offset="0xc" hidden="true" document="0"/>
<entry offset="0x13" hidden="true" document="0"/>
<entry offset="0x2f" startLine="7" startColumn="5" endLine="7" endColumn="17" document="0"/>
<entry offset="0x39" hidden="true" document="0"/>
</sequencePoints>
<scope startOffset="0x0" endOffset="0x47">
<namespace name="System" importlevel="file"/>
<namespace name="System.Threading.Tasks" importlevel="file"/>
<currentnamespace name=""/>
</scope>
<asyncInfo>
<kickoffMethod declaringType="C" methodName="M"/>
</asyncInfo>
</method>
</methods>
</symbols>)
End Sub
End Class End Class
End Namespace End Namespace
\ No newline at end of file
...@@ -7,6 +7,70 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.PDB ...@@ -7,6 +7,70 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.PDB
Public Class PDBIteratorTests Public Class PDBIteratorTests
Inherits BasicTestBase Inherits BasicTestBase
<Fact, WorkItem(2736, "https://github.com/dotnet/roslyn/issues/2736")>
Public Sub SimpleIterator()
Dim source =
<compilation>
<file>
Imports System.Collections.Generic
Class C
Public Iterator Function F() As IEnumerable(Of Integer)
Yield 1
End Function
End Class
</file>
</compilation>
Dim v = CompileAndVerify(source, options:=TestOptions.DebugDll)
v.VerifyIL("C.VB$StateMachine_1_F.MoveNext", "
{
// Code size 63 (0x3f)
.maxstack 3
.locals init (Boolean V_0,
Integer V_1)
~IL_0000: ldarg.0
IL_0001: ldfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0006: stloc.1
IL_0007: ldloc.1
IL_0008: brfalse.s IL_0012
IL_000a: br.s IL_000c
IL_000c: ldloc.1
IL_000d: ldc.i4.1
IL_000e: beq.s IL_0014
IL_0010: br.s IL_0016
IL_0012: br.s IL_0018
IL_0014: br.s IL_0034
IL_0016: ldc.i4.0
IL_0017: ret
IL_0018: ldarg.0
IL_0019: ldc.i4.m1
IL_001a: dup
IL_001b: stloc.1
IL_001c: stfld ""C.VB$StateMachine_1_F.$State As Integer""
-IL_0021: nop
-IL_0022: ldarg.0
IL_0023: ldc.i4.1
IL_0024: stfld ""C.VB$StateMachine_1_F.$Current As Integer""
IL_0029: ldarg.0
IL_002a: ldc.i4.1
IL_002b: dup
IL_002c: stloc.1
IL_002d: stfld ""C.VB$StateMachine_1_F.$State As Integer""
IL_0032: ldc.i4.1
IL_0033: ret
IL_0034: ldarg.0
IL_0035: ldc.i4.m1
IL_0036: dup
IL_0037: stloc.1
IL_0038: stfld ""C.VB$StateMachine_1_F.$State As Integer""
-IL_003d: ldc.i4.0
IL_003e: ret
}
", sequencePoints:="C+VB$StateMachine_1_F.MoveNext")
End Sub
<Fact, WorkItem(651996, "DevDiv")> <Fact, WorkItem(651996, "DevDiv")>
Public Sub IteratorLambdaWithForEach() Public Sub IteratorLambdaWithForEach()
Dim source = Dim source =
...@@ -49,13 +113,12 @@ End Module ...@@ -49,13 +113,12 @@ End Module
</customDebugInfo> </customDebugInfo>
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="0"/> <entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x2f" startLine="7" startColumn="13" endLine="7" endColumn="33" document="0"/> <entry offset="0x2c" startLine="7" startColumn="13" endLine="7" endColumn="33" document="0"/>
<entry offset="0x30" startLine="7" startColumn="13" endLine="7" endColumn="33" document="0"/> <entry offset="0x2d" startLine="8" startColumn="17" endLine="8" endColumn="24" document="0"/>
<entry offset="0x31" startLine="8" startColumn="17" endLine="8" endColumn="24" document="0"/> <entry offset="0x48" startLine="9" startColumn="17" endLine="9" endColumn="24" document="0"/>
<entry offset="0x4c" startLine="9" startColumn="17" endLine="9" endColumn="24" document="0"/> <entry offset="0x68" startLine="10" startColumn="13" endLine="10" endColumn="25" document="0"/>
<entry offset="0x6c" startLine="10" startColumn="13" endLine="10" endColumn="25" document="0"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0x6e"> <scope startOffset="0x0" endOffset="0x6a">
<importsforward declaringType="Program" methodName="Main" parameterNames="args"/> <importsforward declaringType="Program" methodName="Main" parameterNames="args"/>
</scope> </scope>
</method> </method>
...@@ -118,37 +181,36 @@ End Module ...@@ -118,37 +181,36 @@ End Module
</customDebugInfo> </customDebugInfo>
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="0"/> <entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x46" startLine="12" startColumn="5" endLine="12" endColumn="55" document="0"/> <entry offset="0x41" startLine="12" startColumn="5" endLine="12" endColumn="55" document="0"/>
<entry offset="0x47" startLine="12" startColumn="5" endLine="12" endColumn="55" document="0"/> <entry offset="0x42" startLine="13" startColumn="13" endLine="13" endColumn="19" document="0"/>
<entry offset="0x48" startLine="13" startColumn="13" endLine="13" endColumn="19" document="0"/> <entry offset="0x4e" startLine="14" startColumn="9" endLine="14" endColumn="20" document="0"/>
<entry offset="0x54" startLine="14" startColumn="9" endLine="14" endColumn="20" document="0"/> <entry offset="0x58" startLine="16" startColumn="9" endLine="16" endColumn="26" document="0"/>
<entry offset="0x5e" startLine="16" startColumn="9" endLine="16" endColumn="26" document="0"/> <entry offset="0x6b" hidden="true" document="0"/>
<entry offset="0x71" hidden="true" document="0"/> <entry offset="0x80" startLine="17" startColumn="13" endLine="17" endColumn="20" document="0"/>
<entry offset="0x86" startLine="17" startColumn="13" endLine="17" endColumn="20" document="0"/> <entry offset="0xa0" startLine="18" startColumn="13" endLine="18" endColumn="20" document="0"/>
<entry offset="0xa6" startLine="18" startColumn="13" endLine="18" endColumn="20" document="0"/> <entry offset="0xc0" startLine="19" startColumn="9" endLine="19" endColumn="13" document="0"/>
<entry offset="0xc6" startLine="19" startColumn="9" endLine="19" endColumn="13" document="0"/> <entry offset="0xc1" hidden="true" document="0"/>
<entry offset="0xc7" hidden="true" document="0"/> <entry offset="0xcf" hidden="true" document="0"/>
<entry offset="0xd5" hidden="true" document="0"/> <entry offset="0xe0" hidden="true" document="0"/>
<entry offset="0xe6" hidden="true" document="0"/> <entry offset="0xe3" startLine="21" startColumn="9" endLine="21" endColumn="28" document="0"/>
<entry offset="0xe9" startLine="21" startColumn="9" endLine="21" endColumn="28" document="0"/> <entry offset="0xf5" hidden="true" document="0"/>
<entry offset="0xfb" hidden="true" document="0"/> <entry offset="0x10e" startLine="22" startColumn="13" endLine="22" endColumn="44" document="0"/>
<entry offset="0x114" startLine="22" startColumn="13" endLine="22" endColumn="44" document="0"/> <entry offset="0x133" startLine="23" startColumn="13" endLine="23" endColumn="44" document="0"/>
<entry offset="0x139" startLine="23" startColumn="13" endLine="23" endColumn="44" document="0"/> <entry offset="0x158" startLine="24" startColumn="9" endLine="24" endColumn="13" document="0"/>
<entry offset="0x15e" startLine="24" startColumn="9" endLine="24" endColumn="13" document="0"/> <entry offset="0x159" hidden="true" document="0"/>
<entry offset="0x15f" hidden="true" document="0"/> <entry offset="0x167" hidden="true" document="0"/>
<entry offset="0x16d" hidden="true" document="0"/> <entry offset="0x17b" hidden="true" document="0"/>
<entry offset="0x181" hidden="true" document="0"/> <entry offset="0x181" startLine="26" startColumn="5" endLine="26" endColumn="17" document="0"/>
<entry offset="0x187" startLine="26" startColumn="5" endLine="26" endColumn="17" document="0"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0x189"> <scope startOffset="0x0" endOffset="0x183">
<importsforward declaringType="Module1" methodName="Main"/> <importsforward declaringType="Module1" methodName="Main"/>
<scope startOffset="0x47" endOffset="0x188"> <scope startOffset="0x41" endOffset="0x182">
<local name="$VB$ResumableLocal_arr$0" il_index="0" il_start="0x47" il_end="0x188" attributes="0"/> <local name="$VB$ResumableLocal_arr$0" il_index="0" il_start="0x41" il_end="0x182" attributes="0"/>
<scope startOffset="0x73" endOffset="0xd4"> <scope startOffset="0x6d" endOffset="0xce">
<local name="$VB$ResumableLocal_x$3" il_index="3" il_start="0x73" il_end="0xd4" attributes="0"/> <local name="$VB$ResumableLocal_x$3" il_index="3" il_start="0x6d" il_end="0xce" attributes="0"/>
</scope> </scope>
<scope startOffset="0xfd" endOffset="0x16c"> <scope startOffset="0xf7" endOffset="0x166">
<local name="$VB$ResumableLocal_x$6" il_index="6" il_start="0xfd" il_end="0x16c" attributes="0"/> <local name="$VB$ResumableLocal_x$6" il_index="6" il_start="0xf7" il_end="0x166" attributes="0"/>
</scope> </scope>
</scope> </scope>
</scope> </scope>
...@@ -400,13 +462,12 @@ End Module ...@@ -400,13 +462,12 @@ End Module
</customDebugInfo> </customDebugInfo>
<sequencePoints> <sequencePoints>
<entry offset="0x0" hidden="true" document="0"/> <entry offset="0x0" hidden="true" document="0"/>
<entry offset="0x2f" startLine="12" startColumn="5" endLine="13" endColumn="55" document="0"/> <entry offset="0x2c" startLine="13" startColumn="5" endLine="13" endColumn="55" document="0"/>
<entry offset="0x30" startLine="13" startColumn="5" endLine="13" endColumn="55" document="0"/> <entry offset="0x2d" startLine="14" startColumn="9" endLine="14" endColumn="16" document="0"/>
<entry offset="0x31" startLine="14" startColumn="9" endLine="14" endColumn="16" document="0"/> <entry offset="0x48" startLine="15" startColumn="9" endLine="15" endColumn="16" document="0"/>
<entry offset="0x4c" startLine="15" startColumn="9" endLine="15" endColumn="16" document="0"/> <entry offset="0x63" startLine="16" startColumn="5" endLine="16" endColumn="17" document="0"/>
<entry offset="0x67" startLine="16" startColumn="5" endLine="16" endColumn="17" document="0"/>
</sequencePoints> </sequencePoints>
<scope startOffset="0x0" endOffset="0x69"> <scope startOffset="0x0" endOffset="0x65">
<importsforward declaringType="Module1" methodName="Main"/> <importsforward declaringType="Module1" methodName="Main"/>
</scope> </scope>
</method> </method>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册