Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
eea11615
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
eea11615
编写于
4月 08, 2019
作者:
C
Charles Stoner
提交者:
GitHub
4月 08, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Avoid optimizing goto in SyntheticBoundNodeFactory.Switch() (#34791)
上级
59e21bf2
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
4367 addition
and
3899 deletion
+4367
-3899
src/Compilers/CSharp/Portable/Lowering/SyntheticBoundNodeFactory.cs
...ers/CSharp/Portable/Lowering/SyntheticBoundNodeFactory.cs
+3
-12
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncEHTests.cs
...Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncEHTests.cs
+181
-182
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncIteratorTests.cs
...ers/CSharp/Test/Emit/CodeGen/CodeGenAsyncIteratorTests.cs
+110
-108
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncLocalsTests.cs
...ilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncLocalsTests.cs
+358
-362
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncMainTests.cs
...mpilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncMainTests.cs
+434
-0
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncSpillTests.cs
...pilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncSpillTests.cs
+116
-115
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncTests.cs
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncTests.cs
+158
-165
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAwaitForeachTests.cs
...lers/CSharp/Test/Emit/CodeGen/CodeGenAwaitForeachTests.cs
+368
-363
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAwaitUsingTests.cs
...pilers/CSharp/Test/Emit/CodeGen/CodeGenAwaitUsingTests.cs
+241
-241
src/Compilers/CSharp/Test/Emit/Emit/EditAndContinue/EditAndContinueStateMachineTests.cs
.../Emit/EditAndContinue/EditAndContinueStateMachineTests.cs
+1559
-1520
src/Compilers/CSharp/Test/Emit/Emit/EditAndContinue/LocalSlotMappingTests.cs
...p/Test/Emit/Emit/EditAndContinue/LocalSlotMappingTests.cs
+149
-146
src/Compilers/CSharp/Test/Emit/PDB/PDBAsyncTests.cs
src/Compilers/CSharp/Test/Emit/PDB/PDBAsyncTests.cs
+443
-440
src/Compilers/CSharp/Test/Emit/PDB/PDBConstantTests.cs
src/Compilers/CSharp/Test/Emit/PDB/PDBConstantTests.cs
+15
-15
src/Compilers/CSharp/Test/Emit/PDB/PDBIteratorTests.cs
src/Compilers/CSharp/Test/Emit/PDB/PDBIteratorTests.cs
+217
-215
src/Compilers/CSharp/Test/Emit/PDB/PDBTests.cs
src/Compilers/CSharp/Test/Emit/PDB/PDBTests.cs
+15
-15
未找到文件。
src/Compilers/CSharp/Portable/Lowering/SyntheticBoundNodeFactory.cs
浏览文件 @
eea11615
...
...
@@ -884,18 +884,9 @@ public BoundStatement Switch(BoundExpression ex, ImmutableArray<SyntheticSwitchS
statements
.
Add
(
null
);
// placeholder at statements[0] for the dispatch
foreach
(
var
section
in
sections
)
{
LabelSymbol
sectionLabel
;
// If the section only contains a goto statement, use that label.
if
(
section
.
Statements
.
Length
==
1
&&
section
.
Statements
[
0
]
is
BoundGotoStatement
bgoto
)
{
sectionLabel
=
bgoto
.
Label
;
}
else
{
sectionLabel
=
new
GeneratedLabelSymbol
(
"case "
+
section
.
Values
[
0
]);
statements
.
Add
(
Label
(
sectionLabel
));
statements
.
AddRange
(
section
.
Statements
);
}
LabelSymbol
sectionLabel
=
new
GeneratedLabelSymbol
(
"case "
+
section
.
Values
[
0
]);
statements
.
Add
(
Label
(
sectionLabel
));
statements
.
AddRange
(
section
.
Statements
);
foreach
(
var
value
in
section
.
Values
)
{
...
...
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncEHTests.cs
浏览文件 @
eea11615
...
...
@@ -3,8 +3,6 @@
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Threading
;
using
Microsoft.CodeAnalysis.CSharp.Symbols
;
using
Microsoft.CodeAnalysis.CSharp.Test.Utilities
;
using
Microsoft.CodeAnalysis.Test.Utilities
;
using
Roslyn.Test.Utilities
;
...
...
@@ -896,7 +894,6 @@ public static void Main()
CompileAndVerify
(
source
,
expectedOutput
:
expected
);
}
[
ConditionalFact
(
typeof
(
WindowsOnly
),
Reason
=
ConditionalSkipReason
.
NativePdbRequiresDesktop
)]
public
void
AsyncInFinally003
()
{
...
...
@@ -978,9 +975,9 @@ public static void Main()
</symbols>
"
);
v
.
VerifyIL
(
"Test.<G>d__1.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"
,
@"
{
// Code size 4
55 (0x1c7
)
v
.
VerifyIL
(
"Test.<G>d__1.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"
,
@"
{
// Code size 4
61 (0x1cd
)
.maxstack 3
.locals init (int V_0,
int V_1,
...
...
@@ -996,194 +993,197 @@ .maxstack 3
.try
{
~IL_0007: ldloc.0
IL_0008: brfalse.s IL_00
2b
IL_0008: brfalse.s IL_00
12
IL_000a: br.s IL_000c
IL_000c: ldloc.0
IL_000d: ldc.i4.1
IL_000e: beq IL_010f
IL_0013: br.s IL_0015
-IL_0015: nop
-IL_0016: ldarg.0
IL_0017: ldc.i4.0
IL_0018: stfld ""int Test.<G>d__1.<x>5__1""
~IL_001d: ldarg.0
IL_001e: ldnull
IL_001f: stfld ""object Test.<G>d__1.<>s__2""
IL_0024: ldarg.0
IL_0025: ldc.i4.0
IL_0026: stfld ""int Test.<G>d__1.<>s__3""
~IL_002b: nop
IL_000e: beq.s IL_0014
IL_0010: br.s IL_0019
IL_0012: br.s IL_002f
IL_0014: br IL_0115
-IL_0019: nop
-IL_001a: ldarg.0
IL_001b: ldc.i4.0
IL_001c: stfld ""int Test.<G>d__1.<x>5__1""
~IL_0021: ldarg.0
IL_0022: ldnull
IL_0023: stfld ""object Test.<G>d__1.<>s__2""
IL_0028: ldarg.0
IL_0029: ldc.i4.0
IL_002a: stfld ""int Test.<G>d__1.<>s__3""
~IL_002f: nop
.try
{
~IL_002c: ldloc.0
IL_002d: brfalse.s IL_006d
IL_002f: br.s IL_0031
-IL_0031: nop
-IL_0032: call ""System.Threading.Tasks.Task<int> Test.F()""
IL_0037: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_003c: stloc.2
~IL_003d: ldloca.s V_2
IL_003f: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_0044: brtrue.s IL_0089
IL_0046: ldarg.0
IL_0047: ldc.i4.0
IL_0048: dup
IL_0049: stloc.0
IL_004a: stfld ""int Test.<G>d__1.<>1__state""
<IL_004f: ldarg.0
IL_0050: ldloc.2
IL_0051: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_0056: ldarg.0
IL_0057: stloc.3
IL_0058: ldarg.0
IL_0059: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<G>d__1.<>t__builder""
IL_005e: ldloca.s V_2
IL_0060: ldloca.s V_3
IL_0062: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<G>d__1>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<G>d__1)""
IL_0067: nop
IL_0068: leave IL_01c6
>IL_006d: ldarg.0
IL_006e: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_0073: stloc.2
IL_0074: ldarg.0
IL_0075: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_007a: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_0080: ldarg.0
IL_0081: ldc.i4.m1
IL_0082: dup
IL_0083: stloc.0
IL_0084: stfld ""int Test.<G>d__1.<>1__state""
IL_0089: ldarg.0
IL_008a: ldloca.s V_2
IL_008c: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_0091: stfld ""int Test.<G>d__1.<>s__5""
IL_0096: ldarg.0
IL_0097: ldarg.0
IL_0098: ldfld ""int Test.<G>d__1.<>s__5""
IL_009d: stfld ""int Test.<G>d__1.<x>5__1""
-IL_00a2: ldarg.0
IL_00a3: ldarg.0
IL_00a4: ldfld ""int Test.<G>d__1.<x>5__1""
IL_00a9: stfld ""int Test.<G>d__1.<>s__4""
IL_00ae: br.s IL_00b0
IL_00b0: ldarg.0
IL_00b1: ldc.i4.1
IL_00b2: stfld ""int Test.<G>d__1.<>s__3""
IL_00b7: leave.s IL_00c5
~IL_0030: ldloc.0
IL_0031: brfalse.s IL_0035
IL_0033: br.s IL_0037
IL_0035: br.s IL_0073
-IL_0037: nop
-IL_0038: call ""System.Threading.Tasks.Task<int> Test.F()""
IL_003d: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_0042: stloc.2
~IL_0043: ldloca.s V_2
IL_0045: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_004a: brtrue.s IL_008f
IL_004c: ldarg.0
IL_004d: ldc.i4.0
IL_004e: dup
IL_004f: stloc.0
IL_0050: stfld ""int Test.<G>d__1.<>1__state""
<IL_0055: ldarg.0
IL_0056: ldloc.2
IL_0057: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_005c: ldarg.0
IL_005d: stloc.3
IL_005e: ldarg.0
IL_005f: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<G>d__1.<>t__builder""
IL_0064: ldloca.s V_2
IL_0066: ldloca.s V_3
IL_0068: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<G>d__1>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<G>d__1)""
IL_006d: nop
IL_006e: leave IL_01cc
>IL_0073: ldarg.0
IL_0074: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_0079: stloc.2
IL_007a: ldarg.0
IL_007b: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_0080: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_0086: ldarg.0
IL_0087: ldc.i4.m1
IL_0088: dup
IL_0089: stloc.0
IL_008a: stfld ""int Test.<G>d__1.<>1__state""
IL_008f: ldarg.0
IL_0090: ldloca.s V_2
IL_0092: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_0097: stfld ""int Test.<G>d__1.<>s__5""
IL_009c: ldarg.0
IL_009d: ldarg.0
IL_009e: ldfld ""int Test.<G>d__1.<>s__5""
IL_00a3: stfld ""int Test.<G>d__1.<x>5__1""
-IL_00a8: ldarg.0
IL_00a9: ldarg.0
IL_00aa: ldfld ""int Test.<G>d__1.<x>5__1""
IL_00af: stfld ""int Test.<G>d__1.<>s__4""
IL_00b4: br.s IL_00b6
IL_00b6: ldarg.0
IL_00b7: ldc.i4.1
IL_00b8: stfld ""int Test.<G>d__1.<>s__3""
IL_00bd: leave.s IL_00cb
}
catch object
{
~IL_00b9: stloc.s V_4
IL_00bb: ldarg.0
IL_00bc: ldloc.s V_4
IL_00be: stfld ""object Test.<G>d__1.<>s__2""
IL_00c3: leave.s IL_00c5
}
-IL_00c5: nop
-IL_00c6: ldarg.0
IL_00c7: ldarg.0
IL_00c8: ldfld ""int Test.<G>d__1.<x>5__1""
IL_00cd: stfld ""int Test.<G>d__1.<>s__6""
IL_00d2: call ""System.Threading.Tasks.Task<int> Test.F()""
IL_00d7: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_00dc: stloc.s V_5
~IL_00de: ldloca.s V_5
IL_00e0: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_00e5: brtrue.s IL_012c
IL_00e7: ldarg.0
IL_00e8: ldc.i4.1
IL_00e9: dup
IL_00ea: stloc.0
IL_00eb: stfld ""int Test.<G>d__1.<>1__state""
<IL_00f0: ldarg.0
IL_00f1: ldloc.s V_5
IL_00f3: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_00f8: ldarg.0
IL_00f9: stloc.3
IL_00fa: ldarg.0
IL_00fb: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<G>d__1.<>t__builder""
IL_0100: ldloca.s V_5
IL_0102: ldloca.s V_3
IL_0104: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<G>d__1>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<G>d__1)""
IL_0109: nop
IL_010a: leave IL_01c6
>IL_010f: ldarg.0
IL_0110: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_0115: stloc.s V_5
IL_0117: ldarg.0
IL_0118: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_011d: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_0123: ldarg.0
IL_0124: ldc.i4.m1
IL_0125: dup
IL_0126: stloc.0
IL_0127: stfld ""int Test.<G>d__1.<>1__state""
IL_012c: ldarg.0
IL_012d: ldloca.s V_5
IL_012f: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_0134: stfld ""int Test.<G>d__1.<>s__7""
IL_0139: ldarg.0
IL_013a: ldarg.0
IL_013b: ldfld ""int Test.<G>d__1.<>s__6""
~IL_00bf: stloc.s V_4
IL_00c1: ldarg.0
IL_00c2: ldloc.s V_4
IL_00c4: stfld ""object Test.<G>d__1.<>s__2""
IL_00c9: leave.s IL_00cb
}
-IL_00cb: nop
-IL_00cc: ldarg.0
IL_00cd: ldarg.0
IL_00ce: ldfld ""int Test.<G>d__1.<x>5__1""
IL_00d3: stfld ""int Test.<G>d__1.<>s__6""
IL_00d8: call ""System.Threading.Tasks.Task<int> Test.F()""
IL_00dd: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_00e2: stloc.s V_5
~IL_00e4: ldloca.s V_5
IL_00e6: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_00eb: brtrue.s IL_0132
IL_00ed: ldarg.0
IL_00ee: ldc.i4.1
IL_00ef: dup
IL_00f0: stloc.0
IL_00f1: stfld ""int Test.<G>d__1.<>1__state""
<IL_00f6: ldarg.0
IL_00f7: ldloc.s V_5
IL_00f9: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_00fe: ldarg.0
IL_00ff: stloc.3
IL_0100: ldarg.0
IL_0101: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<G>d__1.<>t__builder""
IL_0106: ldloca.s V_5
IL_0108: ldloca.s V_3
IL_010a: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<G>d__1>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<G>d__1)""
IL_010f: nop
IL_0110: leave IL_01cc
>IL_0115: ldarg.0
IL_0116: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_011b: stloc.s V_5
IL_011d: ldarg.0
IL_011e: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<G>d__1.<>u__1""
IL_0123: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_0129: ldarg.0
IL_012a: ldc.i4.m1
IL_012b: dup
IL_012c: stloc.0
IL_012d: stfld ""int Test.<G>d__1.<>1__state""
IL_0132: ldarg.0
IL_0133: ldloca.s V_5
IL_0135: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_013a: stfld ""int Test.<G>d__1.<>s__7""
IL_013f: ldarg.0
IL_0140: ldarg.0
IL_0141: ldfld ""int Test.<G>d__1.<>s__7""
IL_0146: add
IL_0147: stfld ""int Test.<G>d__1.<x>5__1""
-IL_014c: nop
~IL_014d: ldarg.0
IL_014e: ldfld ""object Test.<G>d__1.<>s__2""
IL_0153: stloc.s V_4
IL_0155: ldloc.s V_4
IL_0157: brfalse.s IL_0176
IL_0159: ldloc.s V_4
IL_015b: isinst ""System.Exception""
IL_0160: stloc.s V_6
IL_0162: ldloc.s V_6
IL_0164: brtrue.s IL_0169
IL_0166: ldloc.s V_4
IL_0168: throw
IL_0169: ldloc.s V_6
IL_016b: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_0170: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_0175: nop
IL_0176: ldarg.0
IL_0177: ldfld ""int Test.<G>d__1.<>s__3""
IL_017c: stloc.s V_7
IL_017e: ldloc.s V_7
IL_0180: ldc.i4.1
IL_0181: beq.s IL_0185
IL_0183: br.s IL_018e
IL_0185: ldarg.0
IL_0186: ldfld ""int Test.<G>d__1.<>s__4""
IL_018b: stloc.1
IL_018c: leave.s IL_01b1
IL_018e: ldarg.0
IL_018f: ldnull
IL_0190: stfld ""object Test.<G>d__1.<>s__2""
IL_0195: leave.s IL_01b1
IL_0141: ldfld ""int Test.<G>d__1.<>s__6""
IL_0146: ldarg.0
IL_0147: ldfld ""int Test.<G>d__1.<>s__7""
IL_014c: add
IL_014d: stfld ""int Test.<G>d__1.<x>5__1""
-IL_0152: nop
~IL_0153: ldarg.0
IL_0154: ldfld ""object Test.<G>d__1.<>s__2""
IL_0159: stloc.s V_4
IL_015b: ldloc.s V_4
IL_015d: brfalse.s IL_017c
IL_015f: ldloc.s V_4
IL_0161: isinst ""System.Exception""
IL_0166: stloc.s V_6
IL_0168: ldloc.s V_6
IL_016a: brtrue.s IL_016f
IL_016c: ldloc.s V_4
IL_016e: throw
IL_016f: ldloc.s V_6
IL_0171: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_0176: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_017b: nop
IL_017c: ldarg.0
IL_017d: ldfld ""int Test.<G>d__1.<>s__3""
IL_0182: stloc.s V_7
IL_0184: ldloc.s V_7
IL_0186: ldc.i4.1
IL_0187: beq.s IL_018b
IL_0189: br.s IL_0194
IL_018b: ldarg.0
IL_018c: ldfld ""int Test.<G>d__1.<>s__4""
IL_0191: stloc.1
IL_0192: leave.s IL_01b7
IL_0194: ldarg.0
IL_0195: ldnull
IL_0196: stfld ""object Test.<G>d__1.<>s__2""
IL_019b: leave.s IL_01b7
}
catch System.Exception
{
~IL_019
7
: stloc.s V_6
IL_019
9
: ldarg.0
IL_01
9a
: ldc.i4.s -2
IL_01
9c
: stfld ""int Test.<G>d__1.<>1__state""
IL_01a
1
: ldarg.0
IL_01a
2
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<G>d__1.<>t__builder""
IL_01a
7
: ldloc.s V_6
IL_01a
9
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_01
ae
: nop
IL_01
af: leave.s IL_01c6
~IL_019
d
: stloc.s V_6
IL_019
f
: ldarg.0
IL_01
a0
: ldc.i4.s -2
IL_01
a2
: stfld ""int Test.<G>d__1.<>1__state""
IL_01a
7
: ldarg.0
IL_01a
8
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<G>d__1.<>t__builder""
IL_01a
d
: ldloc.s V_6
IL_01a
f
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_01
b4
: nop
IL_01
b5: leave.s IL_01cc
}
-IL_01b
1
: ldarg.0
IL_01b
2
: ldc.i4.s -2
IL_01b
4
: stfld ""int Test.<G>d__1.<>1__state""
~IL_01b
9
: ldarg.0
IL_01
ba
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<G>d__1.<>t__builder""
IL_01
bf
: ldloc.1
IL_01c
0
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_01c
5
: nop
IL_01c
6
: ret
-IL_01b
7
: ldarg.0
IL_01b
8
: ldc.i4.s -2
IL_01b
a
: stfld ""int Test.<G>d__1.<>1__state""
~IL_01b
f
: ldarg.0
IL_01
c0
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<G>d__1.<>t__builder""
IL_01
c5
: ldloc.1
IL_01c
6
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_01c
b
: nop
IL_01c
c
: ret
}"
,
sequencePoints
:
"Test+<G>d__1.MoveNext"
);
}
...
...
@@ -1786,7 +1786,6 @@ public static void Main()
CompileAndVerify
(
source
,
expectedOutput
:
expected
);
}
[
Fact
]
public
void
AsyncInCatchFilter
()
{
...
...
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncIteratorTests.cs
浏览文件 @
eea11615
...
...
@@ -2054,9 +2054,9 @@ .maxstack 5
}"
);
if
(
options
==
TestOptions
.
DebugExe
)
{
verifier
.
VerifyIL
(
"C.<M>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 2
89 (0x121
)
verifier
.
VerifyIL
(
"C.<M>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 2
98 (0x12a
)
.maxstack 3
.locals init (int V_0,
System.Runtime.CompilerServices.TaskAwaiter V_1,
...
...
@@ -2073,131 +2073,133 @@ .maxstack 3
IL_0008: ldc.i4.s -4
IL_000a: sub
IL_000b: switch (
IL_00c5,
IL_0026,
IL_0026,
IL_0026,
IL_0083)
IL_0024: br.s IL_0026
IL_0026: ldarg.0
IL_0027: ldfld ""bool C.<M>d__0.<>w__disposeMode""
IL_002c: brfalse.s IL_0033
IL_002e: leave IL_00fd
IL_0033: ldarg.0
IL_0034: ldc.i4.m1
IL_0035: dup
IL_0036: stloc.0
IL_0037: stfld ""int C.<M>d__0.<>1__state""
IL_002b,
IL_002f,
IL_002f,
IL_002d)
IL_0024: br.s IL_002f
IL_0026: br IL_00ce
IL_002b: br.s IL_002f
IL_002d: br.s IL_008c
IL_002f: ldarg.0
IL_0030: ldfld ""bool C.<M>d__0.<>w__disposeMode""
IL_0035: brfalse.s IL_003c
IL_0037: leave IL_0106
IL_003c: ldarg.0
IL_003d: ldc.i4.m1
IL_003e: dup
IL_003f: stloc.0
IL_0040: stfld ""int C.<M>d__0.<>1__state""
// sequence point: {
IL_00
3c
: nop
IL_00
45
: nop
// sequence point: Write(""1 "");
IL_00
3d
: ldstr ""1 ""
IL_004
2
: call ""void System.Console.Write(string)""
IL_00
47
: nop
IL_00
46
: ldstr ""1 ""
IL_004
b
: call ""void System.Console.Write(string)""
IL_00
50
: nop
// sequence point: await System.Threading.Tasks.Task.CompletedTask;
IL_00
48
: call ""System.Threading.Tasks.Task System.Threading.Tasks.Task.CompletedTask.get""
IL_00
4d
: callvirt ""System.Runtime.CompilerServices.TaskAwaiter System.Threading.Tasks.Task.GetAwaiter()""
IL_005
2
: stloc.1
IL_00
51
: call ""System.Threading.Tasks.Task System.Threading.Tasks.Task.CompletedTask.get""
IL_00
56
: callvirt ""System.Runtime.CompilerServices.TaskAwaiter System.Threading.Tasks.Task.GetAwaiter()""
IL_005
b
: stloc.1
// sequence point: <hidden>
IL_0053: ldloca.s V_1
IL_0055: call ""bool System.Runtime.CompilerServices.TaskAwaiter.IsCompleted.get""
IL_005a: brtrue.s IL_009f
IL_005c: ldarg.0
IL_005d: ldc.i4.0
IL_005e: dup
IL_005f: stloc.0
IL_0060: stfld ""int C.<M>d__0.<>1__state""
// async: yield
IL_005c: ldloca.s V_1
IL_005e: call ""bool System.Runtime.CompilerServices.TaskAwaiter.IsCompleted.get""
IL_0063: brtrue.s IL_00a8
IL_0065: ldarg.0
IL_0066: ldloc.1
IL_0067: stfld ""System.Runtime.CompilerServices.TaskAwaiter C.<M>d__0.<>u__1""
IL_006c: ldarg.0
IL_006d: stloc.2
IL_0066: ldc.i4.0
IL_0067: dup
IL_0068: stloc.0
IL_0069: stfld ""int C.<M>d__0.<>1__state""
// async: yield
IL_006e: ldarg.0
IL_006f: ldflda ""System.Runtime.CompilerServices.AsyncIteratorMethodBuilder C.<M>d__0.<>t__builder""
IL_0074: ldloca.s V_1
IL_0076: ldloca.s V_2
IL_0078: call ""void System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter, C.<M>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter, ref C.<M>d__0)""
IL_007d: nop
IL_007e: leave IL_0120
IL_006f: ldloc.1
IL_0070: stfld ""System.Runtime.CompilerServices.TaskAwaiter C.<M>d__0.<>u__1""
IL_0075: ldarg.0
IL_0076: stloc.2
IL_0077: ldarg.0
IL_0078: ldflda ""System.Runtime.CompilerServices.AsyncIteratorMethodBuilder C.<M>d__0.<>t__builder""
IL_007d: ldloca.s V_1
IL_007f: ldloca.s V_2
IL_0081: call ""void System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter, C.<M>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter, ref C.<M>d__0)""
IL_0086: nop
IL_0087: leave IL_0129
// async: resume
IL_008
3
: ldarg.0
IL_008
4
: ldfld ""System.Runtime.CompilerServices.TaskAwaiter C.<M>d__0.<>u__1""
IL_00
89
: stloc.1
IL_00
8a
: ldarg.0
IL_00
8b
: ldflda ""System.Runtime.CompilerServices.TaskAwaiter C.<M>d__0.<>u__1""
IL_009
0
: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_009
6
: ldarg.0
IL_00
97
: ldc.i4.m1
IL_00
98
: dup
IL_00
99
: stloc.0
IL_00
9a
: stfld ""int C.<M>d__0.<>1__state""
IL_00
9f
: ldloca.s V_1
IL_00a
1
: call ""void System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_00a
6
: nop
IL_008
c
: ldarg.0
IL_008
d
: ldfld ""System.Runtime.CompilerServices.TaskAwaiter C.<M>d__0.<>u__1""
IL_00
92
: stloc.1
IL_00
93
: ldarg.0
IL_00
94
: ldflda ""System.Runtime.CompilerServices.TaskAwaiter C.<M>d__0.<>u__1""
IL_009
9
: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_009
f
: ldarg.0
IL_00
a0
: ldc.i4.m1
IL_00
a1
: dup
IL_00
a2
: stloc.0
IL_00
a3
: stfld ""int C.<M>d__0.<>1__state""
IL_00
a8
: ldloca.s V_1
IL_00a
a
: call ""void System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_00a
f
: nop
// sequence point: Write(""2 "");
IL_00
a7
: ldstr ""2 ""
IL_00
ac
: call ""void System.Console.Write(string)""
IL_00b
1
: nop
IL_00
b0
: ldstr ""2 ""
IL_00
b5
: call ""void System.Console.Write(string)""
IL_00b
a
: nop
// sequence point: yield return 3;
IL_00b
2
: ldarg.0
IL_00b
3
: ldc.i4.3
IL_00b
4
: stfld ""int C.<M>d__0.<>2__current""
IL_00
b9
: ldarg.0
IL_00
ba
: ldc.i4.s -4
IL_00
bc
: dup
IL_00
bd
: stloc.0
IL_00
be
: stfld ""int C.<M>d__0.<>1__state""
IL_00c
3: leave.s IL_0113
IL_00b
b
: ldarg.0
IL_00b
c
: ldc.i4.3
IL_00b
d
: stfld ""int C.<M>d__0.<>2__current""
IL_00
c2
: ldarg.0
IL_00
c3
: ldc.i4.s -4
IL_00
c5
: dup
IL_00
c6
: stloc.0
IL_00
c7
: stfld ""int C.<M>d__0.<>1__state""
IL_00c
c: leave.s IL_011c
// sequence point: <hidden>
IL_00c5: ldarg.0
IL_00c6: ldc.i4.m1
IL_00c7: dup
IL_00c8: stloc.0
IL_00c9: stfld ""int C.<M>d__0.<>1__state""
IL_00ce: ldarg.0
IL_00cf: ldfld ""bool C.<M>d__0.<>w__disposeMode""
IL_00d4: brfalse.s IL_00d8
IL_00d6: leave.s IL_00fd
IL_00cf: ldc.i4.m1
IL_00d0: dup
IL_00d1: stloc.0
IL_00d2: stfld ""int C.<M>d__0.<>1__state""
IL_00d7: ldarg.0
IL_00d8: ldfld ""bool C.<M>d__0.<>w__disposeMode""
IL_00dd: brfalse.s IL_00e1
IL_00df: leave.s IL_0106
// sequence point: Write("" 4 "");
IL_00
d8
: ldstr "" 4 ""
IL_00
dd
: call ""void System.Console.Write(string)""
IL_00e
2
: nop
IL_00e
3: leave.s IL_00fd
IL_00
e1
: ldstr "" 4 ""
IL_00
e6
: call ""void System.Console.Write(string)""
IL_00e
b
: nop
IL_00e
c: leave.s IL_0106
}
catch System.Exception
{
// sequence point: <hidden>
IL_00e
5
: stloc.3
IL_00e
6
: ldarg.0
IL_00
e7
: ldc.i4.s -2
IL_00
e9
: stfld ""int C.<M>d__0.<>1__state""
IL_00
ee
: ldarg.0
IL_00
ef
: ldflda ""System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool> C.<M>d__0.<>v__promiseOfValueOrEnd""
IL_00f
4
: ldloc.3
IL_00f
5
: call ""void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool>.SetException(System.Exception)""
IL_0
0fa
: nop
IL_0
0fb: leave.s IL_0120
IL_00e
e
: stloc.3
IL_00e
f
: ldarg.0
IL_00
f0
: ldc.i4.s -2
IL_00
f2
: stfld ""int C.<M>d__0.<>1__state""
IL_00
f7
: ldarg.0
IL_00
f8
: ldflda ""System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool> C.<M>d__0.<>v__promiseOfValueOrEnd""
IL_00f
d
: ldloc.3
IL_00f
e
: call ""void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool>.SetException(System.Exception)""
IL_0
103
: nop
IL_0
104: leave.s IL_0129
}
// sequence point: }
IL_0
0fd
: ldarg.0
IL_0
0fe
: ldc.i4.s -2
IL_010
0
: stfld ""int C.<M>d__0.<>1__state""
IL_0
106
: ldarg.0
IL_0
107
: ldc.i4.s -2
IL_010
9
: stfld ""int C.<M>d__0.<>1__state""
// sequence point: <hidden>
IL_0105: ldarg.0
IL_0106: ldflda ""System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool> C.<M>d__0.<>v__promiseOfValueOrEnd""
IL_010b: ldc.i4.0
IL_010c: call ""void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool>.SetResult(bool)""
IL_0111: nop
IL_0112: ret
IL_0113: ldarg.0
IL_0114: ldflda ""System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool> C.<M>d__0.<>v__promiseOfValueOrEnd""
IL_0119: ldc.i4.1
IL_011a: call ""void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool>.SetResult(bool)""
IL_011f: nop
IL_0120: ret
}
"
,
sequencePoints
:
"C+<M>d__0.MoveNext"
,
source
:
source
);
IL_010e: ldarg.0
IL_010f: ldflda ""System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool> C.<M>d__0.<>v__promiseOfValueOrEnd""
IL_0114: ldc.i4.0
IL_0115: call ""void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool>.SetResult(bool)""
IL_011a: nop
IL_011b: ret
IL_011c: ldarg.0
IL_011d: ldflda ""System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool> C.<M>d__0.<>v__promiseOfValueOrEnd""
IL_0122: ldc.i4.1
IL_0123: call ""void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore<bool>.SetResult(bool)""
IL_0128: nop
IL_0129: ret
}"
,
sequencePoints
:
"C+<M>d__0.MoveNext"
,
source
:
source
);
}
else
{
...
...
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncLocalsTests.cs
浏览文件 @
eea11615
...
...
@@ -3,7 +3,6 @@
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Threading
;
using
Microsoft.CodeAnalysis.CSharp.Symbols
;
using
Microsoft.CodeAnalysis.CSharp.Test.Utilities
;
using
Microsoft.CodeAnalysis.Test.Utilities
;
...
...
@@ -145,7 +144,6 @@ public static async Task DoItAsync()
"
;
CompileAndVerify
(
source
,
options
:
TestOptions
.
ReleaseExe
,
expectedOutput
:
expected
);
CompileAndVerify
(
source
,
options
:
TestOptions
.
DebugExe
,
expectedOutput
:
expected
);
}
[
Fact
]
...
...
@@ -592,7 +590,6 @@ .maxstack 3
IL_00be: ret
}
"
);
}
[
Fact
]
...
...
@@ -880,7 +877,6 @@ .maxstack 3
IL_0263: ret
}
"
);
}
[
Fact
]
...
...
@@ -1402,7 +1398,7 @@ .maxstack 3
verifier
.
VerifyIL
(
"C.<F>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 22
5 (0xe1
)
// Code size 22
7 (0xe3
)
.maxstack 3
.locals init (int V_0,
int V_1,
...
...
@@ -1417,106 +1413,107 @@ .maxstack 3
.try
{
IL_0007: ldloc.0
IL_0008: brfalse.s IL_0084
IL_000a: br.s IL_000c
IL_000c: nop
IL_000d: nop
IL_000e: ldarg.0
IL_000f: ldfld ""byte[] C.<F>d__0.b""
IL_0014: dup
IL_0015: stloc.2
IL_0016: brfalse.s IL_001d
IL_0018: ldloc.2
IL_0019: ldlen
IL_001a: conv.i4
IL_001b: brtrue.s IL_0027
IL_001d: ldarg.0
IL_001e: ldc.i4.0
IL_001f: conv.u
IL_0020: stfld ""byte* C.<F>d__0.<p>5__2""
IL_0025: br.s IL_0035
IL_0027: ldarg.0
IL_0028: ldloc.2
IL_0029: ldc.i4.0
IL_002a: ldelema ""byte""
IL_002f: conv.u
IL_0030: stfld ""byte* C.<F>d__0.<p>5__2""
IL_0035: nop
IL_0036: ldarg.0
IL_0037: ldarg.0
IL_0038: ldfld ""byte* C.<F>d__0.<p>5__2""
IL_003d: ldind.u1
IL_003e: stfld ""int C.<F>d__0.<i>5__1""
IL_0043: nop
IL_0044: ldnull
IL_0045: stloc.2
IL_0046: nop
IL_0047: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_004c: stloc.s V_4
IL_004e: ldloca.s V_4
IL_0050: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_0055: stloc.3
IL_0056: ldloca.s V_3
IL_0058: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_005d: brtrue.s IL_00a0
IL_005f: ldarg.0
IL_0060: ldc.i4.0
IL_0061: dup
IL_0062: stloc.0
IL_0063: stfld ""int C.<F>d__0.<>1__state""
IL_0068: ldarg.0
IL_0069: ldloc.3
IL_006a: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter C.<F>d__0.<>u__1""
IL_006f: ldarg.0
IL_0070: stloc.s V_5
IL_0072: ldarg.0
IL_0073: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_0078: ldloca.s V_3
IL_007a: ldloca.s V_5
IL_007c: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, C.<F>d__0>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref C.<F>d__0)""
IL_0081: nop
IL_0082: leave.s IL_00e0
IL_0084: ldarg.0
IL_0085: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter C.<F>d__0.<>u__1""
IL_008a: stloc.3
IL_008b: ldarg.0
IL_008c: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter C.<F>d__0.<>u__1""
IL_0091: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_0097: ldarg.0
IL_0098: ldc.i4.m1
IL_0099: dup
IL_009a: stloc.0
IL_009b: stfld ""int C.<F>d__0.<>1__state""
IL_00a0: ldloca.s V_3
IL_00a2: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_00a7: nop
IL_00a8: ldarg.0
IL_00a9: ldfld ""int C.<F>d__0.<i>5__1""
IL_00ae: stloc.1
IL_00af: leave.s IL_00cb
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000e
IL_000c: br.s IL_0086
IL_000e: nop
IL_000f: nop
IL_0010: ldarg.0
IL_0011: ldfld ""byte[] C.<F>d__0.b""
IL_0016: dup
IL_0017: stloc.2
IL_0018: brfalse.s IL_001f
IL_001a: ldloc.2
IL_001b: ldlen
IL_001c: conv.i4
IL_001d: brtrue.s IL_0029
IL_001f: ldarg.0
IL_0020: ldc.i4.0
IL_0021: conv.u
IL_0022: stfld ""byte* C.<F>d__0.<p>5__2""
IL_0027: br.s IL_0037
IL_0029: ldarg.0
IL_002a: ldloc.2
IL_002b: ldc.i4.0
IL_002c: ldelema ""byte""
IL_0031: conv.u
IL_0032: stfld ""byte* C.<F>d__0.<p>5__2""
IL_0037: nop
IL_0038: ldarg.0
IL_0039: ldarg.0
IL_003a: ldfld ""byte* C.<F>d__0.<p>5__2""
IL_003f: ldind.u1
IL_0040: stfld ""int C.<F>d__0.<i>5__1""
IL_0045: nop
IL_0046: ldnull
IL_0047: stloc.2
IL_0048: nop
IL_0049: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_004e: stloc.s V_4
IL_0050: ldloca.s V_4
IL_0052: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_0057: stloc.3
IL_0058: ldloca.s V_3
IL_005a: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_005f: brtrue.s IL_00a2
IL_0061: ldarg.0
IL_0062: ldc.i4.0
IL_0063: dup
IL_0064: stloc.0
IL_0065: stfld ""int C.<F>d__0.<>1__state""
IL_006a: ldarg.0
IL_006b: ldloc.3
IL_006c: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter C.<F>d__0.<>u__1""
IL_0071: ldarg.0
IL_0072: stloc.s V_5
IL_0074: ldarg.0
IL_0075: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_007a: ldloca.s V_3
IL_007c: ldloca.s V_5
IL_007e: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, C.<F>d__0>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref C.<F>d__0)""
IL_0083: nop
IL_0084: leave.s IL_00e2
IL_0086: ldarg.0
IL_0087: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter C.<F>d__0.<>u__1""
IL_008c: stloc.3
IL_008d: ldarg.0
IL_008e: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter C.<F>d__0.<>u__1""
IL_0093: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_0099: ldarg.0
IL_009a: ldc.i4.m1
IL_009b: dup
IL_009c: stloc.0
IL_009d: stfld ""int C.<F>d__0.<>1__state""
IL_00a2: ldloca.s V_3
IL_00a4: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_00a9: nop
IL_00aa: ldarg.0
IL_00ab: ldfld ""int C.<F>d__0.<i>5__1""
IL_00b0: stloc.1
IL_00b1: leave.s IL_00cd
}
catch System.Exception
{
IL_00b
1
: stloc.s V_6
IL_00b
3
: ldarg.0
IL_00b
4
: ldc.i4.s -2
IL_00b
6
: stfld ""int C.<F>d__0.<>1__state""
IL_00b
b
: ldarg.0
IL_00b
c
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00c
1
: ldloc.s V_6
IL_00c
3
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00c
8
: nop
IL_00c
9: leave.s IL_00e0
IL_00b
3
: stloc.s V_6
IL_00b
5
: ldarg.0
IL_00b
6
: ldc.i4.s -2
IL_00b
8
: stfld ""int C.<F>d__0.<>1__state""
IL_00b
d
: ldarg.0
IL_00b
e
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00c
3
: ldloc.s V_6
IL_00c
5
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00c
a
: nop
IL_00c
b: leave.s IL_00e2
}
IL_00c
b
: ldarg.0
IL_00c
c
: ldc.i4.s -2
IL_00
ce
: stfld ""int C.<F>d__0.<>1__state""
IL_00d
3
: ldarg.0
IL_00d
4
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00d
9
: ldloc.1
IL_00d
a
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_00
df
: nop
IL_00e
0
: ret
IL_00c
d
: ldarg.0
IL_00c
e
: ldc.i4.s -2
IL_00
d0
: stfld ""int C.<F>d__0.<>1__state""
IL_00d
5
: ldarg.0
IL_00d
6
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00d
b
: ldloc.1
IL_00d
c
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_00
e1
: nop
IL_00e
2
: ret
}"
);
}
...
...
@@ -1551,7 +1548,6 @@ private static async Task MainAsync(string[] args)
}"
;
var
verifier
=
CompileAndVerify
(
text
,
options
:
TestOptions
.
ReleaseExe
,
expectedOutput
:
@"2"
);
// NOTE: only one hoisted int local:
// int Test.<MainAsync>d__1.<a>5__2
verifier
.
VerifyIL
(
"Test.<MainAsync>d__1.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
...
...
@@ -1683,7 +1679,6 @@ .maxstack 3
IL_0123: ret
}"
);
verifier
=
CompileAndVerify
(
text
,
options
:
TestOptions
.
DebugExe
,
expectedOutput
:
@"2"
);
// NOTE: two separate hoisted int locals:
...
...
@@ -1692,7 +1687,7 @@ .maxstack 3
verifier
.
VerifyIL
(
"Test.<MainAsync>d__1.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 3
27 (0x147
)
// Code size 3
31 (0x14b
)
.maxstack 3
.locals init (int V_0,
bool V_1,
...
...
@@ -1707,141 +1702,143 @@ .maxstack 3
.try
{
IL_0007: ldloc.0
IL_0008: brfalse.s IL_00
6b
IL_0008: brfalse.s IL_00
12
IL_000a: br.s IL_000c
IL_000c: ldloc.0
IL_000d: ldc.i4.1
IL_000e: beq IL_00e4
IL_0013: br.s IL_0015
IL_0015: nop
IL_0016: ldarg.0
IL_0017: ldfld ""string[] Test.<MainAsync>d__1.args""
IL_001c: ldlen
IL_001d: ldc.i4.0
IL_001e: cgt.un
IL_0020: stloc.1
IL_0021: ldloc.1
IL_0022: brfalse.s IL_009e
IL_0024: nop
IL_0025: ldarg.0
IL_0026: ldc.i4.1
IL_0027: stfld ""int Test.<MainAsync>d__1.<a>5__1""
IL_002c: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_0031: stloc.3
IL_0032: ldloca.s V_3
IL_0034: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_0039: stloc.2
IL_003a: ldloca.s V_2
IL_003c: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_0041: brtrue.s IL_0087
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: dup
IL_0046: stloc.0
IL_0047: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_004c: ldarg.0
IL_004d: ldloc.2
IL_004e: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0053: ldarg.0
IL_0054: stloc.s V_4
IL_0056: ldarg.0
IL_0057: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_005c: ldloca.s V_2
IL_005e: ldloca.s V_4
IL_0060: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, Test.<MainAsync>d__1>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref Test.<MainAsync>d__1)""
IL_0065: nop
IL_0066: leave IL_0146
IL_006b: ldarg.0
IL_006c: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0071: stloc.2
IL_0072: ldarg.0
IL_0073: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0078: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_007e: ldarg.0
IL_007f: ldc.i4.m1
IL_0080: dup
IL_0081: stloc.0
IL_0082: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_0087: ldloca.s V_2
IL_0089: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_008e: nop
IL_008f: ldarg.0
IL_0090: ldfld ""int Test.<MainAsync>d__1.<a>5__1""
IL_0095: call ""void System.Console.WriteLine(int)""
IL_009a: nop
IL_009b: nop
IL_009c: br.s IL_0116
IL_000e: beq.s IL_0014
IL_0010: br.s IL_0019
IL_0012: br.s IL_006f
IL_0014: br IL_00e8
IL_0019: nop
IL_001a: ldarg.0
IL_001b: ldfld ""string[] Test.<MainAsync>d__1.args""
IL_0020: ldlen
IL_0021: ldc.i4.0
IL_0022: cgt.un
IL_0024: stloc.1
IL_0025: ldloc.1
IL_0026: brfalse.s IL_00a2
IL_0028: nop
IL_0029: ldarg.0
IL_002a: ldc.i4.1
IL_002b: stfld ""int Test.<MainAsync>d__1.<a>5__1""
IL_0030: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_0035: stloc.3
IL_0036: ldloca.s V_3
IL_0038: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_003d: stloc.2
IL_003e: ldloca.s V_2
IL_0040: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_0045: brtrue.s IL_008b
IL_0047: ldarg.0
IL_0048: ldc.i4.0
IL_0049: dup
IL_004a: stloc.0
IL_004b: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_0050: ldarg.0
IL_0051: ldloc.2
IL_0052: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0057: ldarg.0
IL_0058: stloc.s V_4
IL_005a: ldarg.0
IL_005b: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_0060: ldloca.s V_2
IL_0062: ldloca.s V_4
IL_0064: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, Test.<MainAsync>d__1>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref Test.<MainAsync>d__1)""
IL_0069: nop
IL_006a: leave IL_014a
IL_006f: ldarg.0
IL_0070: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0075: stloc.2
IL_0076: ldarg.0
IL_0077: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_007c: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_0082: ldarg.0
IL_0083: ldc.i4.m1
IL_0084: dup
IL_0085: stloc.0
IL_0086: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_008b: ldloca.s V_2
IL_008d: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_0092: nop
IL_0093: ldarg.0
IL_0094: ldfld ""int Test.<MainAsync>d__1.<a>5__1""
IL_0099: call ""void System.Console.WriteLine(int)""
IL_009e: nop
IL_009f: ldarg.0
IL_00a0: ldc.i4.2
IL_00a1: stfld ""int Test.<MainAsync>d__1.<b>5__2""
IL_00a6: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_00ab: stloc.3
IL_00ac: ldloca.s V_3
IL_00ae: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_00b3: stloc.s V_5
IL_00b5: ldloca.s V_5
IL_00b7: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_00bc: brtrue.s IL_0101
IL_00be: ldarg.0
IL_00bf: ldc.i4.1
IL_00c0: dup
IL_00c1: stloc.0
IL_00c2: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_00c7: ldarg.0
IL_00c8: ldloc.s V_5
IL_00ca: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00cf: ldarg.0
IL_00d0: stloc.s V_4
IL_00d2: ldarg.0
IL_00d3: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_00d8: ldloca.s V_5
IL_00da: ldloca.s V_4
IL_00dc: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, Test.<MainAsync>d__1>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref Test.<MainAsync>d__1)""
IL_00e1: nop
IL_00e2: leave.s IL_0146
IL_00e4: ldarg.0
IL_00e5: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00ea: stloc.s V_5
IL_00ec: ldarg.0
IL_00ed: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00f2: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_00f8: ldarg.0
IL_00f9: ldc.i4.m1
IL_00fa: dup
IL_00fb: stloc.0
IL_00fc: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_0101: ldloca.s V_5
IL_0103: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_0108: nop
IL_0109: ldarg.0
IL_010a: ldfld ""int Test.<MainAsync>d__1.<b>5__2""
IL_010f: call ""void System.Console.WriteLine(int)""
IL_0114: nop
IL_0115: nop
IL_0116: leave.s IL_0132
IL_009f: nop
IL_00a0: br.s IL_011a
IL_00a2: nop
IL_00a3: ldarg.0
IL_00a4: ldc.i4.2
IL_00a5: stfld ""int Test.<MainAsync>d__1.<b>5__2""
IL_00aa: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_00af: stloc.3
IL_00b0: ldloca.s V_3
IL_00b2: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_00b7: stloc.s V_5
IL_00b9: ldloca.s V_5
IL_00bb: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_00c0: brtrue.s IL_0105
IL_00c2: ldarg.0
IL_00c3: ldc.i4.1
IL_00c4: dup
IL_00c5: stloc.0
IL_00c6: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_00cb: ldarg.0
IL_00cc: ldloc.s V_5
IL_00ce: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00d3: ldarg.0
IL_00d4: stloc.s V_4
IL_00d6: ldarg.0
IL_00d7: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_00dc: ldloca.s V_5
IL_00de: ldloca.s V_4
IL_00e0: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, Test.<MainAsync>d__1>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref Test.<MainAsync>d__1)""
IL_00e5: nop
IL_00e6: leave.s IL_014a
IL_00e8: ldarg.0
IL_00e9: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00ee: stloc.s V_5
IL_00f0: ldarg.0
IL_00f1: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00f6: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_00fc: ldarg.0
IL_00fd: ldc.i4.m1
IL_00fe: dup
IL_00ff: stloc.0
IL_0100: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_0105: ldloca.s V_5
IL_0107: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_010c: nop
IL_010d: ldarg.0
IL_010e: ldfld ""int Test.<MainAsync>d__1.<b>5__2""
IL_0113: call ""void System.Console.WriteLine(int)""
IL_0118: nop
IL_0119: nop
IL_011a: leave.s IL_0136
}
catch System.Exception
{
IL_011
8
: stloc.s V_6
IL_011
a
: ldarg.0
IL_011
b
: ldc.i4.s -2
IL_01
1d
: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_012
2
: ldarg.0
IL_012
3
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_012
8
: ldloc.s V_6
IL_012
a
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_01
2f
: nop
IL_013
0: leave.s IL_0146
IL_011
c
: stloc.s V_6
IL_011
e
: ldarg.0
IL_011
f
: ldc.i4.s -2
IL_01
21
: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_012
6
: ldarg.0
IL_012
7
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_012
c
: ldloc.s V_6
IL_012
e
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_01
33
: nop
IL_013
4: leave.s IL_014a
}
IL_013
2
: ldarg.0
IL_013
3
: ldc.i4.s -2
IL_013
5
: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_013
a
: ldarg.0
IL_013
b
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_014
0
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_014
5
: nop
IL_014
6
: ret
IL_013
6
: ldarg.0
IL_013
7
: ldc.i4.s -2
IL_013
9
: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_013
e
: ldarg.0
IL_013
f
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_014
4
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_014
9
: nop
IL_014
a
: ret
}"
);
}
...
...
@@ -1876,7 +1873,6 @@ private static async Task MainAsync(string[] args)
}"
;
var
verifier
=
CompileAndVerify
(
text
,
options
:
TestOptions
.
ReleaseExe
,
expectedOutput
:
@"2"
);
// NOTE: only one hoisted int local:
// int Test.<MainAsync>d__1.<a>5__2
verifier
.
VerifyIL
(
"Test.<MainAsync>d__1.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
...
...
@@ -2008,7 +2004,6 @@ .maxstack 3
IL_0123: ret
}"
);
verifier
=
CompileAndVerify
(
text
,
options
:
TestOptions
.
DebugExe
,
expectedOutput
:
@"2"
);
// NOTE: two separate hoisted int locals:
...
...
@@ -2017,7 +2012,7 @@ .maxstack 3
verifier
.
VerifyIL
(
"Test.<MainAsync>d__1.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 3
27 (0x147
)
// Code size 3
31 (0x14b
)
.maxstack 3
.locals init (int V_0,
bool V_1,
...
...
@@ -2032,143 +2027,144 @@ .maxstack 3
.try
{
IL_0007: ldloc.0
IL_0008: brfalse.s IL_00
6b
IL_0008: brfalse.s IL_00
12
IL_000a: br.s IL_000c
IL_000c: ldloc.0
IL_000d: ldc.i4.1
IL_000e: beq IL_00e4
IL_0013: br.s IL_0015
IL_0015: nop
IL_0016: ldarg.0
IL_0017: ldfld ""string[] Test.<MainAsync>d__1.args""
IL_001c: ldlen
IL_001d: ldc.i4.0
IL_001e: cgt.un
IL_0020: stloc.1
IL_0021: ldloc.1
IL_0022: brfalse.s IL_009e
IL_0024: nop
IL_0025: ldarg.0
IL_0026: ldc.i4.1
IL_0027: stfld ""int Test.<MainAsync>d__1.<a>5__1""
IL_002c: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_0031: stloc.3
IL_0032: ldloca.s V_3
IL_0034: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_0039: stloc.2
IL_003a: ldloca.s V_2
IL_003c: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_0041: brtrue.s IL_0087
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: dup
IL_0046: stloc.0
IL_0047: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_004c: ldarg.0
IL_004d: ldloc.2
IL_004e: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0053: ldarg.0
IL_0054: stloc.s V_4
IL_0056: ldarg.0
IL_0057: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_005c: ldloca.s V_2
IL_005e: ldloca.s V_4
IL_0060: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, Test.<MainAsync>d__1>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref Test.<MainAsync>d__1)""
IL_0065: nop
IL_0066: leave IL_0146
IL_006b: ldarg.0
IL_006c: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0071: stloc.2
IL_0072: ldarg.0
IL_0073: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0078: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_007e: ldarg.0
IL_007f: ldc.i4.m1
IL_0080: dup
IL_0081: stloc.0
IL_0082: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_0087: ldloca.s V_2
IL_0089: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_008e: nop
IL_008f: ldarg.0
IL_0090: ldfld ""int Test.<MainAsync>d__1.<a>5__1""
IL_0095: call ""void System.Console.WriteLine(int)""
IL_009a: nop
IL_009b: nop
IL_009c: br.s IL_0116
IL_000e: beq.s IL_0014
IL_0010: br.s IL_0019
IL_0012: br.s IL_006f
IL_0014: br IL_00e8
IL_0019: nop
IL_001a: ldarg.0
IL_001b: ldfld ""string[] Test.<MainAsync>d__1.args""
IL_0020: ldlen
IL_0021: ldc.i4.0
IL_0022: cgt.un
IL_0024: stloc.1
IL_0025: ldloc.1
IL_0026: brfalse.s IL_00a2
IL_0028: nop
IL_0029: ldarg.0
IL_002a: ldc.i4.1
IL_002b: stfld ""int Test.<MainAsync>d__1.<a>5__1""
IL_0030: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_0035: stloc.3
IL_0036: ldloca.s V_3
IL_0038: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_003d: stloc.2
IL_003e: ldloca.s V_2
IL_0040: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_0045: brtrue.s IL_008b
IL_0047: ldarg.0
IL_0048: ldc.i4.0
IL_0049: dup
IL_004a: stloc.0
IL_004b: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_0050: ldarg.0
IL_0051: ldloc.2
IL_0052: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0057: ldarg.0
IL_0058: stloc.s V_4
IL_005a: ldarg.0
IL_005b: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_0060: ldloca.s V_2
IL_0062: ldloca.s V_4
IL_0064: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, Test.<MainAsync>d__1>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref Test.<MainAsync>d__1)""
IL_0069: nop
IL_006a: leave IL_014a
IL_006f: ldarg.0
IL_0070: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_0075: stloc.2
IL_0076: ldarg.0
IL_0077: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_007c: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_0082: ldarg.0
IL_0083: ldc.i4.m1
IL_0084: dup
IL_0085: stloc.0
IL_0086: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_008b: ldloca.s V_2
IL_008d: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_0092: nop
IL_0093: ldarg.0
IL_0094: ldfld ""int Test.<MainAsync>d__1.<a>5__1""
IL_0099: call ""void System.Console.WriteLine(int)""
IL_009e: nop
IL_009f: ldarg.0
IL_00a0: ldc.i4.2
IL_00a1: stfld ""int Test.<MainAsync>d__1.<b>5__2""
IL_00a6: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_00ab: stloc.3
IL_00ac: ldloca.s V_3
IL_00ae: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_00b3: stloc.s V_5
IL_00b5: ldloca.s V_5
IL_00b7: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_00bc: brtrue.s IL_0101
IL_00be: ldarg.0
IL_00bf: ldc.i4.1
IL_00c0: dup
IL_00c1: stloc.0
IL_00c2: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_00c7: ldarg.0
IL_00c8: ldloc.s V_5
IL_00ca: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00cf: ldarg.0
IL_00d0: stloc.s V_4
IL_00d2: ldarg.0
IL_00d3: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_00d8: ldloca.s V_5
IL_00da: ldloca.s V_4
IL_00dc: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, Test.<MainAsync>d__1>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref Test.<MainAsync>d__1)""
IL_00e1: nop
IL_00e2: leave.s IL_0146
IL_00e4: ldarg.0
IL_00e5: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00ea: stloc.s V_5
IL_00ec: ldarg.0
IL_00ed: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00f2: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_00f8: ldarg.0
IL_00f9: ldc.i4.m1
IL_00fa: dup
IL_00fb: stloc.0
IL_00fc: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_0101: ldloca.s V_5
IL_0103: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_0108: nop
IL_0109: ldarg.0
IL_010a: ldfld ""int Test.<MainAsync>d__1.<b>5__2""
IL_010f: call ""void System.Console.WriteLine(int)""
IL_0114: nop
IL_0115: nop
IL_0116: leave.s IL_0132
IL_009f: nop
IL_00a0: br.s IL_011a
IL_00a2: nop
IL_00a3: ldarg.0
IL_00a4: ldc.i4.2
IL_00a5: stfld ""int Test.<MainAsync>d__1.<b>5__2""
IL_00aa: call ""System.Runtime.CompilerServices.YieldAwaitable System.Threading.Tasks.Task.Yield()""
IL_00af: stloc.3
IL_00b0: ldloca.s V_3
IL_00b2: call ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter()""
IL_00b7: stloc.s V_5
IL_00b9: ldloca.s V_5
IL_00bb: call ""bool System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted.get""
IL_00c0: brtrue.s IL_0105
IL_00c2: ldarg.0
IL_00c3: ldc.i4.1
IL_00c4: dup
IL_00c5: stloc.0
IL_00c6: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_00cb: ldarg.0
IL_00cc: ldloc.s V_5
IL_00ce: stfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00d3: ldarg.0
IL_00d4: stloc.s V_4
IL_00d6: ldarg.0
IL_00d7: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_00dc: ldloca.s V_5
IL_00de: ldloca.s V_4
IL_00e0: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, Test.<MainAsync>d__1>(ref System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter, ref Test.<MainAsync>d__1)""
IL_00e5: nop
IL_00e6: leave.s IL_014a
IL_00e8: ldarg.0
IL_00e9: ldfld ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00ee: stloc.s V_5
IL_00f0: ldarg.0
IL_00f1: ldflda ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter Test.<MainAsync>d__1.<>u__1""
IL_00f6: initobj ""System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter""
IL_00fc: ldarg.0
IL_00fd: ldc.i4.m1
IL_00fe: dup
IL_00ff: stloc.0
IL_0100: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_0105: ldloca.s V_5
IL_0107: call ""void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult()""
IL_010c: nop
IL_010d: ldarg.0
IL_010e: ldfld ""int Test.<MainAsync>d__1.<b>5__2""
IL_0113: call ""void System.Console.WriteLine(int)""
IL_0118: nop
IL_0119: nop
IL_011a: leave.s IL_0136
}
catch System.Exception
{
IL_011
8
: stloc.s V_6
IL_011
a
: ldarg.0
IL_011
b
: ldc.i4.s -2
IL_01
1d
: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_012
2
: ldarg.0
IL_012
3
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_012
8
: ldloc.s V_6
IL_012
a
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_01
2f
: nop
IL_013
0: leave.s IL_0146
IL_011
c
: stloc.s V_6
IL_011
e
: ldarg.0
IL_011
f
: ldc.i4.s -2
IL_01
21
: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_012
6
: ldarg.0
IL_012
7
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_012
c
: ldloc.s V_6
IL_012
e
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_01
33
: nop
IL_013
4: leave.s IL_014a
}
IL_013
2
: ldarg.0
IL_013
3
: ldc.i4.s -2
IL_013
5
: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_013
a
: ldarg.0
IL_013
b
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_014
0
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_014
5
: nop
IL_014
6
: ret
IL_013
6
: ldarg.0
IL_013
7
: ldc.i4.s -2
IL_013
9
: stfld ""int Test.<MainAsync>d__1.<>1__state""
IL_013
e
: ldarg.0
IL_013
f
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Test.<MainAsync>d__1.<>t__builder""
IL_014
4
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_014
9
: nop
IL_014
a
: ret
}"
);
}
}
}
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncMainTests.cs
浏览文件 @
eea11615
...
...
@@ -1479,5 +1479,439 @@ static class Program {
// static Task Main() {
Diagnostic
(
ErrorCode
.
ERR_DeprecatedSymbolStr
,
"Task"
).
WithArguments
(
"MyExtensions.GetAwaiter(System.Threading.Tasks.Task)"
,
"test"
).
WithLocation
(
31
,
12
));
}
[
Fact
]
[
WorkItem
(
33542
,
"https://github.com/dotnet/roslyn/issues/33542"
)]
public
void
AwaitInFinallyInNestedTry_01
()
{
string
source
=
@"using System.Threading.Tasks;
class Program
{
static async Task Main()
{
try
{
try
{
return;
}
finally
{
await Task.CompletedTask;
}
}
catch
{
}
finally
{
await Task.CompletedTask;
}
}
}"
;
var
comp
=
CreateCompilation
(
source
,
options
:
TestOptions
.
ReleaseExe
.
WithOptimizationLevel
(
OptimizationLevel
.
Release
));
var
verifier
=
CompileAndVerify
(
comp
,
expectedOutput
:
""
);
verifier
.
VerifyIL
(
"Program.<Main>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"{
// Code size 426 (0x1aa)
.maxstack 3
.locals init (int V_0,
object V_1,
System.Runtime.CompilerServices.TaskAwaiter V_2,
int V_3,
System.Exception V_4)
IL_0000: ldarg.0
IL_0001: ldfld ""int Program.<Main>d__0.<>1__state""
IL_0006: stloc.0
.try
{
IL_0007: ldloc.0
IL_0008: brfalse.s IL_001f
IL_000a: ldloc.0
IL_000b: ldc.i4.1
IL_000c: beq IL_0125
IL_0011: ldarg.0
IL_0012: ldnull
IL_0013: stfld ""object Program.<Main>d__0.<>7__wrap1""
IL_0018: ldarg.0
IL_0019: ldc.i4.0
IL_001a: stfld ""int Program.<Main>d__0.<>7__wrap2""
IL_001f: nop
.try
{
IL_0020: ldloc.0
IL_0021: pop
IL_0022: nop
.try
{
IL_0023: ldloc.0
IL_0024: brfalse.s IL_007e
IL_0026: ldarg.0
IL_0027: ldnull
IL_0028: stfld ""object Program.<Main>d__0.<>7__wrap3""
IL_002d: ldarg.0
IL_002e: ldc.i4.0
IL_002f: stfld ""int Program.<Main>d__0.<>7__wrap4""
.try
{
IL_0034: ldarg.0
IL_0035: ldc.i4.1
IL_0036: stfld ""int Program.<Main>d__0.<>7__wrap4""
IL_003b: leave.s IL_0047
}
catch object
{
IL_003d: stloc.1
IL_003e: ldarg.0
IL_003f: ldloc.1
IL_0040: stfld ""object Program.<Main>d__0.<>7__wrap3""
IL_0045: leave.s IL_0047
}
IL_0047: call ""System.Threading.Tasks.Task System.Threading.Tasks.Task.CompletedTask.get""
IL_004c: callvirt ""System.Runtime.CompilerServices.TaskAwaiter System.Threading.Tasks.Task.GetAwaiter()""
IL_0051: stloc.2
IL_0052: ldloca.s V_2
IL_0054: call ""bool System.Runtime.CompilerServices.TaskAwaiter.IsCompleted.get""
IL_0059: brtrue.s IL_009a
IL_005b: ldarg.0
IL_005c: ldc.i4.0
IL_005d: dup
IL_005e: stloc.0
IL_005f: stfld ""int Program.<Main>d__0.<>1__state""
IL_0064: ldarg.0
IL_0065: ldloc.2
IL_0066: stfld ""System.Runtime.CompilerServices.TaskAwaiter Program.<Main>d__0.<>u__1""
IL_006b: ldarg.0
IL_006c: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Program.<Main>d__0.<>t__builder""
IL_0071: ldloca.s V_2
IL_0073: ldarg.0
IL_0074: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter, Program.<Main>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter, ref Program.<Main>d__0)""
IL_0079: leave IL_01a9
IL_007e: ldarg.0
IL_007f: ldfld ""System.Runtime.CompilerServices.TaskAwaiter Program.<Main>d__0.<>u__1""
IL_0084: stloc.2
IL_0085: ldarg.0
IL_0086: ldflda ""System.Runtime.CompilerServices.TaskAwaiter Program.<Main>d__0.<>u__1""
IL_008b: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_0091: ldarg.0
IL_0092: ldc.i4.m1
IL_0093: dup
IL_0094: stloc.0
IL_0095: stfld ""int Program.<Main>d__0.<>1__state""
IL_009a: ldloca.s V_2
IL_009c: call ""void System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_00a1: ldarg.0
IL_00a2: ldfld ""object Program.<Main>d__0.<>7__wrap3""
IL_00a7: stloc.1
IL_00a8: ldloc.1
IL_00a9: brfalse.s IL_00c0
IL_00ab: ldloc.1
IL_00ac: isinst ""System.Exception""
IL_00b1: dup
IL_00b2: brtrue.s IL_00b6
IL_00b4: ldloc.1
IL_00b5: throw
IL_00b6: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_00bb: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_00c0: ldarg.0
IL_00c1: ldfld ""int Program.<Main>d__0.<>7__wrap4""
IL_00c6: stloc.3
IL_00c7: ldloc.3
IL_00c8: ldc.i4.1
IL_00c9: bne.un.s IL_00cd
IL_00cb: leave.s IL_00db
IL_00cd: ldarg.0
IL_00ce: ldnull
IL_00cf: stfld ""object Program.<Main>d__0.<>7__wrap3""
IL_00d4: leave.s IL_00d9
}
catch object
{
IL_00d6: pop
IL_00d7: leave.s IL_00d9
}
IL_00d9: leave.s IL_00ee
IL_00db: ldarg.0
IL_00dc: ldc.i4.1
IL_00dd: stfld ""int Program.<Main>d__0.<>7__wrap2""
IL_00e2: leave.s IL_00ee
}
catch object
{
IL_00e4: stloc.1
IL_00e5: ldarg.0
IL_00e6: ldloc.1
IL_00e7: stfld ""object Program.<Main>d__0.<>7__wrap1""
IL_00ec: leave.s IL_00ee
}
IL_00ee: call ""System.Threading.Tasks.Task System.Threading.Tasks.Task.CompletedTask.get""
IL_00f3: callvirt ""System.Runtime.CompilerServices.TaskAwaiter System.Threading.Tasks.Task.GetAwaiter()""
IL_00f8: stloc.2
IL_00f9: ldloca.s V_2
IL_00fb: call ""bool System.Runtime.CompilerServices.TaskAwaiter.IsCompleted.get""
IL_0100: brtrue.s IL_0141
IL_0102: ldarg.0
IL_0103: ldc.i4.1
IL_0104: dup
IL_0105: stloc.0
IL_0106: stfld ""int Program.<Main>d__0.<>1__state""
IL_010b: ldarg.0
IL_010c: ldloc.2
IL_010d: stfld ""System.Runtime.CompilerServices.TaskAwaiter Program.<Main>d__0.<>u__1""
IL_0112: ldarg.0
IL_0113: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Program.<Main>d__0.<>t__builder""
IL_0118: ldloca.s V_2
IL_011a: ldarg.0
IL_011b: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter, Program.<Main>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter, ref Program.<Main>d__0)""
IL_0120: leave IL_01a9
IL_0125: ldarg.0
IL_0126: ldfld ""System.Runtime.CompilerServices.TaskAwaiter Program.<Main>d__0.<>u__1""
IL_012b: stloc.2
IL_012c: ldarg.0
IL_012d: ldflda ""System.Runtime.CompilerServices.TaskAwaiter Program.<Main>d__0.<>u__1""
IL_0132: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_0138: ldarg.0
IL_0139: ldc.i4.m1
IL_013a: dup
IL_013b: stloc.0
IL_013c: stfld ""int Program.<Main>d__0.<>1__state""
IL_0141: ldloca.s V_2
IL_0143: call ""void System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_0148: ldarg.0
IL_0149: ldfld ""object Program.<Main>d__0.<>7__wrap1""
IL_014e: stloc.1
IL_014f: ldloc.1
IL_0150: brfalse.s IL_0167
IL_0152: ldloc.1
IL_0153: isinst ""System.Exception""
IL_0158: dup
IL_0159: brtrue.s IL_015d
IL_015b: ldloc.1
IL_015c: throw
IL_015d: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_0162: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_0167: ldarg.0
IL_0168: ldfld ""int Program.<Main>d__0.<>7__wrap2""
IL_016d: stloc.3
IL_016e: ldloc.3
IL_016f: ldc.i4.1
IL_0170: bne.un.s IL_0174
IL_0172: leave.s IL_0196
IL_0174: ldarg.0
IL_0175: ldnull
IL_0176: stfld ""object Program.<Main>d__0.<>7__wrap1""
IL_017b: leave.s IL_0196
}
catch System.Exception
{
IL_017d: stloc.s V_4
IL_017f: ldarg.0
IL_0180: ldc.i4.s -2
IL_0182: stfld ""int Program.<Main>d__0.<>1__state""
IL_0187: ldarg.0
IL_0188: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Program.<Main>d__0.<>t__builder""
IL_018d: ldloc.s V_4
IL_018f: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_0194: leave.s IL_01a9
}
IL_0196: ldarg.0
IL_0197: ldc.i4.s -2
IL_0199: stfld ""int Program.<Main>d__0.<>1__state""
IL_019e: ldarg.0
IL_019f: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Program.<Main>d__0.<>t__builder""
IL_01a4: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_01a9: ret
}"
);
}
[
Fact
]
[
WorkItem
(
34720
,
"https://github.com/dotnet/roslyn/issues/34720"
)]
public
void
AwaitInFinallyInNestedTry_02
()
{
string
source
=
@"using System.IO;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
for (int i = 0; i < 5; i++)
{
using (new MemoryStream())
{
try
{
continue;
}
finally
{
await Task.Delay(1);
}
}
}
}
}"
;
var
comp
=
CreateCompilation
(
source
,
options
:
TestOptions
.
ReleaseExe
.
WithOptimizationLevel
(
OptimizationLevel
.
Release
));
var
verifier
=
CompileAndVerify
(
comp
,
expectedOutput
:
""
);
verifier
.
VerifyIL
(
"Program.<Main>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"{
// Code size 320 (0x140)
.maxstack 3
.locals init (int V_0,
object V_1,
System.Runtime.CompilerServices.TaskAwaiter V_2,
int V_3,
System.Exception V_4)
IL_0000: ldarg.0
IL_0001: ldfld ""int Program.<Main>d__0.<>1__state""
IL_0006: stloc.0
.try
{
IL_0007: ldloc.0
IL_0008: brfalse.s IL_0021
IL_000a: ldarg.0
IL_000b: ldc.i4.0
IL_000c: stfld ""int Program.<Main>d__0.<i>5__2""
IL_0011: br IL_0105
IL_0016: ldarg.0
IL_0017: newobj ""System.IO.MemoryStream..ctor()""
IL_001c: stfld ""System.IO.MemoryStream Program.<Main>d__0.<>7__wrap2""
IL_0021: nop
.try
{
IL_0022: ldloc.0
IL_0023: brfalse.s IL_007e
IL_0025: ldarg.0
IL_0026: ldnull
IL_0027: stfld ""object Program.<Main>d__0.<>7__wrap3""
IL_002c: ldarg.0
IL_002d: ldc.i4.0
IL_002e: stfld ""int Program.<Main>d__0.<>7__wrap4""
.try
{
IL_0033: ldarg.0
IL_0034: ldc.i4.1
IL_0035: stfld ""int Program.<Main>d__0.<>7__wrap4""
IL_003a: leave.s IL_0046
}
catch object
{
IL_003c: stloc.1
IL_003d: ldarg.0
IL_003e: ldloc.1
IL_003f: stfld ""object Program.<Main>d__0.<>7__wrap3""
IL_0044: leave.s IL_0046
}
IL_0046: ldc.i4.1
IL_0047: call ""System.Threading.Tasks.Task System.Threading.Tasks.Task.Delay(int)""
IL_004c: callvirt ""System.Runtime.CompilerServices.TaskAwaiter System.Threading.Tasks.Task.GetAwaiter()""
IL_0051: stloc.2
IL_0052: ldloca.s V_2
IL_0054: call ""bool System.Runtime.CompilerServices.TaskAwaiter.IsCompleted.get""
IL_0059: brtrue.s IL_009a
IL_005b: ldarg.0
IL_005c: ldc.i4.0
IL_005d: dup
IL_005e: stloc.0
IL_005f: stfld ""int Program.<Main>d__0.<>1__state""
IL_0064: ldarg.0
IL_0065: ldloc.2
IL_0066: stfld ""System.Runtime.CompilerServices.TaskAwaiter Program.<Main>d__0.<>u__1""
IL_006b: ldarg.0
IL_006c: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Program.<Main>d__0.<>t__builder""
IL_0071: ldloca.s V_2
IL_0073: ldarg.0
IL_0074: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter, Program.<Main>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter, ref Program.<Main>d__0)""
IL_0079: leave IL_013f
IL_007e: ldarg.0
IL_007f: ldfld ""System.Runtime.CompilerServices.TaskAwaiter Program.<Main>d__0.<>u__1""
IL_0084: stloc.2
IL_0085: ldarg.0
IL_0086: ldflda ""System.Runtime.CompilerServices.TaskAwaiter Program.<Main>d__0.<>u__1""
IL_008b: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_0091: ldarg.0
IL_0092: ldc.i4.m1
IL_0093: dup
IL_0094: stloc.0
IL_0095: stfld ""int Program.<Main>d__0.<>1__state""
IL_009a: ldloca.s V_2
IL_009c: call ""void System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_00a1: ldarg.0
IL_00a2: ldfld ""object Program.<Main>d__0.<>7__wrap3""
IL_00a7: stloc.1
IL_00a8: ldloc.1
IL_00a9: brfalse.s IL_00c0
IL_00ab: ldloc.1
IL_00ac: isinst ""System.Exception""
IL_00b1: dup
IL_00b2: brtrue.s IL_00b6
IL_00b4: ldloc.1
IL_00b5: throw
IL_00b6: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_00bb: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_00c0: ldarg.0
IL_00c1: ldfld ""int Program.<Main>d__0.<>7__wrap4""
IL_00c6: stloc.3
IL_00c7: ldloc.3
IL_00c8: ldc.i4.1
IL_00c9: bne.un.s IL_00cd
IL_00cb: leave.s IL_00f5
IL_00cd: ldarg.0
IL_00ce: ldnull
IL_00cf: stfld ""object Program.<Main>d__0.<>7__wrap3""
IL_00d4: leave.s IL_00ee
}
finally
{
IL_00d6: ldloc.0
IL_00d7: ldc.i4.0
IL_00d8: bge.s IL_00ed
IL_00da: ldarg.0
IL_00db: ldfld ""System.IO.MemoryStream Program.<Main>d__0.<>7__wrap2""
IL_00e0: brfalse.s IL_00ed
IL_00e2: ldarg.0
IL_00e3: ldfld ""System.IO.MemoryStream Program.<Main>d__0.<>7__wrap2""
IL_00e8: callvirt ""void System.IDisposable.Dispose()""
IL_00ed: endfinally
}
IL_00ee: ldarg.0
IL_00ef: ldnull
IL_00f0: stfld ""System.IO.MemoryStream Program.<Main>d__0.<>7__wrap2""
IL_00f5: ldarg.0
IL_00f6: ldfld ""int Program.<Main>d__0.<i>5__2""
IL_00fb: stloc.3
IL_00fc: ldarg.0
IL_00fd: ldloc.3
IL_00fe: ldc.i4.1
IL_00ff: add
IL_0100: stfld ""int Program.<Main>d__0.<i>5__2""
IL_0105: ldarg.0
IL_0106: ldfld ""int Program.<Main>d__0.<i>5__2""
IL_010b: ldc.i4.5
IL_010c: blt IL_0016
IL_0111: leave.s IL_012c
}
catch System.Exception
{
IL_0113: stloc.s V_4
IL_0115: ldarg.0
IL_0116: ldc.i4.s -2
IL_0118: stfld ""int Program.<Main>d__0.<>1__state""
IL_011d: ldarg.0
IL_011e: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Program.<Main>d__0.<>t__builder""
IL_0123: ldloc.s V_4
IL_0125: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_012a: leave.s IL_013f
}
IL_012c: ldarg.0
IL_012d: ldc.i4.s -2
IL_012f: stfld ""int Program.<Main>d__0.<>1__state""
IL_0134: ldarg.0
IL_0135: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder Program.<Main>d__0.<>t__builder""
IL_013a: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_013f: ret
}"
);
}
}
}
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncSpillTests.cs
浏览文件 @
eea11615
...
...
@@ -594,9 +594,9 @@ public static async Task<int> F(int[] array)
"
;
var
v
=
CompileAndVerify
(
source
,
options
:
TestOptions
.
DebugDll
);
v
.
VerifyIL
(
"Test.<F>d__2.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"
,
@"
{
// Code size 27
1 (0x10f
)
v
.
VerifyIL
(
"Test.<F>d__2.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"
,
@"
{
// Code size 27
3 (0x111
)
.maxstack 5
.locals init (int V_0,
int V_1,
...
...
@@ -610,122 +610,123 @@ .maxstack 5
.try
{
~IL_0007: ldloc.0
IL_0008: brfalse.s IL_0086
IL_000a: br.s IL_000c
-IL_000c: nop
-IL_000d: ldarg.0
IL_000e: ldarg.0
IL_000f: ldfld ""int[] Test.<F>d__2.array""
IL_0014: ldc.i4.1
IL_0015: ldelema ""int""
IL_001a: dup
IL_001b: ldind.i4
IL_001c: ldc.i4.2
IL_001d: add
IL_001e: dup
IL_001f: stloc.2
IL_0020: stind.i4
IL_0021: ldloc.2
IL_0022: stfld ""int Test.<F>d__2.<>s__1""
IL_0027: ldarg.0
IL_0028: ldarg.0
IL_0029: ldfld ""int[] Test.<F>d__2.array""
IL_002e: stfld ""int[] Test.<F>d__2.<>s__4""
IL_0033: ldarg.0
IL_0034: ldfld ""int[] Test.<F>d__2.<>s__4""
IL_0039: ldc.i4.3
IL_003a: ldelem.i4
IL_003b: pop
IL_003c: ldarg.0
IL_003d: ldarg.0
IL_003e: ldfld ""int[] Test.<F>d__2.<>s__4""
IL_0043: ldc.i4.3
IL_0044: ldelem.i4
IL_0045: stfld ""int Test.<F>d__2.<>s__2""
IL_004a: call ""System.Threading.Tasks.Task<int> Test.G()""
IL_004f: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_0054: stloc.3
~IL_0055: ldloca.s V_3
IL_0057: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_005c: brtrue.s IL_00a2
IL_005e: ldarg.0
IL_005f: ldc.i4.0
IL_0060: dup
IL_0061: stloc.0
IL_0062: stfld ""int Test.<F>d__2.<>1__state""
<IL_0067: ldarg.0
IL_0068: ldloc.3
IL_0069: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_006e: ldarg.0
IL_006f: stloc.s V_4
IL_0071: ldarg.0
IL_0072: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_0077: ldloca.s V_3
IL_0079: ldloca.s V_4
IL_007b: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<F>d__2>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<F>d__2)""
IL_0080: nop
IL_0081: leave IL_010e
>IL_0086: ldarg.0
IL_0087: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_008c: stloc.3
IL_008d: ldarg.0
IL_008e: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_0093: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_0099: ldarg.0
IL_009a: ldc.i4.m1
IL_009b: dup
IL_009c: stloc.0
IL_009d: stfld ""int Test.<F>d__2.<>1__state""
IL_00a2: ldarg.0
IL_00a3: ldloca.s V_3
IL_00a5: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_00aa: stfld ""int Test.<F>d__2.<>s__3""
IL_00af: ldarg.0
IL_00b0: ldfld ""int Test.<F>d__2.<>s__1""
IL_00b5: ldarg.0
IL_00b6: ldfld ""int[] Test.<F>d__2.<>s__4""
IL_00bb: ldc.i4.3
IL_00bc: ldarg.0
IL_00bd: ldfld ""int Test.<F>d__2.<>s__2""
IL_00c2: ldarg.0
IL_00c3: ldfld ""int Test.<F>d__2.<>s__3""
IL_00c8: add
IL_00c9: dup
IL_00ca: stloc.2
IL_00cb: stelem.i4
IL_00cc: ldloc.2
IL_00cd: ldc.i4.4
IL_00ce: call ""int Test.H(int, int, int)""
IL_00d3: pop
IL_00d4: ldarg.0
IL_00d5: ldnull
IL_00d6: stfld ""int[] Test.<F>d__2.<>s__4""
-IL_00db: ldc.i4.1
IL_00dc: stloc.1
IL_00dd: leave.s IL_00f9
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000e
IL_000c: br.s IL_0088
-IL_000e: nop
-IL_000f: ldarg.0
IL_0010: ldarg.0
IL_0011: ldfld ""int[] Test.<F>d__2.array""
IL_0016: ldc.i4.1
IL_0017: ldelema ""int""
IL_001c: dup
IL_001d: ldind.i4
IL_001e: ldc.i4.2
IL_001f: add
IL_0020: dup
IL_0021: stloc.2
IL_0022: stind.i4
IL_0023: ldloc.2
IL_0024: stfld ""int Test.<F>d__2.<>s__1""
IL_0029: ldarg.0
IL_002a: ldarg.0
IL_002b: ldfld ""int[] Test.<F>d__2.array""
IL_0030: stfld ""int[] Test.<F>d__2.<>s__4""
IL_0035: ldarg.0
IL_0036: ldfld ""int[] Test.<F>d__2.<>s__4""
IL_003b: ldc.i4.3
IL_003c: ldelem.i4
IL_003d: pop
IL_003e: ldarg.0
IL_003f: ldarg.0
IL_0040: ldfld ""int[] Test.<F>d__2.<>s__4""
IL_0045: ldc.i4.3
IL_0046: ldelem.i4
IL_0047: stfld ""int Test.<F>d__2.<>s__2""
IL_004c: call ""System.Threading.Tasks.Task<int> Test.G()""
IL_0051: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_0056: stloc.3
~IL_0057: ldloca.s V_3
IL_0059: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_005e: brtrue.s IL_00a4
IL_0060: ldarg.0
IL_0061: ldc.i4.0
IL_0062: dup
IL_0063: stloc.0
IL_0064: stfld ""int Test.<F>d__2.<>1__state""
<IL_0069: ldarg.0
IL_006a: ldloc.3
IL_006b: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_0070: ldarg.0
IL_0071: stloc.s V_4
IL_0073: ldarg.0
IL_0074: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_0079: ldloca.s V_3
IL_007b: ldloca.s V_4
IL_007d: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<F>d__2>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<F>d__2)""
IL_0082: nop
IL_0083: leave IL_0110
>IL_0088: ldarg.0
IL_0089: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_008e: stloc.3
IL_008f: ldarg.0
IL_0090: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_0095: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_009b: ldarg.0
IL_009c: ldc.i4.m1
IL_009d: dup
IL_009e: stloc.0
IL_009f: stfld ""int Test.<F>d__2.<>1__state""
IL_00a4: ldarg.0
IL_00a5: ldloca.s V_3
IL_00a7: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_00ac: stfld ""int Test.<F>d__2.<>s__3""
IL_00b1: ldarg.0
IL_00b2: ldfld ""int Test.<F>d__2.<>s__1""
IL_00b7: ldarg.0
IL_00b8: ldfld ""int[] Test.<F>d__2.<>s__4""
IL_00bd: ldc.i4.3
IL_00be: ldarg.0
IL_00bf: ldfld ""int Test.<F>d__2.<>s__2""
IL_00c4: ldarg.0
IL_00c5: ldfld ""int Test.<F>d__2.<>s__3""
IL_00ca: add
IL_00cb: dup
IL_00cc: stloc.2
IL_00cd: stelem.i4
IL_00ce: ldloc.2
IL_00cf: ldc.i4.4
IL_00d0: call ""int Test.H(int, int, int)""
IL_00d5: pop
IL_00d6: ldarg.0
IL_00d7: ldnull
IL_00d8: stfld ""int[] Test.<F>d__2.<>s__4""
-IL_00dd: ldc.i4.1
IL_00de: stloc.1
IL_00df: leave.s IL_00fb
}
catch System.Exception
{
~IL_00
df
: stloc.s V_5
IL_00e
1
: ldarg.0
IL_00e
2
: ldc.i4.s -2
IL_00e
4
: stfld ""int Test.<F>d__2.<>1__state""
IL_00e
9
: ldarg.0
IL_00e
a
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_00
ef
: ldloc.s V_5
IL_00f
1
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00f
6
: nop
IL_00f
7: leave.s IL_010e
~IL_00
e1
: stloc.s V_5
IL_00e
3
: ldarg.0
IL_00e
4
: ldc.i4.s -2
IL_00e
6
: stfld ""int Test.<F>d__2.<>1__state""
IL_00e
b
: ldarg.0
IL_00e
c
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_00
f1
: ldloc.s V_5
IL_00f
3
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00f
8
: nop
IL_00f
9: leave.s IL_0110
}
-IL_00f
9
: ldarg.0
IL_00f
a
: ldc.i4.s -2
IL_00f
c
: stfld ""int Test.<F>d__2.<>1__state""
~IL_010
1
: ldarg.0
IL_010
2
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_010
7
: ldloc.1
IL_010
8
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_010
d
: nop
IL_01
0e
: ret
-IL_00f
b
: ldarg.0
IL_00f
c
: ldc.i4.s -2
IL_00f
e
: stfld ""int Test.<F>d__2.<>1__state""
~IL_010
3
: ldarg.0
IL_010
4
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_010
9
: ldloc.1
IL_010
a
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_010
f
: nop
IL_01
10
: ret
}"
,
sequencePoints
:
"Test+<F>d__2.MoveNext"
);
}
...
...
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAsyncTests.cs
浏览文件 @
eea11615
...
...
@@ -2,7 +2,6 @@
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Threading
;
using
Microsoft.CodeAnalysis.CSharp.Symbols
;
using
Microsoft.CodeAnalysis.CSharp.Test.Utilities
;
using
Microsoft.CodeAnalysis.Test.Utilities
;
...
...
@@ -598,7 +597,6 @@ static async void Qux<T>(Func<Task<T>> x)
if ((int)(object)y == 1)
count++;
}
}
class Driver
...
...
@@ -783,7 +781,6 @@ public async void Run()
Driver.CompleteSignal.Set();
}
}
}
class Driver
...
...
@@ -2259,7 +2256,6 @@ .maxstack 2
"
);
}
[
Fact
]
public
void
AsyncStateMachineIL_Class_TaskT
()
{
...
...
@@ -2315,7 +2311,7 @@ .maxstack 2
c
.
VerifyIL
(
"Test.<F>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"
,
@"
{
// Code size 20
3 (0xcb
)
// Code size 20
5 (0xcd
)
.maxstack 3
.locals init (int V_0,
int V_1,
...
...
@@ -2328,84 +2324,85 @@ .maxstack 3
.try
{
~IL_0007: ldloc.0
IL_0008: brfalse.s IL_0069
IL_000a: br.s IL_000c
-IL_000c: nop
-IL_000d: call ""System.Threading.Tasks.TaskFactory System.Threading.Tasks.Task.Factory.get""
IL_0012: ldsfld ""System.Func<int> Test.<>c.<>9__0_0""
IL_0017: dup
IL_0018: brtrue.s IL_0031
IL_001a: pop
IL_001b: ldsfld ""Test.<>c Test.<>c.<>9""
IL_0020: ldftn ""int Test.<>c.<F>b__0_0()""
IL_0026: newobj ""System.Func<int>..ctor(object, System.IntPtr)""
IL_002b: dup
IL_002c: stsfld ""System.Func<int> Test.<>c.<>9__0_0""
IL_0031: callvirt ""System.Threading.Tasks.Task<int> System.Threading.Tasks.TaskFactory.StartNew<int>(System.Func<int>)""
IL_0036: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_003b: stloc.2
~IL_003c: ldloca.s V_2
IL_003e: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_0043: brtrue.s IL_0085
IL_0045: ldarg.0
IL_0046: ldc.i4.0
IL_0047: dup
IL_0048: stloc.0
IL_0049: stfld ""int Test.<F>d__0.<>1__state""
<IL_004e: ldarg.0
IL_004f: ldloc.2
IL_0050: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__0.<>u__1""
IL_0055: ldarg.0
IL_0056: stloc.3
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000e
IL_000c: br.s IL_006b
-IL_000e: nop
-IL_000f: call ""System.Threading.Tasks.TaskFactory System.Threading.Tasks.Task.Factory.get""
IL_0014: ldsfld ""System.Func<int> Test.<>c.<>9__0_0""
IL_0019: dup
IL_001a: brtrue.s IL_0033
IL_001c: pop
IL_001d: ldsfld ""Test.<>c Test.<>c.<>9""
IL_0022: ldftn ""int Test.<>c.<F>b__0_0()""
IL_0028: newobj ""System.Func<int>..ctor(object, System.IntPtr)""
IL_002d: dup
IL_002e: stsfld ""System.Func<int> Test.<>c.<>9__0_0""
IL_0033: callvirt ""System.Threading.Tasks.Task<int> System.Threading.Tasks.TaskFactory.StartNew<int>(System.Func<int>)""
IL_0038: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_003d: stloc.2
~IL_003e: ldloca.s V_2
IL_0040: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_0045: brtrue.s IL_0087
IL_0047: ldarg.0
IL_0048: ldc.i4.0
IL_0049: dup
IL_004a: stloc.0
IL_004b: stfld ""int Test.<F>d__0.<>1__state""
<IL_0050: ldarg.0
IL_0051: ldloc.2
IL_0052: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__0.<>u__1""
IL_0057: ldarg.0
IL_0058: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__0.<>t__builder""
IL_005d: ldloca.s V_2
IL_005f: ldloca.s V_3
IL_0061: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<F>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<F>d__0)""
IL_0066: nop
IL_0067: leave.s IL_00ca
>IL_0069: ldarg.0
IL_006a: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__0.<>u__1""
IL_006f: stloc.2
IL_0070: ldarg.0
IL_0071: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__0.<>u__1""
IL_0076: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_007c: ldarg.0
IL_007d: ldc.i4.m1
IL_007e: dup
IL_007f: stloc.0
IL_0080: stfld ""int Test.<F>d__0.<>1__state""
IL_0085: ldarg.0
IL_0086: ldloca.s V_2
IL_0088: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_008d: stfld ""int Test.<F>d__0.<>s__1""
IL_0092: ldarg.0
IL_0093: ldfld ""int Test.<F>d__0.<>s__1""
IL_0098: stloc.1
IL_0099: leave.s IL_00b5
IL_0058: stloc.3
IL_0059: ldarg.0
IL_005a: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__0.<>t__builder""
IL_005f: ldloca.s V_2
IL_0061: ldloca.s V_3
IL_0063: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<F>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<F>d__0)""
IL_0068: nop
IL_0069: leave.s IL_00cc
>IL_006b: ldarg.0
IL_006c: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__0.<>u__1""
IL_0071: stloc.2
IL_0072: ldarg.0
IL_0073: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__0.<>u__1""
IL_0078: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_007e: ldarg.0
IL_007f: ldc.i4.m1
IL_0080: dup
IL_0081: stloc.0
IL_0082: stfld ""int Test.<F>d__0.<>1__state""
IL_0087: ldarg.0
IL_0088: ldloca.s V_2
IL_008a: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_008f: stfld ""int Test.<F>d__0.<>s__1""
IL_0094: ldarg.0
IL_0095: ldfld ""int Test.<F>d__0.<>s__1""
IL_009a: stloc.1
IL_009b: leave.s IL_00b7
}
catch System.Exception
{
~IL_009
b
: stloc.s V_4
IL_009
d
: ldarg.0
IL_00
9e
: ldc.i4.s -2
IL_00a
0
: stfld ""int Test.<F>d__0.<>1__state""
IL_00a
5
: ldarg.0
IL_00a
6
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__0.<>t__builder""
IL_00a
b
: ldloc.s V_4
IL_00a
d
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00b
2
: nop
IL_00b
3: leave.s IL_00ca
~IL_009
d
: stloc.s V_4
IL_009
f
: ldarg.0
IL_00
a0
: ldc.i4.s -2
IL_00a
2
: stfld ""int Test.<F>d__0.<>1__state""
IL_00a
7
: ldarg.0
IL_00a
8
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__0.<>t__builder""
IL_00a
d
: ldloc.s V_4
IL_00a
f
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00b
4
: nop
IL_00b
5: leave.s IL_00cc
}
-IL_00b
5
: ldarg.0
IL_00b
6
: ldc.i4.s -2
IL_00b
8
: stfld ""int Test.<F>d__0.<>1__state""
~IL_00b
d
: ldarg.0
IL_00
be
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__0.<>t__builder""
IL_00c
3
: ldloc.1
IL_00c
4
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_00c
9
: nop
IL_00c
a
: ret
-IL_00b
7
: ldarg.0
IL_00b
8
: ldc.i4.s -2
IL_00b
a
: stfld ""int Test.<F>d__0.<>1__state""
~IL_00b
f
: ldarg.0
IL_00
c0
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__0.<>t__builder""
IL_00c
5
: ldloc.1
IL_00c
6
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_00c
b
: nop
IL_00c
c
: ret
}"
,
sequencePoints
:
"Test+<F>d__0.MoveNext"
);
c
.
VerifyIL
(
"Test.<F>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.SetStateMachine"
,
@"
...
...
@@ -3431,7 +3428,6 @@ namespace System.Runtime.CompilerServices { class AsyncMethodBuilderAttribute :
);
}
[
Fact
]
public
void
AsyncTasklikeBadAttributeArgument2
()
{
...
...
@@ -3546,7 +3542,6 @@ class Program {
);
}
[
Fact
]
public
void
AsyncTasklikeCreateMethod
()
{
...
...
@@ -3646,7 +3641,6 @@ namespace System.Runtime.CompilerServices {{ class AsyncMethodBuilderAttribute :
);
}
[
Fact
]
public
void
AsyncTasklikeBuilderAccessibility
()
{
...
...
@@ -3686,7 +3680,6 @@ namespace System.Runtime.CompilerServices {{ class AsyncMethodBuilderAttribute :
);
}
[
Fact
]
public
void
AsyncTasklikeLambdaOverloads
()
{
...
...
@@ -4048,7 +4041,7 @@ public static async Task<int> F()
v
.
VerifyIL
(
"Test.<F>d__2.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 22
2 (0xde
)
// Code size 22
4 (0xe0
)
.maxstack 3
.locals init (int V_0,
int V_1,
...
...
@@ -4061,92 +4054,93 @@ .maxstack 3
.try
{
~IL_0007: ldloc.0
IL_0008: brfalse.s IL_006b
IL_000a: br.s IL_000c
-IL_000c: nop
-IL_000d: ldarg.0
IL_000e: ldc.i4.s 10
IL_0010: newarr ""S""
IL_0015: stfld ""S[] Test.<F>d__2.<array>5__1""
-IL_001a: ldarg.0
IL_001b: ldarg.0
IL_001c: ldfld ""S[] Test.<F>d__2.<array>5__1""
IL_0021: stfld ""S[] Test.<F>d__2.<>s__3""
IL_0026: ldarg.0
IL_0027: ldfld ""S[] Test.<F>d__2.<>s__3""
IL_002c: ldc.i4.1
IL_002d: ldelema ""S""
IL_0032: pop
IL_0033: call ""System.Threading.Tasks.Task<int> Test.G()""
IL_0038: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_003d: stloc.2
~IL_003e: ldloca.s V_2
IL_0040: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_0045: brtrue.s IL_0087
IL_0047: ldarg.0
IL_0048: ldc.i4.0
IL_0049: dup
IL_004a: stloc.0
IL_004b: stfld ""int Test.<F>d__2.<>1__state""
<IL_0050: ldarg.0
IL_0051: ldloc.2
IL_0052: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_0057: ldarg.0
IL_0058: stloc.3
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000e
IL_000c: br.s IL_006d
-IL_000e: nop
-IL_000f: ldarg.0
IL_0010: ldc.i4.s 10
IL_0012: newarr ""S""
IL_0017: stfld ""S[] Test.<F>d__2.<array>5__1""
-IL_001c: ldarg.0
IL_001d: ldarg.0
IL_001e: ldfld ""S[] Test.<F>d__2.<array>5__1""
IL_0023: stfld ""S[] Test.<F>d__2.<>s__3""
IL_0028: ldarg.0
IL_0029: ldfld ""S[] Test.<F>d__2.<>s__3""
IL_002e: ldc.i4.1
IL_002f: ldelema ""S""
IL_0034: pop
IL_0035: call ""System.Threading.Tasks.Task<int> Test.G()""
IL_003a: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_003f: stloc.2
~IL_0040: ldloca.s V_2
IL_0042: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_0047: brtrue.s IL_0089
IL_0049: ldarg.0
IL_004a: ldc.i4.0
IL_004b: dup
IL_004c: stloc.0
IL_004d: stfld ""int Test.<F>d__2.<>1__state""
<IL_0052: ldarg.0
IL_0053: ldloc.2
IL_0054: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_0059: ldarg.0
IL_005a: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_005f: ldloca.s V_2
IL_0061: ldloca.s V_3
IL_0063: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<F>d__2>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<F>d__2)""
IL_0068: nop
IL_0069: leave.s IL_00dd
>IL_006b: ldarg.0
IL_006c: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_0071: stloc.2
IL_0072: ldarg.0
IL_0073: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_0078: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_007e: ldarg.0
IL_007f: ldc.i4.m1
IL_0080: dup
IL_0081: stloc.0
IL_0082: stfld ""int Test.<F>d__2.<>1__state""
IL_0087: ldarg.0
IL_0088: ldloca.s V_2
IL_008a: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_008f: stfld ""int Test.<F>d__2.<>s__2""
IL_0094: ldarg.0
IL_0095: ldfld ""S[] Test.<F>d__2.<>s__3""
IL_009a: ldc.i4.1
IL_009b: ldelema ""S""
IL_00a0: ldarg.0
IL_00a1: ldfld ""int Test.<F>d__2.<>s__2""
IL_00a6: call ""int S.Mutate(int)""
IL_00ab: stloc.1
IL_00ac: leave.s IL_00c8
IL_005a: stloc.3
IL_005b: ldarg.0
IL_005c: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_0061: ldloca.s V_2
IL_0063: ldloca.s V_3
IL_0065: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, Test.<F>d__2>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref Test.<F>d__2)""
IL_006a: nop
IL_006b: leave.s IL_00df
>IL_006d: ldarg.0
IL_006e: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_0073: stloc.2
IL_0074: ldarg.0
IL_0075: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> Test.<F>d__2.<>u__1""
IL_007a: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_0080: ldarg.0
IL_0081: ldc.i4.m1
IL_0082: dup
IL_0083: stloc.0
IL_0084: stfld ""int Test.<F>d__2.<>1__state""
IL_0089: ldarg.0
IL_008a: ldloca.s V_2
IL_008c: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_0091: stfld ""int Test.<F>d__2.<>s__2""
IL_0096: ldarg.0
IL_0097: ldfld ""S[] Test.<F>d__2.<>s__3""
IL_009c: ldc.i4.1
IL_009d: ldelema ""S""
IL_00a2: ldarg.0
IL_00a3: ldfld ""int Test.<F>d__2.<>s__2""
IL_00a8: call ""int S.Mutate(int)""
IL_00ad: stloc.1
IL_00ae: leave.s IL_00ca
}
catch System.Exception
{
~IL_00
ae
: stloc.s V_4
IL_00b
0
: ldarg.0
IL_00b
1
: ldc.i4.s -2
IL_00b
3
: stfld ""int Test.<F>d__2.<>1__state""
IL_00b
8
: ldarg.0
IL_00b
9
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_00
be
: ldloc.s V_4
IL_00c
0
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00c
5
: nop
IL_00c
6: leave.s IL_00dd
~IL_00
b0
: stloc.s V_4
IL_00b
2
: ldarg.0
IL_00b
3
: ldc.i4.s -2
IL_00b
5
: stfld ""int Test.<F>d__2.<>1__state""
IL_00b
a
: ldarg.0
IL_00b
b
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_00
c0
: ldloc.s V_4
IL_00c
2
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00c
7
: nop
IL_00c
8: leave.s IL_00df
}
-IL_00c
8
: ldarg.0
IL_00c
9
: ldc.i4.s -2
IL_00c
b
: stfld ""int Test.<F>d__2.<>1__state""
~IL_00d
0
: ldarg.0
IL_00d
1
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_00d
6
: ldloc.1
IL_00d
7
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_00d
c
: nop
IL_00d
d
: ret
-IL_00c
a
: ldarg.0
IL_00c
b
: ldc.i4.s -2
IL_00c
d
: stfld ""int Test.<F>d__2.<>1__state""
~IL_00d
2
: ldarg.0
IL_00d
3
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> Test.<F>d__2.<>t__builder""
IL_00d
8
: ldloc.1
IL_00d
9
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_00d
e
: nop
IL_00d
f
: ret
}"
,
sequencePoints
:
"Test+<F>d__2.MoveNext"
);
}
...
...
@@ -4800,7 +4794,6 @@ class C
Diagnostic
(
ErrorCode
.
ERR_MissingPredefinedMember
,
"{ await task; }"
).
WithArguments
(
"System.Runtime.CompilerServices.IAsyncStateMachine"
,
"SetStateMachine"
).
WithLocation
(
62
,
37
));
}
[
Fact
,
WorkItem
(
16531
,
"https://github.com/dotnet/roslyn/issues/16531"
)]
public
void
ArityMismatch
()
{
...
...
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAwaitForeachTests.cs
浏览文件 @
eea11615
...
...
@@ -2481,7 +2481,7 @@ public class DerivedEnumerator : Enumerator, System.IAsyncDisposable
verifier
.
VerifyIL
(
"C.<Main>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 26
0 (0x104
)
// Code size 26
2 (0x106
)
.maxstack 3
.locals init (int V_0,
System.Threading.CancellationToken V_1,
...
...
@@ -2496,116 +2496,117 @@ .maxstack 3
{
// sequence point: <hidden>
IL_0007: ldloc.0
IL_0008: brfalse IL_0098
IL_000d: br.s IL_000f
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_0011
IL_000c: br IL_009a
// sequence point: {
IL_00
0f
: nop
IL_00
11
: nop
// sequence point: foreach
IL_001
0
: nop
IL_001
2
: nop
// sequence point: new C()
IL_001
1
: ldarg.0
IL_001
2
: newobj ""C..ctor()""
IL_001
7
: ldloca.s V_1
IL_001
9
: initobj ""System.Threading.CancellationToken""
IL_00
1f
: ldloc.1
IL_002
0
: call ""C.Enumerator C.GetAsyncEnumerator(System.Threading.CancellationToken)""
IL_002
5
: stfld ""C.Enumerator C.<Main>d__0.<>s__1""
IL_001
3
: ldarg.0
IL_001
4
: newobj ""C..ctor()""
IL_001
9
: ldloca.s V_1
IL_001
b
: initobj ""System.Threading.CancellationToken""
IL_00
21
: ldloc.1
IL_002
2
: call ""C.Enumerator C.GetAsyncEnumerator(System.Threading.CancellationToken)""
IL_002
7
: stfld ""C.Enumerator C.<Main>d__0.<>s__1""
// sequence point: <hidden>
IL_002
a: br.s IL_005a
IL_002
c: br.s IL_005c
// sequence point: var i
IL_002
c
: ldarg.0
IL_002
d
: ldarg.0
IL_00
2e
: ldfld ""C.Enumerator C.<Main>d__0.<>s__1""
IL_003
3
: callvirt ""int C.Enumerator.Current.get""
IL_003
8
: stfld ""int C.<Main>d__0.<i>5__2""
IL_002
e
: ldarg.0
IL_002
f
: ldarg.0
IL_00
30
: ldfld ""C.Enumerator C.<Main>d__0.<>s__1""
IL_003
5
: callvirt ""int C.Enumerator.Current.get""
IL_003
a
: stfld ""int C.<Main>d__0.<i>5__2""
// sequence point: {
IL_003
d
: nop
IL_003
f
: nop
// sequence point: Write($""Got({i}) "");
IL_00
3e
: ldstr ""Got({0}) ""
IL_004
3
: ldarg.0
IL_004
4
: ldfld ""int C.<Main>d__0.<i>5__2""
IL_004
9
: box ""int""
IL_00
4e
: call ""string string.Format(string, object)""
IL_005
3
: call ""void System.Console.Write(string)""
IL_005
8
: nop
IL_00
40
: ldstr ""Got({0}) ""
IL_004
5
: ldarg.0
IL_004
6
: ldfld ""int C.<Main>d__0.<i>5__2""
IL_004
b
: box ""int""
IL_00
50
: call ""string string.Format(string, object)""
IL_005
5
: call ""void System.Console.Write(string)""
IL_005
a
: nop
// sequence point: }
IL_005
9
: nop
IL_005
b
: nop
// sequence point: in
IL_005
a
: ldarg.0
IL_005
b
: ldfld ""C.Enumerator C.<Main>d__0.<>s__1""
IL_006
0
: callvirt ""System.Threading.Tasks.Task<bool> C.Enumerator.MoveNextAsync()""
IL_006
5
: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<bool> System.Threading.Tasks.Task<bool>.GetAwaiter()""
IL_006
a
: stloc.2
IL_005
c
: ldarg.0
IL_005
d
: ldfld ""C.Enumerator C.<Main>d__0.<>s__1""
IL_006
2
: callvirt ""System.Threading.Tasks.Task<bool> C.Enumerator.MoveNextAsync()""
IL_006
7
: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<bool> System.Threading.Tasks.Task<bool>.GetAwaiter()""
IL_006
c
: stloc.2
// sequence point: <hidden>
IL_006
b
: ldloca.s V_2
IL_006
d
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<bool>.IsCompleted.get""
IL_007
2: brtrue.s IL_00b4
IL_007
4
: ldarg.0
IL_007
5
: ldc.i4.0
IL_007
6
: dup
IL_007
7
: stloc.0
IL_007
8
: stfld ""int C.<Main>d__0.<>1__state""
IL_006
d
: ldloca.s V_2
IL_006
f
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<bool>.IsCompleted.get""
IL_007
4: brtrue.s IL_00b6
IL_007
6
: ldarg.0
IL_007
7
: ldc.i4.0
IL_007
8
: dup
IL_007
9
: stloc.0
IL_007
a
: stfld ""int C.<Main>d__0.<>1__state""
// async: yield
IL_007d: ldarg.0
IL_007e: ldloc.2
IL_007f: stfld ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_0084: ldarg.0
IL_0085: stloc.3
IL_007f: ldarg.0
IL_0080: ldloc.2
IL_0081: stfld ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_0086: ldarg.0
IL_0087: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_008c: ldloca.s V_2
IL_008e: ldloca.s V_3
IL_0090: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<bool>, C.<Main>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<bool>, ref C.<Main>d__0)""
IL_0095: nop
IL_0096: leave.s IL_0103
IL_0087: stloc.3
IL_0088: ldarg.0
IL_0089: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_008e: ldloca.s V_2
IL_0090: ldloca.s V_3
IL_0092: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<bool>, C.<Main>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<bool>, ref C.<Main>d__0)""
IL_0097: nop
IL_0098: leave.s IL_0105
// async: resume
IL_009
8
: ldarg.0
IL_009
9
: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00
9e
: stloc.2
IL_00
9f
: ldarg.0
IL_00a
0
: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00a
5
: initobj ""System.Runtime.CompilerServices.TaskAwaiter<bool>""
IL_00a
b
: ldarg.0
IL_00a
c
: ldc.i4.m1
IL_00a
d
: dup
IL_00
ae
: stloc.0
IL_00
af
: stfld ""int C.<Main>d__0.<>1__state""
IL_00b
4
: ldarg.0
IL_00b
5
: ldloca.s V_2
IL_00b
7
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<bool>.GetResult()""
IL_00b
c
: stfld ""bool C.<Main>d__0.<>s__3""
IL_00c
1
: ldarg.0
IL_00c
2
: ldfld ""bool C.<Main>d__0.<>s__3""
IL_00c
7: brtrue IL_002c
IL_00c
c
: ldarg.0
IL_00c
d
: ldnull
IL_00
ce
: stfld ""C.Enumerator C.<Main>d__0.<>s__1""
IL_00d
3: leave.s IL_00ef
IL_009
a
: ldarg.0
IL_009
b
: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00
a0
: stloc.2
IL_00
a1
: ldarg.0
IL_00a
2
: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00a
7
: initobj ""System.Runtime.CompilerServices.TaskAwaiter<bool>""
IL_00a
d
: ldarg.0
IL_00a
e
: ldc.i4.m1
IL_00a
f
: dup
IL_00
b0
: stloc.0
IL_00
b1
: stfld ""int C.<Main>d__0.<>1__state""
IL_00b
6
: ldarg.0
IL_00b
7
: ldloca.s V_2
IL_00b
9
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<bool>.GetResult()""
IL_00b
e
: stfld ""bool C.<Main>d__0.<>s__3""
IL_00c
3
: ldarg.0
IL_00c
4
: ldfld ""bool C.<Main>d__0.<>s__3""
IL_00c
9: brtrue IL_002e
IL_00c
e
: ldarg.0
IL_00c
f
: ldnull
IL_00
d0
: stfld ""C.Enumerator C.<Main>d__0.<>s__1""
IL_00d
5: leave.s IL_00f1
}
catch System.Exception
{
// sequence point: <hidden>
IL_00d
5
: stloc.s V_4
IL_00d
7
: ldarg.0
IL_00d
8
: ldc.i4.s -2
IL_00d
a
: stfld ""int C.<Main>d__0.<>1__state""
IL_00
df
: ldarg.0
IL_00e
0
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00e
5
: ldloc.s V_4
IL_00e
7
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_00e
c
: nop
IL_00e
d: leave.s IL_0103
IL_00d
7
: stloc.s V_4
IL_00d
9
: ldarg.0
IL_00d
a
: ldc.i4.s -2
IL_00d
c
: stfld ""int C.<Main>d__0.<>1__state""
IL_00
e1
: ldarg.0
IL_00e
2
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00e
7
: ldloc.s V_4
IL_00e
9
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_00e
e
: nop
IL_00e
f: leave.s IL_0105
}
// sequence point: }
IL_00
ef
: ldarg.0
IL_00f
0
: ldc.i4.s -2
IL_00f
2
: stfld ""int C.<Main>d__0.<>1__state""
IL_00
f1
: ldarg.0
IL_00f
2
: ldc.i4.s -2
IL_00f
4
: stfld ""int C.<Main>d__0.<>1__state""
// sequence point: <hidden>
IL_00f
7
: ldarg.0
IL_00f
8
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00f
d
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_010
2
: nop
IL_010
3
: ret
IL_00f
9
: ldarg.0
IL_00f
a
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00f
f
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_010
4
: nop
IL_010
5
: ret
}"
,
sequencePoints
:
"C+<Main>d__0.MoveNext"
,
source
:
source
+
s_IAsyncEnumerable
);
}
...
...
@@ -2901,7 +2902,7 @@ public async ValueTask DisposeAsync()
// The thing to notice here is that the call to GetAsyncEnumerator is a constrained call (we're not boxing to `IAsyncEnumerable<int>`)
verifier
.
VerifyIL
(
"C.<Main>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 49
0 (0x1ea
)
// Code size 49
6 (0x1f0
)
.maxstack 3
.locals init (int V_0,
C V_1,
...
...
@@ -2919,198 +2920,201 @@ .maxstack 3
.try
{
IL_0007: ldloc.0
IL_0008: brfalse.s IL_00
48
IL_0008: brfalse.s IL_00
12
IL_000a: br.s IL_000c
IL_000c: ldloc.0
IL_000d: ldc.i4.1
IL_000e: beq IL_0156
IL_0013: br.s IL_0015
IL_0015: nop
IL_0016: nop
IL_0017: ldarg.0
IL_0018: ldloca.s V_1
IL_001a: dup
IL_001b: initobj ""C""
IL_0021: ldloca.s V_2
IL_0023: initobj ""System.Threading.CancellationToken""
IL_0029: ldloc.2
IL_002a: constrained. ""C""
IL_0030: callvirt ""System.Collections.Generic.IAsyncEnumerator<int> System.Collections.Generic.IAsyncEnumerable<int>.GetAsyncEnumerator(System.Threading.CancellationToken)""
IL_0035: stfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_003a: ldarg.0
IL_003b: ldnull
IL_003c: stfld ""object C.<Main>d__0.<>s__2""
IL_0041: ldarg.0
IL_0042: ldc.i4.0
IL_0043: stfld ""int C.<Main>d__0.<>s__3""
IL_0048: nop
IL_000e: beq.s IL_0014
IL_0010: br.s IL_0019
IL_0012: br.s IL_004c
IL_0014: br IL_015c
IL_0019: nop
IL_001a: nop
IL_001b: ldarg.0
IL_001c: ldloca.s V_1
IL_001e: dup
IL_001f: initobj ""C""
IL_0025: ldloca.s V_2
IL_0027: initobj ""System.Threading.CancellationToken""
IL_002d: ldloc.2
IL_002e: constrained. ""C""
IL_0034: callvirt ""System.Collections.Generic.IAsyncEnumerator<int> System.Collections.Generic.IAsyncEnumerable<int>.GetAsyncEnumerator(System.Threading.CancellationToken)""
IL_0039: stfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_003e: ldarg.0
IL_003f: ldnull
IL_0040: stfld ""object C.<Main>d__0.<>s__2""
IL_0045: ldarg.0
IL_0046: ldc.i4.0
IL_0047: stfld ""int C.<Main>d__0.<>s__3""
IL_004c: nop
.try
{
IL_0049: ldloc.0
IL_004a: brfalse.s IL_00c4
IL_004c: br.s IL_004e
IL_004e: br.s IL_007e
IL_0050: ldarg.0
IL_0051: ldarg.0
IL_0052: ldfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_0057: callvirt ""int System.Collections.Generic.IAsyncEnumerator<int>.Current.get""
IL_005c: stfld ""int C.<Main>d__0.<i>5__4""
IL_0061: nop
IL_0062: ldstr ""Got({0}) ""
IL_0067: ldarg.0
IL_0068: ldfld ""int C.<Main>d__0.<i>5__4""
IL_006d: box ""int""
IL_0072: call ""string string.Format(string, object)""
IL_0077: call ""void System.Console.Write(string)""
IL_007c: nop
IL_007d: nop
IL_007e: ldarg.0
IL_007f: ldfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_0084: callvirt ""System.Threading.Tasks.ValueTask<bool> System.Collections.Generic.IAsyncEnumerator<int>.MoveNextAsync()""
IL_0089: stloc.s V_4
IL_008b: ldloca.s V_4
IL_008d: call ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool> System.Threading.Tasks.ValueTask<bool>.GetAwaiter()""
IL_0092: stloc.3
IL_0093: ldloca.s V_3
IL_0095: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter<bool>.IsCompleted.get""
IL_009a: brtrue.s IL_00e0
IL_009c: ldarg.0
IL_009d: ldc.i4.0
IL_009e: dup
IL_009f: stloc.0
IL_00a0: stfld ""int C.<Main>d__0.<>1__state""
IL_00a5: ldarg.0
IL_00a6: ldloc.3
IL_00a7: stfld ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00ac: ldarg.0
IL_00ad: stloc.s V_5
IL_00af: ldarg.0
IL_00b0: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00b5: ldloca.s V_3
IL_00b7: ldloca.s V_5
IL_00b9: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.ValueTaskAwaiter<bool>, C.<Main>d__0>(ref System.Runtime.CompilerServices.ValueTaskAwaiter<bool>, ref C.<Main>d__0)""
IL_00be: nop
IL_00bf: leave IL_01e9
IL_00c4: ldarg.0
IL_00c5: ldfld ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00ca: stloc.3
IL_00cb: ldarg.0
IL_00cc: ldflda ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00d1: initobj ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool>""
IL_00d7: ldarg.0
IL_00d8: ldc.i4.m1
IL_00d9: dup
IL_00da: stloc.0
IL_00db: stfld ""int C.<Main>d__0.<>1__state""
IL_00e0: ldarg.0
IL_00e1: ldloca.s V_3
IL_00e3: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter<bool>.GetResult()""
IL_00e8: stfld ""bool C.<Main>d__0.<>s__5""
IL_00ed: ldarg.0
IL_00ee: ldfld ""bool C.<Main>d__0.<>s__5""
IL_00f3: brtrue IL_0050
IL_00f8: leave.s IL_0106
IL_004d: ldloc.0
IL_004e: brfalse.s IL_0052
IL_0050: br.s IL_0054
IL_0052: br.s IL_00ca
IL_0054: br.s IL_0084
IL_0056: ldarg.0
IL_0057: ldarg.0
IL_0058: ldfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_005d: callvirt ""int System.Collections.Generic.IAsyncEnumerator<int>.Current.get""
IL_0062: stfld ""int C.<Main>d__0.<i>5__4""
IL_0067: nop
IL_0068: ldstr ""Got({0}) ""
IL_006d: ldarg.0
IL_006e: ldfld ""int C.<Main>d__0.<i>5__4""
IL_0073: box ""int""
IL_0078: call ""string string.Format(string, object)""
IL_007d: call ""void System.Console.Write(string)""
IL_0082: nop
IL_0083: nop
IL_0084: ldarg.0
IL_0085: ldfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_008a: callvirt ""System.Threading.Tasks.ValueTask<bool> System.Collections.Generic.IAsyncEnumerator<int>.MoveNextAsync()""
IL_008f: stloc.s V_4
IL_0091: ldloca.s V_4
IL_0093: call ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool> System.Threading.Tasks.ValueTask<bool>.GetAwaiter()""
IL_0098: stloc.3
IL_0099: ldloca.s V_3
IL_009b: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter<bool>.IsCompleted.get""
IL_00a0: brtrue.s IL_00e6
IL_00a2: ldarg.0
IL_00a3: ldc.i4.0
IL_00a4: dup
IL_00a5: stloc.0
IL_00a6: stfld ""int C.<Main>d__0.<>1__state""
IL_00ab: ldarg.0
IL_00ac: ldloc.3
IL_00ad: stfld ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00b2: ldarg.0
IL_00b3: stloc.s V_5
IL_00b5: ldarg.0
IL_00b6: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00bb: ldloca.s V_3
IL_00bd: ldloca.s V_5
IL_00bf: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.ValueTaskAwaiter<bool>, C.<Main>d__0>(ref System.Runtime.CompilerServices.ValueTaskAwaiter<bool>, ref C.<Main>d__0)""
IL_00c4: nop
IL_00c5: leave IL_01ef
IL_00ca: ldarg.0
IL_00cb: ldfld ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00d0: stloc.3
IL_00d1: ldarg.0
IL_00d2: ldflda ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00d7: initobj ""System.Runtime.CompilerServices.ValueTaskAwaiter<bool>""
IL_00dd: ldarg.0
IL_00de: ldc.i4.m1
IL_00df: dup
IL_00e0: stloc.0
IL_00e1: stfld ""int C.<Main>d__0.<>1__state""
IL_00e6: ldarg.0
IL_00e7: ldloca.s V_3
IL_00e9: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter<bool>.GetResult()""
IL_00ee: stfld ""bool C.<Main>d__0.<>s__5""
IL_00f3: ldarg.0
IL_00f4: ldfld ""bool C.<Main>d__0.<>s__5""
IL_00f9: brtrue IL_0056
IL_00fe: leave.s IL_010c
}
catch object
{
IL_0
0fa
: stloc.s V_6
IL_0
0fc
: ldarg.0
IL_0
0fd
: ldloc.s V_6
IL_0
0ff
: stfld ""object C.<Main>d__0.<>s__2""
IL_010
4: leave.s IL_0106
}
IL_010
6
: ldarg.0
IL_010
7
: ldfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_01
0c: brfalse.s IL_017b
IL_01
0e
: ldarg.0
IL_01
0f
: ldfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_011
4
: callvirt ""System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync()""
IL_011
9
: stloc.s V_8
IL_01
1b
: ldloca.s V_8
IL_01
1d
: call ""System.Runtime.CompilerServices.ValueTaskAwaiter System.Threading.Tasks.ValueTask.GetAwaiter()""
IL_012
2
: stloc.s V_7
IL_012
4
: ldloca.s V_7
IL_012
6
: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter.IsCompleted.get""
IL_01
2b: brtrue.s IL_0173
IL_01
2d
: ldarg.0
IL_01
2e
: ldc.i4.1
IL_01
2f
: dup
IL_013
0
: stloc.0
IL_013
1
: stfld ""int C.<Main>d__0.<>1__state""
IL_013
6
: ldarg.0
IL_013
7
: ldloc.s V_7
IL_013
9
: stfld ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__2""
IL_01
3e
: ldarg.0
IL_01
3f
: stloc.s V_5
IL_014
1
: ldarg.0
IL_014
2
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_014
7
: ldloca.s V_7
IL_014
9
: ldloca.s V_5
IL_01
4b
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.ValueTaskAwaiter, C.<Main>d__0>(ref System.Runtime.CompilerServices.ValueTaskAwaiter, ref C.<Main>d__0)""
IL_015
0
: nop
IL_015
1: leave IL_01e9
IL_015
6
: ldarg.0
IL_015
7
: ldfld ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__2""
IL_01
5c
: stloc.s V_7
IL_01
5e
: ldarg.0
IL_01
5f
: ldflda ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__2""
IL_016
4
: initobj ""System.Runtime.CompilerServices.ValueTaskAwaiter""
IL_01
6a
: ldarg.0
IL_01
6b
: ldc.i4.m1
IL_01
6c
: dup
IL_01
6d
: stloc.0
IL_01
6e
: stfld ""int C.<Main>d__0.<>1__state""
IL_017
3
: ldloca.s V_7
IL_017
5
: call ""void System.Runtime.CompilerServices.ValueTaskAwaiter.GetResult()""
IL_01
7a
: nop
IL_01
7b
: ldarg.0
IL_01
7c
: ldfld ""object C.<Main>d__0.<>s__2""
IL_018
1
: stloc.s V_6
IL_018
3
: ldloc.s V_6
IL_018
5: brfalse.s IL_01a4
IL_018
7
: ldloc.s V_6
IL_018
9
: isinst ""System.Exception""
IL_01
8e
: stloc.s V_9
IL_019
0
: ldloc.s V_9
IL_019
2: brtrue.s IL_0197
IL_019
4
: ldloc.s V_6
IL_019
6
: throw
IL_019
7
: ldloc.s V_9
IL_019
9
: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_01
9e
: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_01a
3
: nop
IL_01a
4
: ldarg.0
IL_01a
5
: ldfld ""int C.<Main>d__0.<>s__3""
IL_01
aa
: pop
IL_01
ab
: ldarg.0
IL_01
ac
: ldnull
IL_01
ad
: stfld ""object C.<Main>d__0.<>s__2""
IL_01b
2
: ldarg.0
IL_01b
3
: ldnull
IL_01b
4
: stfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_01b
9: leave.s IL_01d5
IL_0
100
: stloc.s V_6
IL_0
102
: ldarg.0
IL_0
103
: ldloc.s V_6
IL_0
105
: stfld ""object C.<Main>d__0.<>s__2""
IL_010
a: leave.s IL_010c
}
IL_010
c
: ldarg.0
IL_010
d
: ldfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_01
12: brfalse.s IL_0181
IL_01
14
: ldarg.0
IL_01
15
: ldfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_011
a
: callvirt ""System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync()""
IL_011
f
: stloc.s V_8
IL_01
21
: ldloca.s V_8
IL_01
23
: call ""System.Runtime.CompilerServices.ValueTaskAwaiter System.Threading.Tasks.ValueTask.GetAwaiter()""
IL_012
8
: stloc.s V_7
IL_012
a
: ldloca.s V_7
IL_012
c
: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter.IsCompleted.get""
IL_01
31: brtrue.s IL_0179
IL_01
33
: ldarg.0
IL_01
34
: ldc.i4.1
IL_01
35
: dup
IL_013
6
: stloc.0
IL_013
7
: stfld ""int C.<Main>d__0.<>1__state""
IL_013
c
: ldarg.0
IL_013
d
: ldloc.s V_7
IL_013
f
: stfld ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__2""
IL_01
44
: ldarg.0
IL_01
45
: stloc.s V_5
IL_014
7
: ldarg.0
IL_014
8
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_014
d
: ldloca.s V_7
IL_014
f
: ldloca.s V_5
IL_01
51
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.ValueTaskAwaiter, C.<Main>d__0>(ref System.Runtime.CompilerServices.ValueTaskAwaiter, ref C.<Main>d__0)""
IL_015
6
: nop
IL_015
7: leave IL_01ef
IL_015
c
: ldarg.0
IL_015
d
: ldfld ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__2""
IL_01
62
: stloc.s V_7
IL_01
64
: ldarg.0
IL_01
65
: ldflda ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__2""
IL_016
a
: initobj ""System.Runtime.CompilerServices.ValueTaskAwaiter""
IL_01
70
: ldarg.0
IL_01
71
: ldc.i4.m1
IL_01
72
: dup
IL_01
73
: stloc.0
IL_01
74
: stfld ""int C.<Main>d__0.<>1__state""
IL_017
9
: ldloca.s V_7
IL_017
b
: call ""void System.Runtime.CompilerServices.ValueTaskAwaiter.GetResult()""
IL_01
80
: nop
IL_01
81
: ldarg.0
IL_01
82
: ldfld ""object C.<Main>d__0.<>s__2""
IL_018
7
: stloc.s V_6
IL_018
9
: ldloc.s V_6
IL_018
b: brfalse.s IL_01aa
IL_018
d
: ldloc.s V_6
IL_018
f
: isinst ""System.Exception""
IL_01
94
: stloc.s V_9
IL_019
6
: ldloc.s V_9
IL_019
8: brtrue.s IL_019d
IL_019
a
: ldloc.s V_6
IL_019
c
: throw
IL_019
d
: ldloc.s V_9
IL_019
f
: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_01
a4
: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_01a
9
: nop
IL_01a
a
: ldarg.0
IL_01a
b
: ldfld ""int C.<Main>d__0.<>s__3""
IL_01
b0
: pop
IL_01
b1
: ldarg.0
IL_01
b2
: ldnull
IL_01
b3
: stfld ""object C.<Main>d__0.<>s__2""
IL_01b
8
: ldarg.0
IL_01b
9
: ldnull
IL_01b
a
: stfld ""System.Collections.Generic.IAsyncEnumerator<int> C.<Main>d__0.<>s__1""
IL_01b
f: leave.s IL_01db
}
catch System.Exception
{
IL_01
bb
: stloc.s V_9
IL_01
bd
: ldarg.0
IL_01
be
: ldc.i4.s -2
IL_01c
0
: stfld ""int C.<Main>d__0.<>1__state""
IL_01c
5
: ldarg.0
IL_01c
6
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_01
cb
: ldloc.s V_9
IL_01
cd
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_01d
2
: nop
IL_01d
3: leave.s IL_01e9
IL_01
c1
: stloc.s V_9
IL_01
c3
: ldarg.0
IL_01
c4
: ldc.i4.s -2
IL_01c
6
: stfld ""int C.<Main>d__0.<>1__state""
IL_01c
b
: ldarg.0
IL_01c
c
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_01
d1
: ldloc.s V_9
IL_01
d3
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_01d
8
: nop
IL_01d
9: leave.s IL_01ef
}
IL_01d
5
: ldarg.0
IL_01d
6
: ldc.i4.s -2
IL_01d
8
: stfld ""int C.<Main>d__0.<>1__state""
IL_01
dd
: ldarg.0
IL_01
de
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_01e
3
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_01e
8
: nop
IL_01e
9
: ret
IL_01d
b
: ldarg.0
IL_01d
c
: ldc.i4.s -2
IL_01d
e
: stfld ""int C.<Main>d__0.<>1__state""
IL_01
e3
: ldarg.0
IL_01
e4
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_01e
9
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_01e
e
: nop
IL_01e
f
: ret
}"
);
}
...
...
@@ -4183,7 +4187,7 @@ await foreach (var i in c)
verifier
.
VerifyIL
(
"C.<Main>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 25
6 (0x100
)
// Code size 25
8 (0x102
)
.maxstack 3
.locals init (int V_0,
System.Threading.CancellationToken V_1,
...
...
@@ -4198,117 +4202,118 @@ .maxstack 3
{
// sequence point: <hidden>
IL_0007: ldloc.0
IL_0008: brfalse IL_0094
IL_000d: br.s IL_000f
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_0011
IL_000c: br IL_0096
// sequence point: {
IL_00
0f
: nop
IL_00
11
: nop
// sequence point: ICollection<int> c = new Collection<int>();
IL_001
0
: ldarg.0
IL_001
1
: newobj ""Collection<int>..ctor()""
IL_001
6
: stfld ""ICollection<int> C.<Main>d__0.<c>5__1""
IL_001
2
: ldarg.0
IL_001
3
: newobj ""Collection<int>..ctor()""
IL_001
8
: stfld ""ICollection<int> C.<Main>d__0.<c>5__1""
// sequence point: foreach
IL_001
b
: nop
IL_001
d
: nop
// sequence point: c
IL_001
c
: ldarg.0
IL_001
d
: ldarg.0
IL_00
1e
: ldfld ""ICollection<int> C.<Main>d__0.<c>5__1""
IL_002
3
: ldloca.s V_1
IL_002
5
: initobj ""System.Threading.CancellationToken""
IL_002
b
: ldloc.1
IL_002
c
: callvirt ""IMyAsyncEnumerator<int> ICollection<int>.GetAsyncEnumerator(System.Threading.CancellationToken)""
IL_003
1
: stfld ""IMyAsyncEnumerator<int> C.<Main>d__0.<>s__2""
IL_001
e
: ldarg.0
IL_001
f
: ldarg.0
IL_00
20
: ldfld ""ICollection<int> C.<Main>d__0.<c>5__1""
IL_002
5
: ldloca.s V_1
IL_002
7
: initobj ""System.Threading.CancellationToken""
IL_002
d
: ldloc.1
IL_002
e
: callvirt ""IMyAsyncEnumerator<int> ICollection<int>.GetAsyncEnumerator(System.Threading.CancellationToken)""
IL_003
3
: stfld ""IMyAsyncEnumerator<int> C.<Main>d__0.<>s__2""
// sequence point: <hidden>
IL_003
6: br.s IL_0056
IL_003
8: br.s IL_0058
// sequence point: var i
IL_003
8
: ldarg.0
IL_003
9
: ldarg.0
IL_003
a
: ldfld ""IMyAsyncEnumerator<int> C.<Main>d__0.<>s__2""
IL_00
3f
: callvirt ""int IMyAsyncEnumerator<int>.Current.get""
IL_004
4
: stfld ""int C.<Main>d__0.<i>5__3""
IL_003
a
: ldarg.0
IL_003
b
: ldarg.0
IL_003
c
: ldfld ""IMyAsyncEnumerator<int> C.<Main>d__0.<>s__2""
IL_00
41
: callvirt ""int IMyAsyncEnumerator<int>.Current.get""
IL_004
6
: stfld ""int C.<Main>d__0.<i>5__3""
// sequence point: {
IL_004
9
: nop
IL_004
b
: nop
// sequence point: Write($""Got "");
IL_004
a
: ldstr ""Got ""
IL_00
4f
: call ""void System.Console.Write(string)""
IL_005
4
: nop
IL_004
c
: ldstr ""Got ""
IL_00
51
: call ""void System.Console.Write(string)""
IL_005
6
: nop
// sequence point: }
IL_005
5
: nop
IL_005
7
: nop
// sequence point: in
IL_005
6
: ldarg.0
IL_005
7
: ldfld ""IMyAsyncEnumerator<int> C.<Main>d__0.<>s__2""
IL_005
c
: callvirt ""System.Threading.Tasks.Task<bool> IMyAsyncEnumerator<int>.MoveNextAsync()""
IL_006
1
: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<bool> System.Threading.Tasks.Task<bool>.GetAwaiter()""
IL_006
6
: stloc.2
IL_005
8
: ldarg.0
IL_005
9
: ldfld ""IMyAsyncEnumerator<int> C.<Main>d__0.<>s__2""
IL_005
e
: callvirt ""System.Threading.Tasks.Task<bool> IMyAsyncEnumerator<int>.MoveNextAsync()""
IL_006
3
: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<bool> System.Threading.Tasks.Task<bool>.GetAwaiter()""
IL_006
8
: stloc.2
// sequence point: <hidden>
IL_006
7
: ldloca.s V_2
IL_006
9
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<bool>.IsCompleted.get""
IL_00
6e: brtrue.s IL_00b0
IL_007
0
: ldarg.0
IL_007
1
: ldc.i4.0
IL_007
2
: dup
IL_007
3
: stloc.0
IL_007
4
: stfld ""int C.<Main>d__0.<>1__state""
IL_006
9
: ldloca.s V_2
IL_006
b
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<bool>.IsCompleted.get""
IL_00
70: brtrue.s IL_00b2
IL_007
2
: ldarg.0
IL_007
3
: ldc.i4.0
IL_007
4
: dup
IL_007
5
: stloc.0
IL_007
6
: stfld ""int C.<Main>d__0.<>1__state""
// async: yield
IL_0079: ldarg.0
IL_007a: ldloc.2
IL_007b: stfld ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_0080: ldarg.0
IL_0081: stloc.3
IL_007b: ldarg.0
IL_007c: ldloc.2
IL_007d: stfld ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_0082: ldarg.0
IL_0083: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_0088: ldloca.s V_2
IL_008a: ldloca.s V_3
IL_008c: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<bool>, C.<Main>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<bool>, ref C.<Main>d__0)""
IL_0091: nop
IL_0092: leave.s IL_00ff
IL_0083: stloc.3
IL_0084: ldarg.0
IL_0085: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_008a: ldloca.s V_2
IL_008c: ldloca.s V_3
IL_008e: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<bool>, C.<Main>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<bool>, ref C.<Main>d__0)""
IL_0093: nop
IL_0094: leave.s IL_0101
// async: resume
IL_009
4
: ldarg.0
IL_009
5
: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_009
a
: stloc.2
IL_009
b
: ldarg.0
IL_009
c
: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00a
1
: initobj ""System.Runtime.CompilerServices.TaskAwaiter<bool>""
IL_00a
7
: ldarg.0
IL_00a
8
: ldc.i4.m1
IL_00a
9
: dup
IL_00a
a
: stloc.0
IL_00a
b
: stfld ""int C.<Main>d__0.<>1__state""
IL_00b
0
: ldarg.0
IL_00b
1
: ldloca.s V_2
IL_00b
3
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<bool>.GetResult()""
IL_00b
8
: stfld ""bool C.<Main>d__0.<>s__4""
IL_00b
d
: ldarg.0
IL_00
be
: ldfld ""bool C.<Main>d__0.<>s__4""
IL_00c
3: brtrue IL_0038
IL_00c
8
: ldarg.0
IL_00c
9
: ldnull
IL_00c
a
: stfld ""IMyAsyncEnumerator<int> C.<Main>d__0.<>s__2""
IL_00
cf: leave.s IL_00eb
IL_009
6
: ldarg.0
IL_009
7
: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_009
c
: stloc.2
IL_009
d
: ldarg.0
IL_009
e
: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<bool> C.<Main>d__0.<>u__1""
IL_00a
3
: initobj ""System.Runtime.CompilerServices.TaskAwaiter<bool>""
IL_00a
9
: ldarg.0
IL_00a
a
: ldc.i4.m1
IL_00a
b
: dup
IL_00a
c
: stloc.0
IL_00a
d
: stfld ""int C.<Main>d__0.<>1__state""
IL_00b
2
: ldarg.0
IL_00b
3
: ldloca.s V_2
IL_00b
5
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<bool>.GetResult()""
IL_00b
a
: stfld ""bool C.<Main>d__0.<>s__4""
IL_00b
f
: ldarg.0
IL_00
c0
: ldfld ""bool C.<Main>d__0.<>s__4""
IL_00c
5: brtrue IL_003a
IL_00c
a
: ldarg.0
IL_00c
b
: ldnull
IL_00c
c
: stfld ""IMyAsyncEnumerator<int> C.<Main>d__0.<>s__2""
IL_00
d1: leave.s IL_00ed
}
catch System.Exception
{
// sequence point: <hidden>
IL_00d
1
: stloc.s V_4
IL_00d
3
: ldarg.0
IL_00d
4
: ldc.i4.s -2
IL_00d
6
: stfld ""int C.<Main>d__0.<>1__state""
IL_00d
b
: ldarg.0
IL_00d
c
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00e
1
: ldloc.s V_4
IL_00e
3
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_00e
8
: nop
IL_00e
9: leave.s IL_00ff
IL_00d
3
: stloc.s V_4
IL_00d
5
: ldarg.0
IL_00d
6
: ldc.i4.s -2
IL_00d
8
: stfld ""int C.<Main>d__0.<>1__state""
IL_00d
d
: ldarg.0
IL_00d
e
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00e
3
: ldloc.s V_4
IL_00e
5
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_00e
a
: nop
IL_00e
b: leave.s IL_0101
}
// sequence point: }
IL_00e
b
: ldarg.0
IL_00e
c
: ldc.i4.s -2
IL_00
ee
: stfld ""int C.<Main>d__0.<>1__state""
IL_00e
d
: ldarg.0
IL_00e
e
: ldc.i4.s -2
IL_00
f0
: stfld ""int C.<Main>d__0.<>1__state""
// sequence point: <hidden>
IL_00f
3
: ldarg.0
IL_00f
4
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00f
9
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_0
0fe
: nop
IL_0
0ff
: ret
IL_00f
5
: ldarg.0
IL_00f
6
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_00f
b
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_0
100
: nop
IL_0
101
: ret
}"
,
sequencePoints
:
"C+<Main>d__0.MoveNext"
,
source
:
source
);
}
...
...
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenAwaitUsingTests.cs
浏览文件 @
eea11615
...
...
@@ -1001,7 +1001,7 @@ public System.Threading.Tasks.ValueTask DisposeAsync()
var
verifier
=
CompileAndVerify
(
comp
,
expectedOutput
:
"body DisposeAsync"
);
verifier
.
VerifyIL
(
"C.<Main>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 30
4 (0x130
)
// Code size 30
6 (0x132
)
.maxstack 3
.locals init (int V_0,
object V_1,
...
...
@@ -1016,137 +1016,137 @@ .maxstack 3
.try
{
IL_0007: ldloc.0
IL_0008: brfalse IL_0097
IL_000d: br.s IL_000f
IL_000f: nop
IL_0010: ldarg.0
IL_0011: newobj ""C..ctor()""
IL_0016: stfld ""C C.<Main>d__0.<>s__1""
IL_001b: ldarg.0
IL_001c: ldnull
IL_001d: stfld ""object C.<Main>d__0.<>s__2""
IL_0022: ldarg.0
IL_0023: ldc.i4.0
IL_0024: stfld ""int C.<Main>d__0.<>s__3""
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_0011
IL_000c: br IL_0099
IL_0011: nop
IL_0012: ldarg.0
IL_0013: newobj ""C..ctor()""
IL_0018: stfld ""C C.<Main>d__0.<>s__1""
IL_001d: ldarg.0
IL_001e: ldnull
IL_001f: stfld ""object C.<Main>d__0.<>s__2""
IL_0024: ldarg.0
IL_0025: ldc.i4.0
IL_0026: stfld ""int C.<Main>d__0.<>s__3""
.try
{
IL_002
9
: nop
IL_002
a
: ldstr ""body ""
IL_00
2f
: call ""void System.Console.Write(string)""
IL_003
4
: nop
IL_003
5: br.s IL_0037
IL_003
7
: ldarg.0
IL_003
8
: ldc.i4.1
IL_003
9
: stfld ""int C.<Main>d__0.<>s__3""
IL_00
3e: leave.s IL_004a
IL_002
b
: nop
IL_002
c
: ldstr ""body ""
IL_00
31
: call ""void System.Console.Write(string)""
IL_003
6
: nop
IL_003
7: br.s IL_0039
IL_003
9
: ldarg.0
IL_003
a
: ldc.i4.1
IL_003
b
: stfld ""int C.<Main>d__0.<>s__3""
IL_00
40: leave.s IL_004c
}
catch object
{
IL_004
0
: stloc.1
IL_004
1
: ldarg.0
IL_004
2
: ldloc.1
IL_004
3
: stfld ""object C.<Main>d__0.<>s__2""
IL_004
8: leave.s IL_004a
}
IL_004
a
: ldarg.0
IL_004
b
: ldfld ""C C.<Main>d__0.<>s__1""
IL_005
0: brfalse.s IL_00bb
IL_005
2
: ldarg.0
IL_005
3
: ldfld ""C C.<Main>d__0.<>s__1""
IL_005
8
: callvirt ""System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync()""
IL_005
d
: stloc.3
IL_00
5e
: ldloca.s V_3
IL_006
0
: call ""System.Runtime.CompilerServices.ValueTaskAwaiter System.Threading.Tasks.ValueTask.GetAwaiter()""
IL_006
5
: stloc.2
IL_006
6
: ldloca.s V_2
IL_006
8
: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter.IsCompleted.get""
IL_006
d: brtrue.s IL_00b3
IL_00
6f
: ldarg.0
IL_007
0
: ldc.i4.0
IL_007
1
: dup
IL_007
2
: stloc.0
IL_007
3
: stfld ""int C.<Main>d__0.<>1__state""
IL_007
8
: ldarg.0
IL_007
9
: ldloc.2
IL_007
a
: stfld ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__1""
IL_00
7f
: ldarg.0
IL_008
0
: stloc.s V_4
IL_008
2
: ldarg.0
IL_008
3
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_008
8
: ldloca.s V_2
IL_008
a
: ldloca.s V_4
IL_008
c
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.ValueTaskAwaiter, C.<Main>d__0>(ref System.Runtime.CompilerServices.ValueTaskAwaiter, ref C.<Main>d__0)""
IL_009
1
: nop
IL_009
2: leave IL_012f
IL_009
7
: ldarg.0
IL_009
8
: ldfld ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__1""
IL_009
d
: stloc.2
IL_00
9e
: ldarg.0
IL_00
9f
: ldflda ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__1""
IL_00a
4
: initobj ""System.Runtime.CompilerServices.ValueTaskAwaiter""
IL_00a
a
: ldarg.0
IL_00a
b
: ldc.i4.m1
IL_00a
c
: dup
IL_00a
d
: stloc.0
IL_00
ae
: stfld ""int C.<Main>d__0.<>1__state""
IL_00b
3
: ldloca.s V_2
IL_00b
5
: call ""void System.Runtime.CompilerServices.ValueTaskAwaiter.GetResult()""
IL_00b
a
: nop
IL_00b
b
: ldarg.0
IL_00b
c
: ldfld ""object C.<Main>d__0.<>s__2""
IL_00c
1
: stloc.1
IL_00c
2
: ldloc.1
IL_00c
3: brfalse.s IL_00e0
IL_00c
5
: ldloc.1
IL_00c
6
: isinst ""System.Exception""
IL_00c
b
: stloc.s V_5
IL_00c
d
: ldloc.s V_5
IL_00
cf: brtrue.s IL_00d3
IL_00d
1
: ldloc.1
IL_00d
2
: throw
IL_00d
3
: ldloc.s V_5
IL_00d
5
: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_00d
a
: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_00
df
: nop
IL_00e
0
: ldarg.0
IL_00e
1
: ldfld ""int C.<Main>d__0.<>s__3""
IL_00e
6
: stloc.s V_6
IL_00e
8
: ldloc.s V_6
IL_00e
a
: ldc.i4.1
IL_00e
b: beq.s IL_00ef
IL_00e
d: br.s IL_00f1
IL_00
ef: leave.s IL_011b
IL_00f
1
: ldarg.0
IL_00f
2
: ldnull
IL_00f
3
: stfld ""object C.<Main>d__0.<>s__2""
IL_00f
8
: ldarg.0
IL_00f
9
: ldnull
IL_00f
a
: stfld ""C C.<Main>d__0.<>s__1""
IL_0
0ff: leave.s IL_011b
IL_004
2
: stloc.1
IL_004
3
: ldarg.0
IL_004
4
: ldloc.1
IL_004
5
: stfld ""object C.<Main>d__0.<>s__2""
IL_004
a: leave.s IL_004c
}
IL_004
c
: ldarg.0
IL_004
d
: ldfld ""C C.<Main>d__0.<>s__1""
IL_005
2: brfalse.s IL_00bd
IL_005
4
: ldarg.0
IL_005
5
: ldfld ""C C.<Main>d__0.<>s__1""
IL_005
a
: callvirt ""System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync()""
IL_005
f
: stloc.3
IL_00
60
: ldloca.s V_3
IL_006
2
: call ""System.Runtime.CompilerServices.ValueTaskAwaiter System.Threading.Tasks.ValueTask.GetAwaiter()""
IL_006
7
: stloc.2
IL_006
8
: ldloca.s V_2
IL_006
a
: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter.IsCompleted.get""
IL_006
f: brtrue.s IL_00b5
IL_00
71
: ldarg.0
IL_007
2
: ldc.i4.0
IL_007
3
: dup
IL_007
4
: stloc.0
IL_007
5
: stfld ""int C.<Main>d__0.<>1__state""
IL_007
a
: ldarg.0
IL_007
b
: ldloc.2
IL_007
c
: stfld ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__1""
IL_00
81
: ldarg.0
IL_008
2
: stloc.s V_4
IL_008
4
: ldarg.0
IL_008
5
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_008
a
: ldloca.s V_2
IL_008
c
: ldloca.s V_4
IL_008
e
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.ValueTaskAwaiter, C.<Main>d__0>(ref System.Runtime.CompilerServices.ValueTaskAwaiter, ref C.<Main>d__0)""
IL_009
3
: nop
IL_009
4: leave IL_0131
IL_009
9
: ldarg.0
IL_009
a
: ldfld ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__1""
IL_009
f
: stloc.2
IL_00
a0
: ldarg.0
IL_00
a1
: ldflda ""System.Runtime.CompilerServices.ValueTaskAwaiter C.<Main>d__0.<>u__1""
IL_00a
6
: initobj ""System.Runtime.CompilerServices.ValueTaskAwaiter""
IL_00a
c
: ldarg.0
IL_00a
d
: ldc.i4.m1
IL_00a
e
: dup
IL_00a
f
: stloc.0
IL_00
b0
: stfld ""int C.<Main>d__0.<>1__state""
IL_00b
5
: ldloca.s V_2
IL_00b
7
: call ""void System.Runtime.CompilerServices.ValueTaskAwaiter.GetResult()""
IL_00b
c
: nop
IL_00b
d
: ldarg.0
IL_00b
e
: ldfld ""object C.<Main>d__0.<>s__2""
IL_00c
3
: stloc.1
IL_00c
4
: ldloc.1
IL_00c
5: brfalse.s IL_00e2
IL_00c
7
: ldloc.1
IL_00c
8
: isinst ""System.Exception""
IL_00c
d
: stloc.s V_5
IL_00c
f
: ldloc.s V_5
IL_00
d1: brtrue.s IL_00d5
IL_00d
3
: ldloc.1
IL_00d
4
: throw
IL_00d
5
: ldloc.s V_5
IL_00d
7
: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_00d
c
: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_00
e1
: nop
IL_00e
2
: ldarg.0
IL_00e
3
: ldfld ""int C.<Main>d__0.<>s__3""
IL_00e
8
: stloc.s V_6
IL_00e
a
: ldloc.s V_6
IL_00e
c
: ldc.i4.1
IL_00e
d: beq.s IL_00f1
IL_00e
f: br.s IL_00f3
IL_00
f1: leave.s IL_011d
IL_00f
3
: ldarg.0
IL_00f
4
: ldnull
IL_00f
5
: stfld ""object C.<Main>d__0.<>s__2""
IL_00f
a
: ldarg.0
IL_00f
b
: ldnull
IL_00f
c
: stfld ""C C.<Main>d__0.<>s__1""
IL_0
101: leave.s IL_011d
}
catch System.Exception
{
IL_010
1
: stloc.s V_5
IL_010
3
: ldarg.0
IL_010
4
: ldc.i4.s -2
IL_010
6
: stfld ""int C.<Main>d__0.<>1__state""
IL_010
b
: ldarg.0
IL_010
c
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_011
1
: ldloc.s V_5
IL_011
3
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_011
8
: nop
IL_011
9: leave.s IL_012f
IL_010
3
: stloc.s V_5
IL_010
5
: ldarg.0
IL_010
6
: ldc.i4.s -2
IL_010
8
: stfld ""int C.<Main>d__0.<>1__state""
IL_010
d
: ldarg.0
IL_010
e
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_011
3
: ldloc.s V_5
IL_011
5
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_011
a
: nop
IL_011
b: leave.s IL_0131
}
IL_011b: ldarg.0
IL_011c: ldc.i4.s -2
IL_011e: stfld ""int C.<Main>d__0.<>1__state""
IL_0123: ldarg.0
IL_0124: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_0129: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_012e: nop
IL_012f: ret
}
"
);
IL_011d: ldarg.0
IL_011e: ldc.i4.s -2
IL_0120: stfld ""int C.<Main>d__0.<>1__state""
IL_0125: ldarg.0
IL_0126: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder C.<Main>d__0.<>t__builder""
IL_012b: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_0130: nop
IL_0131: ret
}"
);
}
[
Fact
]
...
...
@@ -1245,7 +1245,7 @@ public System.Threading.Tasks.ValueTask DisposeAsync()
var
verifier
=
CompileAndVerify
(
comp
,
expectedOutput
:
"body DisposeAsync"
);
verifier
.
VerifyIL
(
"S.<Main>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 29
6 (0x128
)
// Code size 29
8 (0x12a
)
.maxstack 3
.locals init (int V_0,
object V_1,
...
...
@@ -1260,132 +1260,132 @@ .maxstack 3
.try
{
IL_0007: ldloc.0
IL_0008: brfalse IL_0096
IL_000d: br.s IL_000f
IL_000f: nop
IL_0010: ldarg.0
IL_0011: ldflda ""S S.<Main>d__0.<>s__1""
IL_0016: initobj ""S""
IL_001c: ldarg.0
IL_001d: ldnull
IL_001e: stfld ""object S.<Main>d__0.<>s__2""
IL_0023: ldarg.0
IL_0024: ldc.i4.0
IL_0025: stfld ""int S.<Main>d__0.<>s__3""
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_0011
IL_000c: br IL_0098
IL_0011: nop
IL_0012: ldarg.0
IL_0013: ldflda ""S S.<Main>d__0.<>s__1""
IL_0018: initobj ""S""
IL_001e: ldarg.0
IL_001f: ldnull
IL_0020: stfld ""object S.<Main>d__0.<>s__2""
IL_0025: ldarg.0
IL_0026: ldc.i4.0
IL_0027: stfld ""int S.<Main>d__0.<>s__3""
.try
{
IL_002
a
: nop
IL_002
b
: ldstr ""body ""
IL_003
0
: call ""void System.Console.Write(string)""
IL_003
5
: nop
IL_003
6: br.s IL_0038
IL_003
8
: ldarg.0
IL_003
9
: ldc.i4.1
IL_003
a
: stfld ""int S.<Main>d__0.<>s__3""
IL_00
3f: leave.s IL_004b
IL_002
c
: nop
IL_002
d
: ldstr ""body ""
IL_003
2
: call ""void System.Console.Write(string)""
IL_003
7
: nop
IL_003
8: br.s IL_003a
IL_003
a
: ldarg.0
IL_003
b
: ldc.i4.1
IL_003
c
: stfld ""int S.<Main>d__0.<>s__3""
IL_00
41: leave.s IL_004d
}
catch object
{
IL_004
1
: stloc.1
IL_004
2
: ldarg.0
IL_004
3
: ldloc.1
IL_004
4
: stfld ""object S.<Main>d__0.<>s__2""
IL_004
9: leave.s IL_004b
}
IL_004
b
: ldarg.0
IL_004
c
: ldflda ""S S.<Main>d__0.<>s__1""
IL_005
1
: constrained. ""S""
IL_005
7
: callvirt ""System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync()""
IL_005
c
: stloc.3
IL_005
d
: ldloca.s V_3
IL_00
5f
: call ""System.Runtime.CompilerServices.ValueTaskAwaiter System.Threading.Tasks.ValueTask.GetAwaiter()""
IL_006
4
: stloc.2
IL_006
5
: ldloca.s V_2
IL_006
7
: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter.IsCompleted.get""
IL_006
c: brtrue.s IL_00b2
IL_00
6e
: ldarg.0
IL_00
6f
: ldc.i4.0
IL_007
0
: dup
IL_007
1
: stloc.0
IL_007
2
: stfld ""int S.<Main>d__0.<>1__state""
IL_007
7
: ldarg.0
IL_007
8
: ldloc.2
IL_007
9
: stfld ""System.Runtime.CompilerServices.ValueTaskAwaiter S.<Main>d__0.<>u__1""
IL_00
7e
: ldarg.0
IL_00
7f
: stloc.s V_4
IL_008
1
: ldarg.0
IL_008
2
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder S.<Main>d__0.<>t__builder""
IL_008
7
: ldloca.s V_2
IL_008
9
: ldloca.s V_4
IL_008
b
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.ValueTaskAwaiter, S.<Main>d__0>(ref System.Runtime.CompilerServices.ValueTaskAwaiter, ref S.<Main>d__0)""
IL_009
0
: nop
IL_009
1: leave IL_0127
IL_009
6
: ldarg.0
IL_009
7
: ldfld ""System.Runtime.CompilerServices.ValueTaskAwaiter S.<Main>d__0.<>u__1""
IL_009
c
: stloc.2
IL_009
d
: ldarg.0
IL_00
9e
: ldflda ""System.Runtime.CompilerServices.ValueTaskAwaiter S.<Main>d__0.<>u__1""
IL_00a
3
: initobj ""System.Runtime.CompilerServices.ValueTaskAwaiter""
IL_00a
9
: ldarg.0
IL_00a
a
: ldc.i4.m1
IL_00a
b
: dup
IL_00a
c
: stloc.0
IL_00a
d
: stfld ""int S.<Main>d__0.<>1__state""
IL_00b
2
: ldloca.s V_2
IL_00b
4
: call ""void System.Runtime.CompilerServices.ValueTaskAwaiter.GetResult()""
IL_00b
9
: nop
IL_00b
a
: ldarg.0
IL_00b
b
: ldfld ""object S.<Main>d__0.<>s__2""
IL_00c
0
: stloc.1
IL_00c
1
: ldloc.1
IL_00c
2: brfalse.s IL_00df
IL_00c
4
: ldloc.1
IL_00c
5
: isinst ""System.Exception""
IL_00c
a
: stloc.s V_5
IL_00c
c
: ldloc.s V_5
IL_00
ce: brtrue.s IL_00d2
IL_00d
0
: ldloc.1
IL_00d
1
: throw
IL_00d
2
: ldloc.s V_5
IL_00d
4
: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_00d
9
: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_00
de
: nop
IL_00
df
: ldarg.0
IL_00e
0
: ldfld ""int S.<Main>d__0.<>s__3""
IL_00e
5
: stloc.s V_6
IL_00e
7
: ldloc.s V_6
IL_00e
9
: ldc.i4.1
IL_00e
a: beq.s IL_00ee
IL_00e
c: br.s IL_00f0
IL_00
ee: leave.s IL_0113
IL_00f
0
: ldarg.0
IL_00f
1
: ldnull
IL_00f
2
: stfld ""object S.<Main>d__0.<>s__2""
IL_00f
7: leave.s IL_0113
IL_004
3
: stloc.1
IL_004
4
: ldarg.0
IL_004
5
: ldloc.1
IL_004
6
: stfld ""object S.<Main>d__0.<>s__2""
IL_004
b: leave.s IL_004d
}
IL_004
d
: ldarg.0
IL_004
e
: ldflda ""S S.<Main>d__0.<>s__1""
IL_005
3
: constrained. ""S""
IL_005
9
: callvirt ""System.Threading.Tasks.ValueTask System.IAsyncDisposable.DisposeAsync()""
IL_005
e
: stloc.3
IL_005
f
: ldloca.s V_3
IL_00
61
: call ""System.Runtime.CompilerServices.ValueTaskAwaiter System.Threading.Tasks.ValueTask.GetAwaiter()""
IL_006
6
: stloc.2
IL_006
7
: ldloca.s V_2
IL_006
9
: call ""bool System.Runtime.CompilerServices.ValueTaskAwaiter.IsCompleted.get""
IL_006
e: brtrue.s IL_00b4
IL_00
70
: ldarg.0
IL_00
71
: ldc.i4.0
IL_007
2
: dup
IL_007
3
: stloc.0
IL_007
4
: stfld ""int S.<Main>d__0.<>1__state""
IL_007
9
: ldarg.0
IL_007
a
: ldloc.2
IL_007
b
: stfld ""System.Runtime.CompilerServices.ValueTaskAwaiter S.<Main>d__0.<>u__1""
IL_00
80
: ldarg.0
IL_00
81
: stloc.s V_4
IL_008
3
: ldarg.0
IL_008
4
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder S.<Main>d__0.<>t__builder""
IL_008
9
: ldloca.s V_2
IL_008
b
: ldloca.s V_4
IL_008
d
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.ValueTaskAwaiter, S.<Main>d__0>(ref System.Runtime.CompilerServices.ValueTaskAwaiter, ref S.<Main>d__0)""
IL_009
2
: nop
IL_009
3: leave IL_0129
IL_009
8
: ldarg.0
IL_009
9
: ldfld ""System.Runtime.CompilerServices.ValueTaskAwaiter S.<Main>d__0.<>u__1""
IL_009
e
: stloc.2
IL_009
f
: ldarg.0
IL_00
a0
: ldflda ""System.Runtime.CompilerServices.ValueTaskAwaiter S.<Main>d__0.<>u__1""
IL_00a
5
: initobj ""System.Runtime.CompilerServices.ValueTaskAwaiter""
IL_00a
b
: ldarg.0
IL_00a
c
: ldc.i4.m1
IL_00a
d
: dup
IL_00a
e
: stloc.0
IL_00a
f
: stfld ""int S.<Main>d__0.<>1__state""
IL_00b
4
: ldloca.s V_2
IL_00b
6
: call ""void System.Runtime.CompilerServices.ValueTaskAwaiter.GetResult()""
IL_00b
b
: nop
IL_00b
c
: ldarg.0
IL_00b
d
: ldfld ""object S.<Main>d__0.<>s__2""
IL_00c
2
: stloc.1
IL_00c
3
: ldloc.1
IL_00c
4: brfalse.s IL_00e1
IL_00c
6
: ldloc.1
IL_00c
7
: isinst ""System.Exception""
IL_00c
c
: stloc.s V_5
IL_00c
e
: ldloc.s V_5
IL_00
d0: brtrue.s IL_00d4
IL_00d
2
: ldloc.1
IL_00d
3
: throw
IL_00d
4
: ldloc.s V_5
IL_00d
6
: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_00d
b
: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_00
e0
: nop
IL_00
e1
: ldarg.0
IL_00e
2
: ldfld ""int S.<Main>d__0.<>s__3""
IL_00e
7
: stloc.s V_6
IL_00e
9
: ldloc.s V_6
IL_00e
b
: ldc.i4.1
IL_00e
c: beq.s IL_00f0
IL_00e
e: br.s IL_00f2
IL_00
f0: leave.s IL_0115
IL_00f
2
: ldarg.0
IL_00f
3
: ldnull
IL_00f
4
: stfld ""object S.<Main>d__0.<>s__2""
IL_00f
9: leave.s IL_0115
}
catch System.Exception
{
IL_00f
9
: stloc.s V_5
IL_00f
b
: ldarg.0
IL_00f
c
: ldc.i4.s -2
IL_0
0fe
: stfld ""int S.<Main>d__0.<>1__state""
IL_010
3
: ldarg.0
IL_010
4
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder S.<Main>d__0.<>t__builder""
IL_010
9
: ldloc.s V_5
IL_010
b
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_011
0
: nop
IL_011
1: leave.s IL_0127
IL_00f
b
: stloc.s V_5
IL_00f
d
: ldarg.0
IL_00f
e
: ldc.i4.s -2
IL_0
100
: stfld ""int S.<Main>d__0.<>1__state""
IL_010
5
: ldarg.0
IL_010
6
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder S.<Main>d__0.<>t__builder""
IL_010
b
: ldloc.s V_5
IL_010
d
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)""
IL_011
2
: nop
IL_011
3: leave.s IL_0129
}
IL_0113: ldarg.0
IL_0114: ldc.i4.s -2
IL_0116: stfld ""int S.<Main>d__0.<>1__state""
IL_011b: ldarg.0
IL_011c: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder S.<Main>d__0.<>t__builder""
IL_0121: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_0126: nop
IL_0127: ret
}
"
);
IL_0115: ldarg.0
IL_0116: ldc.i4.s -2
IL_0118: stfld ""int S.<Main>d__0.<>1__state""
IL_011d: ldarg.0
IL_011e: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder S.<Main>d__0.<>t__builder""
IL_0123: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult()""
IL_0128: nop
IL_0129: ret
}"
);
}
[
Fact
]
...
...
src/Compilers/CSharp/Test/Emit/Emit/EditAndContinue/EditAndContinueStateMachineTests.cs
浏览文件 @
eea11615
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
src/Compilers/CSharp/Test/Emit/Emit/EditAndContinue/LocalSlotMappingTests.cs
浏览文件 @
eea11615
...
...
@@ -3263,72 +3263,74 @@ public IEnumerable<int> F()
v0
.
VerifyIL
(
"C.<F>d__0.System.Collections.IEnumerator.MoveNext"
,
@"
{
// Code size 1
27 (0x7f
)
// Code size 1
31 (0x83
)
.maxstack 2
.locals init (int V_0)
IL_0000: ldarg.0
IL_0001: ldfld ""int C.<F>d__0.<>1__state""
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse.s IL_001
4
IL_0008: brfalse.s IL_001
2
IL_000a: br.s IL_000c
IL_000c: ldloc.0
IL_000d: ldc.i4.1
IL_000e: beq.s IL_0076
IL_0010: br.s IL_0012
IL_0012: ldc.i4.0
IL_0013: ret
IL_0014: ldarg.0
IL_0015: ldc.i4.m1
IL_0016: stfld ""int C.<F>d__0.<>1__state""
IL_001b: nop
IL_001c: ldarg.0
IL_001d: ldarg.0
IL_001e: ldfld ""C C.<F>d__0.<>4__this""
IL_0023: call ""System.Collections.Generic.IEnumerable<int> C.F()""
IL_0028: stfld ""System.Collections.Generic.IEnumerable<int> C.<F>d__0.<>s__1""
IL_002d: ldarg.0
IL_002e: ldc.i4.0
IL_002f: stfld ""bool C.<F>d__0.<>s__2""
IL_000e: beq.s IL_0014
IL_0010: br.s IL_0016
IL_0012: br.s IL_0018
IL_0014: br.s IL_007a
IL_0016: ldc.i4.0
IL_0017: ret
IL_0018: ldarg.0
IL_0019: ldc.i4.m1
IL_001a: stfld ""int C.<F>d__0.<>1__state""
IL_001f: nop
IL_0020: ldarg.0
IL_0021: ldarg.0
IL_0022: ldfld ""C C.<F>d__0.<>4__this""
IL_0027: call ""System.Collections.Generic.IEnumerable<int> C.F()""
IL_002c: stfld ""System.Collections.Generic.IEnumerable<int> C.<F>d__0.<>s__1""
IL_0031: ldarg.0
IL_0032: ldc.i4.0
IL_0033: stfld ""bool C.<F>d__0.<>s__2""
.try
{
IL_003
4
: ldarg.0
IL_003
5
: ldfld ""System.Collections.Generic.IEnumerable<int> C.<F>d__0.<>s__1""
IL_003
a
: ldarg.0
IL_003
b
: ldflda ""bool C.<F>d__0.<>s__2""
IL_004
0
: call ""void System.Threading.Monitor.Enter(object, ref bool)""
IL_004
5
: nop
IL_004
6
: nop
IL_004
7
: nop
IL_004
8: leave.s IL_005f
IL_003
8
: ldarg.0
IL_003
9
: ldfld ""System.Collections.Generic.IEnumerable<int> C.<F>d__0.<>s__1""
IL_003
e
: ldarg.0
IL_003
f
: ldflda ""bool C.<F>d__0.<>s__2""
IL_004
4
: call ""void System.Threading.Monitor.Enter(object, ref bool)""
IL_004
9
: nop
IL_004
a
: nop
IL_004
b
: nop
IL_004
c: leave.s IL_0063
}
finally
{
IL_004
a
: ldarg.0
IL_004
b
: ldfld ""bool C.<F>d__0.<>s__2""
IL_005
0: brfalse.s IL_005e
IL_005
2
: ldarg.0
IL_005
3
: ldfld ""System.Collections.Generic.IEnumerable<int> C.<F>d__0.<>s__1""
IL_005
8
: call ""void System.Threading.Monitor.Exit(object)""
IL_00
5d
: nop
IL_00
5e
: endfinally
IL_004
e
: ldarg.0
IL_004
f
: ldfld ""bool C.<F>d__0.<>s__2""
IL_005
4: brfalse.s IL_0062
IL_005
6
: ldarg.0
IL_005
7
: ldfld ""System.Collections.Generic.IEnumerable<int> C.<F>d__0.<>s__1""
IL_005
c
: call ""void System.Threading.Monitor.Exit(object)""
IL_00
61
: nop
IL_00
62
: endfinally
}
IL_00
5f
: ldarg.0
IL_006
0
: ldnull
IL_006
1
: stfld ""System.Collections.Generic.IEnumerable<int> C.<F>d__0.<>s__1""
IL_006
6
: ldarg.0
IL_006
7
: ldc.i4.1
IL_006
8
: stfld ""int C.<F>d__0.<>2__current""
IL_00
6d
: ldarg.0
IL_00
6e
: ldc.i4.1
IL_00
6f
: stfld ""int C.<F>d__0.<>1__state""
IL_007
4
: ldc.i4.1
IL_007
5
: ret
IL_007
6
: ldarg.0
IL_007
7
: ldc.i4.m1
IL_007
8
: stfld ""int C.<F>d__0.<>1__state""
IL_00
7d
: ldc.i4.0
IL_00
7e
: ret
IL_00
63
: ldarg.0
IL_006
4
: ldnull
IL_006
5
: stfld ""System.Collections.Generic.IEnumerable<int> C.<F>d__0.<>s__1""
IL_006
a
: ldarg.0
IL_006
b
: ldc.i4.1
IL_006
c
: stfld ""int C.<F>d__0.<>2__current""
IL_00
71
: ldarg.0
IL_00
72
: ldc.i4.1
IL_00
73
: stfld ""int C.<F>d__0.<>1__state""
IL_007
8
: ldc.i4.1
IL_007
9
: ret
IL_007
a
: ldarg.0
IL_007
b
: ldc.i4.m1
IL_007
c
: stfld ""int C.<F>d__0.<>1__state""
IL_00
81
: ldc.i4.0
IL_00
82
: ret
}"
);
#if TODO
...
...
@@ -3370,7 +3372,7 @@ public async Task<int> F()
v0
.
VerifyIL
(
"C.<F>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"
,
@"
{
// Code size 24
4 (0xf4
)
// Code size 24
6 (0xf6
)
.maxstack 3
.locals init (int V_0,
int V_1,
...
...
@@ -3383,111 +3385,112 @@ .maxstack 3
.try
{
~IL_0007: ldloc.0
IL_0008: brfalse IL_009c
IL_000d: br.s IL_000f
-IL_000f: nop
-IL_0010: ldarg.0
IL_0011: ldarg.0
IL_0012: ldfld ""C C.<F>d__0.<>4__this""
IL_0017: call ""System.Threading.Tasks.Task<int> C.F()""
IL_001c: stfld ""System.Threading.Tasks.Task<int> C.<F>d__0.<>s__1""
IL_0021: ldarg.0
IL_0022: ldc.i4.0
IL_0023: stfld ""bool C.<F>d__0.<>s__2""
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_0011
IL_000c: br IL_009e
-IL_0011: nop
-IL_0012: ldarg.0
IL_0013: ldarg.0
IL_0014: ldfld ""C C.<F>d__0.<>4__this""
IL_0019: call ""System.Threading.Tasks.Task<int> C.F()""
IL_001e: stfld ""System.Threading.Tasks.Task<int> C.<F>d__0.<>s__1""
IL_0023: ldarg.0
IL_0024: ldc.i4.0
IL_0025: stfld ""bool C.<F>d__0.<>s__2""
.try
{
IL_002
8
: ldarg.0
IL_002
9
: ldfld ""System.Threading.Tasks.Task<int> C.<F>d__0.<>s__1""
IL_00
2e
: ldarg.0
IL_00
2f
: ldflda ""bool C.<F>d__0.<>s__2""
IL_003
4
: call ""void System.Threading.Monitor.Enter(object, ref bool)""
IL_003
9
: nop
-IL_003
a
: nop
-IL_003
b
: nop
IL_003
c: leave.s IL_0057
IL_002
a
: ldarg.0
IL_002
b
: ldfld ""System.Threading.Tasks.Task<int> C.<F>d__0.<>s__1""
IL_00
30
: ldarg.0
IL_00
31
: ldflda ""bool C.<F>d__0.<>s__2""
IL_003
6
: call ""void System.Threading.Monitor.Enter(object, ref bool)""
IL_003
b
: nop
-IL_003
c
: nop
-IL_003
d
: nop
IL_003
e: leave.s IL_0059
}
finally
{
~IL_00
3e
: ldloc.0
IL_00
3f
: ldc.i4.0
IL_004
0: bge.s IL_0056
IL_004
2
: ldarg.0
IL_004
3
: ldfld ""bool C.<F>d__0.<>s__2""
IL_004
8: brfalse.s IL_0056
IL_004
a
: ldarg.0
IL_004
b
: ldfld ""System.Threading.Tasks.Task<int> C.<F>d__0.<>s__1""
IL_005
0
: call ""void System.Threading.Monitor.Exit(object)""
IL_005
5
: nop
~IL_005
6
: endfinally
~IL_00
40
: ldloc.0
IL_00
41
: ldc.i4.0
IL_004
2: bge.s IL_0058
IL_004
4
: ldarg.0
IL_004
5
: ldfld ""bool C.<F>d__0.<>s__2""
IL_004
a: brfalse.s IL_0058
IL_004
c
: ldarg.0
IL_004
d
: ldfld ""System.Threading.Tasks.Task<int> C.<F>d__0.<>s__1""
IL_005
2
: call ""void System.Threading.Monitor.Exit(object)""
IL_005
7
: nop
~IL_005
8
: endfinally
}
~IL_0057: ldarg.0
IL_0058: ldnull
IL_0059: stfld ""System.Threading.Tasks.Task<int> C.<F>d__0.<>s__1""
-IL_005e: ldarg.0
IL_005f: ldfld ""C C.<F>d__0.<>4__this""
IL_0064: call ""System.Threading.Tasks.Task<int> C.F()""
IL_0069: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_006e: stloc.2
~IL_006f: ldloca.s V_2
IL_0071: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_0076: brtrue.s IL_00b8
IL_0078: ldarg.0
IL_0079: ldc.i4.0
IL_007a: dup
IL_007b: stloc.0
IL_007c: stfld ""int C.<F>d__0.<>1__state""
<IL_0081: ldarg.0
IL_0082: ldloc.2
IL_0083: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<F>d__0.<>u__1""
IL_0088: ldarg.0
IL_0089: stloc.3
~IL_0059: ldarg.0
IL_005a: ldnull
IL_005b: stfld ""System.Threading.Tasks.Task<int> C.<F>d__0.<>s__1""
-IL_0060: ldarg.0
IL_0061: ldfld ""C C.<F>d__0.<>4__this""
IL_0066: call ""System.Threading.Tasks.Task<int> C.F()""
IL_006b: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_0070: stloc.2
~IL_0071: ldloca.s V_2
IL_0073: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_0078: brtrue.s IL_00ba
IL_007a: ldarg.0
IL_007b: ldc.i4.0
IL_007c: dup
IL_007d: stloc.0
IL_007e: stfld ""int C.<F>d__0.<>1__state""
<IL_0083: ldarg.0
IL_0084: ldloc.2
IL_0085: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<F>d__0.<>u__1""
IL_008a: ldarg.0
IL_008b: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_0090: ldloca.s V_2
IL_0092: ldloca.s V_3
IL_0094: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, C.<F>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref C.<F>d__0)""
IL_0099: nop
IL_009a: leave.s IL_00f3
>IL_009c: ldarg.0
IL_009d: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<F>d__0.<>u__1""
IL_00a2: stloc.2
IL_00a3: ldarg.0
IL_00a4: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<F>d__0.<>u__1""
IL_00a9: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_00af: ldarg.0
IL_00b0: ldc.i4.m1
IL_00b1: dup
IL_00b2: stloc.0
IL_00b3: stfld ""int C.<F>d__0.<>1__state""
IL_00b8: ldloca.s V_2
IL_00ba: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_00bf: pop
-IL_00c0: ldc.i4.1
IL_00c1: stloc.1
IL_00c2: leave.s IL_00de
IL_008b: stloc.3
IL_008c: ldarg.0
IL_008d: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_0092: ldloca.s V_2
IL_0094: ldloca.s V_3
IL_0096: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, C.<F>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref C.<F>d__0)""
IL_009b: nop
IL_009c: leave.s IL_00f5
>IL_009e: ldarg.0
IL_009f: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<F>d__0.<>u__1""
IL_00a4: stloc.2
IL_00a5: ldarg.0
IL_00a6: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<F>d__0.<>u__1""
IL_00ab: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_00b1: ldarg.0
IL_00b2: ldc.i4.m1
IL_00b3: dup
IL_00b4: stloc.0
IL_00b5: stfld ""int C.<F>d__0.<>1__state""
IL_00ba: ldloca.s V_2
IL_00bc: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_00c1: pop
-IL_00c2: ldc.i4.1
IL_00c3: stloc.1
IL_00c4: leave.s IL_00e0
}
catch System.Exception
{
~IL_00c
4
: stloc.s V_4
IL_00c
6
: ldarg.0
IL_00c
7
: ldc.i4.s -2
IL_00c
9
: stfld ""int C.<F>d__0.<>1__state""
IL_00
ce
: ldarg.0
IL_00
cf
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00d
4
: ldloc.s V_4
IL_00d
6
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00d
b
: nop
IL_00d
c: leave.s IL_00f3
~IL_00c
6
: stloc.s V_4
IL_00c
8
: ldarg.0
IL_00c
9
: ldc.i4.s -2
IL_00c
b
: stfld ""int C.<F>d__0.<>1__state""
IL_00
d0
: ldarg.0
IL_00
d1
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00d
6
: ldloc.s V_4
IL_00d
8
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00d
d
: nop
IL_00d
e: leave.s IL_00f5
}
-IL_00
de
: ldarg.0
IL_00
df
: ldc.i4.s -2
IL_00e
1
: stfld ""int C.<F>d__0.<>1__state""
~IL_00e
6
: ldarg.0
IL_00e
7
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00e
c
: ldloc.1
IL_00e
d
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_00f
2
: nop
IL_00f
3
: ret
-IL_00
e0
: ldarg.0
IL_00
e1
: ldc.i4.s -2
IL_00e
3
: stfld ""int C.<F>d__0.<>1__state""
~IL_00e
8
: ldarg.0
IL_00e
9
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00e
e
: ldloc.1
IL_00e
f
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_00f
4
: nop
IL_00f
5
: ret
}"
,
sequencePoints
:
"C+<F>d__0.MoveNext"
);
#if TODO
...
...
src/Compilers/CSharp/Test/Emit/PDB/PDBAsyncTests.cs
浏览文件 @
eea11615
...
...
@@ -63,7 +63,7 @@ static int Main()
v
.
VerifyIL
(
"TestCase.<Run>d__1.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"
,
@"
{
// Code size 28
7 (0x11f
)
// Code size 28
9 (0x121
)
.maxstack 3
.locals init (int V_0,
System.Runtime.CompilerServices.TaskAwaiter<int> V_1,
...
...
@@ -76,111 +76,112 @@ .maxstack 3
.try
{
~IL_0007: ldloc.0
IL_0008: brfalse.s IL_0089
IL_000a: br.s IL_000c
-IL_000c: nop
-IL_000d: ldarg.0
IL_000e: newobj ""DynamicMembers..ctor()""
IL_0013: stfld ""DynamicMembers TestCase.<Run>d__1.<dc2>5__1""
-IL_0018: ldarg.0
IL_0019: ldfld ""DynamicMembers TestCase.<Run>d__1.<dc2>5__1""
IL_001e: ldsfld ""System.Func<System.Threading.Tasks.Task<int>> TestCase.<>c.<>9__1_0""
IL_0023: dup
IL_0024: brtrue.s IL_003d
IL_0026: pop
IL_0027: ldsfld ""TestCase.<>c TestCase.<>c.<>9""
IL_002c: ldftn ""System.Threading.Tasks.Task<int> TestCase.<>c.<Run>b__1_0()""
IL_0032: newobj ""System.Func<System.Threading.Tasks.Task<int>>..ctor(object, System.IntPtr)""
IL_0037: dup
IL_0038: stsfld ""System.Func<System.Threading.Tasks.Task<int>> TestCase.<>c.<>9__1_0""
IL_003d: callvirt ""void DynamicMembers.Prop.set""
IL_0042: nop
-IL_0043: ldarg.0
IL_0044: ldfld ""DynamicMembers TestCase.<Run>d__1.<dc2>5__1""
IL_0049: callvirt ""System.Func<System.Threading.Tasks.Task<int>> DynamicMembers.Prop.get""
IL_004e: callvirt ""System.Threading.Tasks.Task<int> System.Func<System.Threading.Tasks.Task<int>>.Invoke()""
IL_0053: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_0058: stloc.1
~IL_0059: ldloca.s V_1
IL_005b: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_0060: brtrue.s IL_00a5
IL_0062: ldarg.0
IL_0063: ldc.i4.0
IL_0064: dup
IL_0065: stloc.0
IL_0066: stfld ""int TestCase.<Run>d__1.<>1__state""
<IL_006b: ldarg.0
IL_006c: ldloc.1
IL_006d: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> TestCase.<Run>d__1.<>u__1""
IL_0072: ldarg.0
IL_0073: stloc.2
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000e
IL_000c: br.s IL_008b
-IL_000e: nop
-IL_000f: ldarg.0
IL_0010: newobj ""DynamicMembers..ctor()""
IL_0015: stfld ""DynamicMembers TestCase.<Run>d__1.<dc2>5__1""
-IL_001a: ldarg.0
IL_001b: ldfld ""DynamicMembers TestCase.<Run>d__1.<dc2>5__1""
IL_0020: ldsfld ""System.Func<System.Threading.Tasks.Task<int>> TestCase.<>c.<>9__1_0""
IL_0025: dup
IL_0026: brtrue.s IL_003f
IL_0028: pop
IL_0029: ldsfld ""TestCase.<>c TestCase.<>c.<>9""
IL_002e: ldftn ""System.Threading.Tasks.Task<int> TestCase.<>c.<Run>b__1_0()""
IL_0034: newobj ""System.Func<System.Threading.Tasks.Task<int>>..ctor(object, System.IntPtr)""
IL_0039: dup
IL_003a: stsfld ""System.Func<System.Threading.Tasks.Task<int>> TestCase.<>c.<>9__1_0""
IL_003f: callvirt ""void DynamicMembers.Prop.set""
IL_0044: nop
-IL_0045: ldarg.0
IL_0046: ldfld ""DynamicMembers TestCase.<Run>d__1.<dc2>5__1""
IL_004b: callvirt ""System.Func<System.Threading.Tasks.Task<int>> DynamicMembers.Prop.get""
IL_0050: callvirt ""System.Threading.Tasks.Task<int> System.Func<System.Threading.Tasks.Task<int>>.Invoke()""
IL_0055: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_005a: stloc.1
~IL_005b: ldloca.s V_1
IL_005d: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_0062: brtrue.s IL_00a7
IL_0064: ldarg.0
IL_0065: ldc.i4.0
IL_0066: dup
IL_0067: stloc.0
IL_0068: stfld ""int TestCase.<Run>d__1.<>1__state""
<IL_006d: ldarg.0
IL_006e: ldloc.1
IL_006f: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> TestCase.<Run>d__1.<>u__1""
IL_0074: ldarg.0
IL_0075: ldflda ""System.Runtime.CompilerServices.AsyncVoidMethodBuilder TestCase.<Run>d__1.<>t__builder""
IL_007a: ldloca.s V_1
IL_007c: ldloca.s V_2
IL_007e: call ""void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, TestCase.<Run>d__1>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref TestCase.<Run>d__1)""
IL_0083: nop
IL_0084: leave IL_011e
>IL_0089: ldarg.0
IL_008a: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> TestCase.<Run>d__1.<>u__1""
IL_008f: stloc.1
IL_0090: ldarg.0
IL_0091: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> TestCase.<Run>d__1.<>u__1""
IL_0096: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_009c: ldarg.0
IL_009d: ldc.i4.m1
IL_009e: dup
IL_009f: stloc.0
IL_00a0: stfld ""int TestCase.<Run>d__1.<>1__state""
IL_00a5: ldarg.0
IL_00a6: ldloca.s V_1
IL_00a8: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_00ad: stfld ""int TestCase.<Run>d__1.<>s__3""
IL_00b2: ldarg.0
IL_00b3: ldarg.0
IL_00b4: ldfld ""int TestCase.<Run>d__1.<>s__3""
IL_00b9: stfld ""int TestCase.<Run>d__1.<rez2>5__2""
-IL_00be: ldarg.0
IL_00bf: ldfld ""int TestCase.<Run>d__1.<rez2>5__2""
IL_00c4: ldc.i4.3
IL_00c5: ceq
IL_00c7: stloc.3
~IL_00c8: ldloc.3
IL_00c9: brfalse.s IL_00d7
-IL_00cb: ldsfld ""int TestCase.Count""
IL_00d0: ldc.i4.1
IL_00d1: add
IL_00d2: stsfld ""int TestCase.Count""
-IL_00d7: ldsfld ""int TestCase.Count""
IL_00dc: ldc.i4.1
IL_00dd: sub
IL_00de: stsfld ""int Driver.Result""
-IL_00e3: ldsfld ""System.Threading.AutoResetEvent Driver.CompletedSignal""
IL_00e8: callvirt ""bool System.Threading.EventWaitHandle.Set()""
IL_00ed: pop
IL_00ee: leave.s IL_010a
IL_0075: stloc.2
IL_0076: ldarg.0
IL_0077: ldflda ""System.Runtime.CompilerServices.AsyncVoidMethodBuilder TestCase.<Run>d__1.<>t__builder""
IL_007c: ldloca.s V_1
IL_007e: ldloca.s V_2
IL_0080: call ""void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, TestCase.<Run>d__1>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref TestCase.<Run>d__1)""
IL_0085: nop
IL_0086: leave IL_0120
>IL_008b: ldarg.0
IL_008c: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> TestCase.<Run>d__1.<>u__1""
IL_0091: stloc.1
IL_0092: ldarg.0
IL_0093: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> TestCase.<Run>d__1.<>u__1""
IL_0098: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_009e: ldarg.0
IL_009f: ldc.i4.m1
IL_00a0: dup
IL_00a1: stloc.0
IL_00a2: stfld ""int TestCase.<Run>d__1.<>1__state""
IL_00a7: ldarg.0
IL_00a8: ldloca.s V_1
IL_00aa: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_00af: stfld ""int TestCase.<Run>d__1.<>s__3""
IL_00b4: ldarg.0
IL_00b5: ldarg.0
IL_00b6: ldfld ""int TestCase.<Run>d__1.<>s__3""
IL_00bb: stfld ""int TestCase.<Run>d__1.<rez2>5__2""
-IL_00c0: ldarg.0
IL_00c1: ldfld ""int TestCase.<Run>d__1.<rez2>5__2""
IL_00c6: ldc.i4.3
IL_00c7: ceq
IL_00c9: stloc.3
~IL_00ca: ldloc.3
IL_00cb: brfalse.s IL_00d9
-IL_00cd: ldsfld ""int TestCase.Count""
IL_00d2: ldc.i4.1
IL_00d3: add
IL_00d4: stsfld ""int TestCase.Count""
-IL_00d9: ldsfld ""int TestCase.Count""
IL_00de: ldc.i4.1
IL_00df: sub
IL_00e0: stsfld ""int Driver.Result""
-IL_00e5: ldsfld ""System.Threading.AutoResetEvent Driver.CompletedSignal""
IL_00ea: callvirt ""bool System.Threading.EventWaitHandle.Set()""
IL_00ef: pop
IL_00f0: leave.s IL_010c
}
catch System.Exception
{
~$IL_00f
0
: stloc.s V_4
IL_00f
2
: ldarg.0
IL_00f
3
: ldc.i4.s -2
IL_00f
5
: stfld ""int TestCase.<Run>d__1.<>1__state""
IL_00f
a
: ldarg.0
IL_00f
b
: ldflda ""System.Runtime.CompilerServices.AsyncVoidMethodBuilder TestCase.<Run>d__1.<>t__builder""
IL_010
0
: ldloc.s V_4
IL_010
2
: call ""void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetException(System.Exception)""
IL_010
7
: nop
IL_010
8: leave.s IL_011e
~$IL_00f
2
: stloc.s V_4
IL_00f
4
: ldarg.0
IL_00f
5
: ldc.i4.s -2
IL_00f
7
: stfld ""int TestCase.<Run>d__1.<>1__state""
IL_00f
c
: ldarg.0
IL_00f
d
: ldflda ""System.Runtime.CompilerServices.AsyncVoidMethodBuilder TestCase.<Run>d__1.<>t__builder""
IL_010
2
: ldloc.s V_4
IL_010
4
: call ""void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetException(System.Exception)""
IL_010
9
: nop
IL_010
a: leave.s IL_0120
}
-IL_010
a
: ldarg.0
IL_010
b
: ldc.i4.s -2
IL_010
d
: stfld ""int TestCase.<Run>d__1.<>1__state""
~IL_011
2
: ldarg.0
IL_011
3
: ldflda ""System.Runtime.CompilerServices.AsyncVoidMethodBuilder TestCase.<Run>d__1.<>t__builder""
IL_011
8
: call ""void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetResult()""
IL_011
d
: nop
IL_01
1e
: ret
-IL_010
c
: ldarg.0
IL_010
d
: ldc.i4.s -2
IL_010
f
: stfld ""int TestCase.<Run>d__1.<>1__state""
~IL_011
4
: ldarg.0
IL_011
5
: ldflda ""System.Runtime.CompilerServices.AsyncVoidMethodBuilder TestCase.<Run>d__1.<>t__builder""
IL_011
a
: call ""void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetResult()""
IL_011
f
: nop
IL_01
20
: ret
}"
,
sequencePoints
:
"TestCase+<Run>d__1.MoveNext"
);
...
...
@@ -267,8 +268,8 @@ .maxstack 3
<customDebugInfo>
<forward declaringType=""TestCase"" methodName="".cctor"" />
<hoistedLocalScopes>
<slot startOffset=""0x0"" endOffset=""0x1
1f
"" />
<slot startOffset=""0x0"" endOffset=""0x1
1f
"" />
<slot startOffset=""0x0"" endOffset=""0x1
21
"" />
<slot startOffset=""0x0"" endOffset=""0x1
21
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -281,24 +282,24 @@ .maxstack 3
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x
c
"" startLine=""14"" startColumn=""5"" endLine=""14"" endColumn=""6"" document=""1"" />
<entry offset=""0x
d
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""51"" document=""1"" />
<entry offset=""0x1
8
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""71"" document=""1"" />
<entry offset=""0x4
3
"" startLine=""17"" startColumn=""9"" endLine=""17"" endColumn=""37"" document=""1"" />
<entry offset=""0x5
9
"" hidden=""true"" document=""1"" />
<entry offset=""0x
be
"" startLine=""18"" startColumn=""9"" endLine=""18"" endColumn=""23"" document=""1"" />
<entry offset=""0xc
8
"" hidden=""true"" document=""1"" />
<entry offset=""0xc
b
"" startLine=""18"" startColumn=""24"" endLine=""18"" endColumn=""32"" document=""1"" />
<entry offset=""0xd
7
"" startLine=""20"" startColumn=""9"" endLine=""20"" endColumn=""44"" document=""1"" />
<entry offset=""0xe
3
"" startLine=""22"" startColumn=""9"" endLine=""22"" endColumn=""38"" document=""1"" />
<entry offset=""0xf
0
"" hidden=""true"" document=""1"" />
<entry offset=""0x10
a
"" startLine=""23"" startColumn=""5"" endLine=""23"" endColumn=""6"" document=""1"" />
<entry offset=""0x11
2
"" hidden=""true"" document=""1"" />
<entry offset=""0x
e
"" startLine=""14"" startColumn=""5"" endLine=""14"" endColumn=""6"" document=""1"" />
<entry offset=""0x
f
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""51"" document=""1"" />
<entry offset=""0x1
a
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""71"" document=""1"" />
<entry offset=""0x4
5
"" startLine=""17"" startColumn=""9"" endLine=""17"" endColumn=""37"" document=""1"" />
<entry offset=""0x5
b
"" hidden=""true"" document=""1"" />
<entry offset=""0x
c0
"" startLine=""18"" startColumn=""9"" endLine=""18"" endColumn=""23"" document=""1"" />
<entry offset=""0xc
a
"" hidden=""true"" document=""1"" />
<entry offset=""0xc
d
"" startLine=""18"" startColumn=""24"" endLine=""18"" endColumn=""32"" document=""1"" />
<entry offset=""0xd
9
"" startLine=""20"" startColumn=""9"" endLine=""20"" endColumn=""44"" document=""1"" />
<entry offset=""0xe
5
"" startLine=""22"" startColumn=""9"" endLine=""22"" endColumn=""38"" document=""1"" />
<entry offset=""0xf
2
"" hidden=""true"" document=""1"" />
<entry offset=""0x10
c
"" startLine=""23"" startColumn=""5"" endLine=""23"" endColumn=""6"" document=""1"" />
<entry offset=""0x11
4
"" hidden=""true"" document=""1"" />
</sequencePoints>
<asyncInfo>
<catchHandler offset=""0xf
0
"" />
<catchHandler offset=""0xf
2
"" />
<kickoffMethod declaringType=""TestCase"" methodName=""Run"" />
<await yield=""0x6
b"" resume=""0x89
"" declaringType=""TestCase+<Run>d__1"" methodName=""MoveNext"" />
<await yield=""0x6
d"" resume=""0x8b
"" declaringType=""TestCase+<Run>d__1"" methodName=""MoveNext"" />
</asyncInfo>
</method>
<method containingType=""TestCase+<>c+<<Run>b__1_0>d"" name=""MoveNext"">
...
...
@@ -315,17 +316,17 @@ .maxstack 3
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x
c
"" startLine=""16"" startColumn=""32"" endLine=""16"" endColumn=""33"" document=""1"" />
<entry offset=""0x
d
"" startLine=""16"" startColumn=""34"" endLine=""16"" endColumn=""58"" document=""1"" />
<entry offset=""0x1
d
"" hidden=""true"" document=""1"" />
<entry offset=""0x
6e
"" startLine=""16"" startColumn=""59"" endLine=""16"" endColumn=""68"" document=""1"" />
<entry offset=""0x7
2
"" hidden=""true"" document=""1"" />
<entry offset=""0x8
c
"" startLine=""16"" startColumn=""69"" endLine=""16"" endColumn=""70"" document=""1"" />
<entry offset=""0x9
4
"" hidden=""true"" document=""1"" />
<entry offset=""0x
e
"" startLine=""16"" startColumn=""32"" endLine=""16"" endColumn=""33"" document=""1"" />
<entry offset=""0x
f
"" startLine=""16"" startColumn=""34"" endLine=""16"" endColumn=""58"" document=""1"" />
<entry offset=""0x1
f
"" hidden=""true"" document=""1"" />
<entry offset=""0x
70
"" startLine=""16"" startColumn=""59"" endLine=""16"" endColumn=""68"" document=""1"" />
<entry offset=""0x7
4
"" hidden=""true"" document=""1"" />
<entry offset=""0x8
e
"" startLine=""16"" startColumn=""69"" endLine=""16"" endColumn=""70"" document=""1"" />
<entry offset=""0x9
6
"" hidden=""true"" document=""1"" />
</sequencePoints>
<asyncInfo>
<kickoffMethod declaringType=""TestCase+<>c"" methodName=""<Run>b__1_0"" />
<await yield=""0x
2f"" resume=""0x4a
"" declaringType=""TestCase+<>c+<<Run>b__1_0>d"" methodName=""MoveNext"" />
<await yield=""0x
31"" resume=""0x4c
"" declaringType=""TestCase+<>c+<<Run>b__1_0>d"" methodName=""MoveNext"" />
</asyncInfo>
</method>
</methods>
...
...
@@ -447,28 +448,28 @@ private Task<int> GetNextInt(Random random)
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x
c
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""10"" document=""1"" />
<entry offset=""0x
d
"" startLine=""17"" startColumn=""13"" endLine=""17"" endColumn=""26"" document=""1"" />
<entry offset=""0x
1e
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
1
"" hidden=""true"" document=""1"" />
<entry offset=""0x8
9
"" startLine=""18"" startColumn=""9"" endLine=""18"" endColumn=""10"" document=""1"" />
<entry offset=""0x9
1
"" hidden=""true"" document=""1"" />
<entry offset=""0x
e
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""10"" document=""1"" />
<entry offset=""0x
f
"" startLine=""17"" startColumn=""13"" endLine=""17"" endColumn=""26"" document=""1"" />
<entry offset=""0x
20
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
3
"" hidden=""true"" document=""1"" />
<entry offset=""0x8
b
"" startLine=""18"" startColumn=""9"" endLine=""18"" endColumn=""10"" document=""1"" />
<entry offset=""0x9
3
"" hidden=""true"" document=""1"" />
</sequencePoints>
<asyncInfo>
<catchHandler offset=""0x7
1
"" />
<catchHandler offset=""0x7
3
"" />
<kickoffMethod declaringType=""ConsoleApplication1.Program"" methodName=""QBar"" />
<await yield=""0x3
0"" resume=""0x4b
"" declaringType=""ConsoleApplication1.Program+<QBar>d__2"" methodName=""MoveNext"" />
<await yield=""0x3
2"" resume=""0x4d
"" declaringType=""ConsoleApplication1.Program+<QBar>d__2"" methodName=""MoveNext"" />
</asyncInfo>
</method>
<method containingType=""ConsoleApplication1.Program+<ZBar>d__3"" name=""MoveNext"">
<customDebugInfo>
<forward declaringType=""ConsoleApplication1.Program"" methodName=""Main"" parameterNames=""args"" />
<hoistedLocalScopes>
<slot startOffset=""0x0"" endOffset=""0x14
2
"" />
<slot startOffset=""0x0"" endOffset=""0x14
4
"" />
<slot />
<slot />
<slot startOffset=""0x
3f"" endOffset=""0xe1
"" />
<slot startOffset=""0x5
2"" endOffset=""0xe1
"" />
<slot startOffset=""0x
41"" endOffset=""0xe3
"" />
<slot startOffset=""0x5
4"" endOffset=""0xe3
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -481,27 +482,27 @@ private Task<int> GetNextInt(Random random)
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x
f
"" startLine=""20"" startColumn=""9"" endLine=""20"" endColumn=""10"" document=""1"" />
<entry offset=""0x1
0
"" startLine=""21"" startColumn=""13"" endLine=""21"" endColumn=""45"" document=""1"" />
<entry offset=""0x1
b
"" startLine=""22"" startColumn=""13"" endLine=""22"" endColumn=""20"" document=""1"" />
<entry offset=""0x1
c
"" startLine=""22"" startColumn=""31"" endLine=""22"" endColumn=""46"" document=""1"" />
<entry offset=""0x3
a
"" hidden=""true"" document=""1"" />
<entry offset=""0x
3f
"" startLine=""22"" startColumn=""22"" endLine=""22"" endColumn=""27"" document=""1"" />
<entry offset=""0x5
2
"" startLine=""23"" startColumn=""13"" endLine=""23"" endColumn=""14"" document=""1"" />
<entry offset=""0x5
3
"" startLine=""24"" startColumn=""17"" endLine=""24"" endColumn=""55"" document=""1"" />
<entry offset=""0x6
9
"" hidden=""true"" document=""1"" />
<entry offset=""0x
ce
"" startLine=""25"" startColumn=""17"" endLine=""25"" endColumn=""39"" document=""1"" />
<entry offset=""0xe
0
"" startLine=""26"" startColumn=""13"" endLine=""26"" endColumn=""14"" document=""1"" />
<entry offset=""0xe
1
"" hidden=""true"" document=""1"" />
<entry offset=""0x
ef
"" startLine=""22"" startColumn=""28"" endLine=""22"" endColumn=""30"" document=""1"" />
<entry offset=""0x10
9
"" startLine=""27"" startColumn=""13"" endLine=""27"" endColumn=""30"" document=""1"" />
<entry offset=""0x11
2
"" hidden=""true"" document=""1"" />
<entry offset=""0x12
c
"" startLine=""28"" startColumn=""9"" endLine=""28"" endColumn=""10"" document=""1"" />
<entry offset=""0x13
4
"" hidden=""true"" document=""1"" />
<entry offset=""0x
11
"" startLine=""20"" startColumn=""9"" endLine=""20"" endColumn=""10"" document=""1"" />
<entry offset=""0x1
2
"" startLine=""21"" startColumn=""13"" endLine=""21"" endColumn=""45"" document=""1"" />
<entry offset=""0x1
d
"" startLine=""22"" startColumn=""13"" endLine=""22"" endColumn=""20"" document=""1"" />
<entry offset=""0x1
e
"" startLine=""22"" startColumn=""31"" endLine=""22"" endColumn=""46"" document=""1"" />
<entry offset=""0x3
c
"" hidden=""true"" document=""1"" />
<entry offset=""0x
41
"" startLine=""22"" startColumn=""22"" endLine=""22"" endColumn=""27"" document=""1"" />
<entry offset=""0x5
4
"" startLine=""23"" startColumn=""13"" endLine=""23"" endColumn=""14"" document=""1"" />
<entry offset=""0x5
5
"" startLine=""24"" startColumn=""17"" endLine=""24"" endColumn=""55"" document=""1"" />
<entry offset=""0x6
b
"" hidden=""true"" document=""1"" />
<entry offset=""0x
d0
"" startLine=""25"" startColumn=""17"" endLine=""25"" endColumn=""39"" document=""1"" />
<entry offset=""0xe
2
"" startLine=""26"" startColumn=""13"" endLine=""26"" endColumn=""14"" document=""1"" />
<entry offset=""0xe
3
"" hidden=""true"" document=""1"" />
<entry offset=""0x
f1
"" startLine=""22"" startColumn=""28"" endLine=""22"" endColumn=""30"" document=""1"" />
<entry offset=""0x10
b
"" startLine=""27"" startColumn=""13"" endLine=""27"" endColumn=""30"" document=""1"" />
<entry offset=""0x11
4
"" hidden=""true"" document=""1"" />
<entry offset=""0x12
e
"" startLine=""28"" startColumn=""9"" endLine=""28"" endColumn=""10"" document=""1"" />
<entry offset=""0x13
6
"" hidden=""true"" document=""1"" />
</sequencePoints>
<asyncInfo>
<kickoffMethod declaringType=""ConsoleApplication1.Program"" methodName=""ZBar"" />
<await yield=""0x7
b"" resume=""0x99
"" declaringType=""ConsoleApplication1.Program+<ZBar>d__3"" methodName=""MoveNext"" />
<await yield=""0x7
d"" resume=""0x9b
"" declaringType=""ConsoleApplication1.Program+<ZBar>d__3"" methodName=""MoveNext"" />
</asyncInfo>
</method>
</methods>
...
...
@@ -550,7 +551,7 @@ static async void Await(dynamic d)
<namespace usingCount=""0"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x0"" endOffset=""0x25
b
"" />
<slot startOffset=""0x0"" endOffset=""0x25
d
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -564,17 +565,17 @@ static async void Await(dynamic d)
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x
f
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
0
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""27"" document=""1"" />
<entry offset=""0xa
c
"" hidden=""true"" document=""1"" />
<entry offset=""0x22
c
"" hidden=""true"" document=""1"" />
<entry offset=""0x24
6
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
4e
"" hidden=""true"" document=""1"" />
<entry offset=""0x
11
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
2
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""27"" document=""1"" />
<entry offset=""0xa
e
"" hidden=""true"" document=""1"" />
<entry offset=""0x22
e
"" hidden=""true"" document=""1"" />
<entry offset=""0x24
8
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
50
"" hidden=""true"" document=""1"" />
</sequencePoints>
<asyncInfo>
<catchHandler offset=""0x22
c
"" />
<catchHandler offset=""0x22
e
"" />
<kickoffMethod declaringType=""TestCase"" methodName=""Await"" parameterNames=""d"" />
<await yield=""0x14
6"" resume=""0x18d
"" declaringType=""TestCase+<Await>d__0"" methodName=""MoveNext"" />
<await yield=""0x14
8"" resume=""0x18f
"" declaringType=""TestCase+<Await>d__0"" methodName=""MoveNext"" />
</asyncInfo>
</method>
</methods>
...
...
@@ -627,7 +628,7 @@ .maxstack 2
v
.
VerifyIL
(
"C.<F>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"
,
@"
{
// Code size 1
58 (0x9e
)
// Code size 1
60 (0xa0
)
.maxstack 3
.locals init (int V_0,
int V_1,
...
...
@@ -640,73 +641,74 @@ .maxstack 3
.try
{
~IL_0007: ldloc.0
IL_0008: brfalse.s IL_0046
IL_000a: br.s IL_000c
-IL_000c: nop
-IL_000d: ldc.i4.1
IL_000e: call ""System.Threading.Tasks.Task System.Threading.Tasks.Task.Delay(int)""
IL_0013: callvirt ""System.Runtime.CompilerServices.TaskAwaiter System.Threading.Tasks.Task.GetAwaiter()""
IL_0018: stloc.2
~IL_0019: ldloca.s V_2
IL_001b: call ""bool System.Runtime.CompilerServices.TaskAwaiter.IsCompleted.get""
IL_0020: brtrue.s IL_0062
IL_0022: ldarg.0
IL_0023: ldc.i4.0
IL_0024: dup
IL_0025: stloc.0
IL_0026: stfld ""int C.<F>d__0.<>1__state""
<IL_002b: ldarg.0
IL_002c: ldloc.2
IL_002d: stfld ""System.Runtime.CompilerServices.TaskAwaiter C.<F>d__0.<>u__1""
IL_0032: ldarg.0
IL_0033: stloc.3
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000e
IL_000c: br.s IL_0048
-IL_000e: nop
-IL_000f: ldc.i4.1
IL_0010: call ""System.Threading.Tasks.Task System.Threading.Tasks.Task.Delay(int)""
IL_0015: callvirt ""System.Runtime.CompilerServices.TaskAwaiter System.Threading.Tasks.Task.GetAwaiter()""
IL_001a: stloc.2
~IL_001b: ldloca.s V_2
IL_001d: call ""bool System.Runtime.CompilerServices.TaskAwaiter.IsCompleted.get""
IL_0022: brtrue.s IL_0064
IL_0024: ldarg.0
IL_0025: ldc.i4.0
IL_0026: dup
IL_0027: stloc.0
IL_0028: stfld ""int C.<F>d__0.<>1__state""
<IL_002d: ldarg.0
IL_002e: ldloc.2
IL_002f: stfld ""System.Runtime.CompilerServices.TaskAwaiter C.<F>d__0.<>u__1""
IL_0034: ldarg.0
IL_0035: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_003a: ldloca.s V_2
IL_003c: ldloca.s V_3
IL_003e: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter, C.<F>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter, ref C.<F>d__0)""
IL_0043: nop
IL_0044: leave.s IL_009d
>IL_0046: ldarg.0
IL_0047: ldfld ""System.Runtime.CompilerServices.TaskAwaiter C.<F>d__0.<>u__1""
IL_004c: stloc.2
IL_004d: ldarg.0
IL_004e: ldflda ""System.Runtime.CompilerServices.TaskAwaiter C.<F>d__0.<>u__1""
IL_0053: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_0059: ldarg.0
IL_005a: ldc.i4.m1
IL_005b: dup
IL_005c: stloc.0
IL_005d: stfld ""int C.<F>d__0.<>1__state""
IL_0062: ldloca.s V_2
IL_0064: call ""void System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_0069: nop
-IL_006a: ldc.i4.1
IL_006b: stloc.1
IL_006c: leave.s IL_0088
IL_0035: stloc.3
IL_0036: ldarg.0
IL_0037: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_003c: ldloca.s V_2
IL_003e: ldloca.s V_3
IL_0040: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter, C.<F>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter, ref C.<F>d__0)""
IL_0045: nop
IL_0046: leave.s IL_009f
>IL_0048: ldarg.0
IL_0049: ldfld ""System.Runtime.CompilerServices.TaskAwaiter C.<F>d__0.<>u__1""
IL_004e: stloc.2
IL_004f: ldarg.0
IL_0050: ldflda ""System.Runtime.CompilerServices.TaskAwaiter C.<F>d__0.<>u__1""
IL_0055: initobj ""System.Runtime.CompilerServices.TaskAwaiter""
IL_005b: ldarg.0
IL_005c: ldc.i4.m1
IL_005d: dup
IL_005e: stloc.0
IL_005f: stfld ""int C.<F>d__0.<>1__state""
IL_0064: ldloca.s V_2
IL_0066: call ""void System.Runtime.CompilerServices.TaskAwaiter.GetResult()""
IL_006b: nop
-IL_006c: ldc.i4.1
IL_006d: stloc.1
IL_006e: leave.s IL_008a
}
catch System.Exception
{
~IL_00
6e
: stloc.s V_4
IL_007
0
: ldarg.0
IL_007
1
: ldc.i4.s -2
IL_007
3
: stfld ""int C.<F>d__0.<>1__state""
IL_007
8
: ldarg.0
IL_007
9
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00
7e
: ldloc.s V_4
IL_008
0
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_008
5
: nop
IL_008
6: leave.s IL_009d
~IL_00
70
: stloc.s V_4
IL_007
2
: ldarg.0
IL_007
3
: ldc.i4.s -2
IL_007
5
: stfld ""int C.<F>d__0.<>1__state""
IL_007
a
: ldarg.0
IL_007
b
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_00
80
: ldloc.s V_4
IL_008
2
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_008
7
: nop
IL_008
8: leave.s IL_009f
}
-IL_008
8
: ldarg.0
IL_008
9
: ldc.i4.s -2
IL_008
b
: stfld ""int C.<F>d__0.<>1__state""
~IL_009
0
: ldarg.0
IL_009
1
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_009
6
: ldloc.1
IL_009
7
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_009
c
: nop
IL_009
d
: ret
-IL_008
a
: ldarg.0
IL_008
b
: ldc.i4.s -2
IL_008
d
: stfld ""int C.<F>d__0.<>1__state""
~IL_009
2
: ldarg.0
IL_009
3
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<F>d__0.<>t__builder""
IL_009
8
: ldloc.1
IL_009
9
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_009
e
: nop
IL_009
f
: ret
}"
,
sequencePoints
:
"C+<F>d__0.MoveNext"
);
}
...
...
@@ -846,7 +848,7 @@ static async Task M(int b)
<customDebugInfo>
<forward declaringType=""C+<>c__DisplayClass0_0"" methodName=""<M>b__0"" />
<hoistedLocalScopes>
<slot startOffset=""0x0"" endOffset=""0x10
4
"" />
<slot startOffset=""0x0"" endOffset=""0x10
6
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -858,21 +860,21 @@ static async Task M(int b)
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x
f
"" hidden=""true"" document=""1"" />
<entry offset=""0x1
a
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
b
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""21"" document=""1"" />
<entry offset=""0x2
7
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""21"" document=""1"" />
<entry offset=""0x3
3
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""21"" document=""1"" />
<entry offset=""0x
3f
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""47"" document=""1"" />
<entry offset=""0x5
6
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""31"" document=""1"" />
<entry offset=""0x8
4
"" hidden=""true"" document=""1"" />
<entry offset=""0xd
7
"" hidden=""true"" document=""1"" />
<entry offset=""0x
ef
"" startLine=""19"" startColumn=""5"" endLine=""19"" endColumn=""6"" document=""1"" />
<entry offset=""0xf
7
"" hidden=""true"" document=""1"" />
<entry offset=""0x
11
"" hidden=""true"" document=""1"" />
<entry offset=""0x1
c
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
d
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""21"" document=""1"" />
<entry offset=""0x2
9
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""21"" document=""1"" />
<entry offset=""0x3
5
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""21"" document=""1"" />
<entry offset=""0x
41
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""47"" document=""1"" />
<entry offset=""0x5
8
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""31"" document=""1"" />
<entry offset=""0x8
6
"" hidden=""true"" document=""1"" />
<entry offset=""0xd
9
"" hidden=""true"" document=""1"" />
<entry offset=""0x
f1
"" startLine=""19"" startColumn=""5"" endLine=""19"" endColumn=""6"" document=""1"" />
<entry offset=""0xf
9
"" hidden=""true"" document=""1"" />
</sequencePoints>
<asyncInfo>
<kickoffMethod declaringType=""C"" methodName=""M"" parameterNames=""b"" />
<await yield=""0x9
6"" resume=""0xb1
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
<await yield=""0x9
8"" resume=""0xb3
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
</asyncInfo>
</method>
</methods>
...
...
@@ -1035,7 +1037,7 @@ static async Task M(int b)
<customDebugInfo>
<forward declaringType=""C+<>c__DisplayClass0_0"" methodName=""<M>b__0"" />
<hoistedLocalScopes>
<slot startOffset=""0x0"" endOffset=""0xf
3
"" />
<slot startOffset=""0x0"" endOffset=""0xf
5
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -1047,22 +1049,22 @@ static async Task M(int b)
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x
f
"" hidden=""true"" document=""1"" />
<entry offset=""0x1
a
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
b
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""21"" document=""1"" />
<entry offset=""0x2
7
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""21"" document=""1"" />
<entry offset=""0x3
3
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""21"" document=""1"" />
<entry offset=""0x
3f
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""47"" document=""1"" />
<entry offset=""0x5
6
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""29"" document=""1"" />
<entry offset=""0x6
2
"" hidden=""true"" document=""1"" />
<entry offset=""0xb
3
"" startLine=""17"" startColumn=""9"" endLine=""17"" endColumn=""31"" document=""1"" />
<entry offset=""0xc
6
"" hidden=""true"" document=""1"" />
<entry offset=""0x
de
"" startLine=""18"" startColumn=""5"" endLine=""18"" endColumn=""6"" document=""1"" />
<entry offset=""0xe
6
"" hidden=""true"" document=""1"" />
<entry offset=""0x
11
"" hidden=""true"" document=""1"" />
<entry offset=""0x1
c
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
d
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""21"" document=""1"" />
<entry offset=""0x2
9
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""21"" document=""1"" />
<entry offset=""0x3
5
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""21"" document=""1"" />
<entry offset=""0x
41
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""47"" document=""1"" />
<entry offset=""0x5
8
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""29"" document=""1"" />
<entry offset=""0x6
4
"" hidden=""true"" document=""1"" />
<entry offset=""0xb
5
"" startLine=""17"" startColumn=""9"" endLine=""17"" endColumn=""31"" document=""1"" />
<entry offset=""0xc
8
"" hidden=""true"" document=""1"" />
<entry offset=""0x
e0
"" startLine=""18"" startColumn=""5"" endLine=""18"" endColumn=""6"" document=""1"" />
<entry offset=""0xe
8
"" hidden=""true"" document=""1"" />
</sequencePoints>
<asyncInfo>
<kickoffMethod declaringType=""C"" methodName=""M"" parameterNames=""b"" />
<await yield=""0x7
4"" resume=""0x8f
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
<await yield=""0x7
6"" resume=""0x91
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
</asyncInfo>
</method>
</methods>
...
...
@@ -1258,11 +1260,11 @@ static async Task M(int b)
<namespace usingCount=""2"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x2
6"" endOffset=""0xb0
"" />
<slot startOffset=""0x2
6"" endOffset=""0xb0
"" />
<slot startOffset=""0xc
2"" endOffset=""0x160
"" />
<slot startOffset=""0xc
2"" endOffset=""0x160
"" />
<slot startOffset=""0xc
2"" endOffset=""0x160
"" />
<slot startOffset=""0x2
a"" endOffset=""0xb4
"" />
<slot startOffset=""0x2
a"" endOffset=""0xb4
"" />
<slot startOffset=""0xc
6"" endOffset=""0x164
"" />
<slot startOffset=""0xc
6"" endOffset=""0x164
"" />
<slot startOffset=""0xc
6"" endOffset=""0x164
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -1277,42 +1279,42 @@ static async Task M(int b)
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x1
5
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
6
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""19"" document=""1"" />
<entry offset=""0x2
0
"" hidden=""true"" document=""1"" />
<entry offset=""0x2
6
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""10"" document=""1"" />
<entry offset=""0x2
7
"" startLine=""11"" startColumn=""13"" endLine=""11"" endColumn=""24"" document=""1"" />
<entry offset=""0x
2f
"" startLine=""12"" startColumn=""13"" endLine=""12"" endColumn=""24"" document=""1"" />
<entry offset=""0x3
7
"" startLine=""13"" startColumn=""13"" endLine=""13"" endColumn=""33"" document=""1"" />
<entry offset=""0x4
3
"" hidden=""true"" document=""1"" />
<entry offset=""0x9
7
"" startLine=""15"" startColumn=""13"" endLine=""15"" endColumn=""34"" document=""1"" />
<entry offset=""0xa
3
"" startLine=""16"" startColumn=""13"" endLine=""16"" endColumn=""34"" document=""1"" />
<entry offset=""0x
af
"" startLine=""17"" startColumn=""9"" endLine=""17"" endColumn=""10"" document=""1"" />
<entry offset=""0xb
0
"" startLine=""19"" startColumn=""9"" endLine=""19"" endColumn=""19"" document=""1"" />
<entry offset=""0xb
b
"" hidden=""true"" document=""1"" />
<entry offset=""0xc
2
"" startLine=""20"" startColumn=""9"" endLine=""20"" endColumn=""10"" document=""1"" />
<entry offset=""0xc
3
"" startLine=""21"" startColumn=""13"" endLine=""21"" endColumn=""24"" document=""1"" />
<entry offset=""0xc
b
"" startLine=""22"" startColumn=""13"" endLine=""22"" endColumn=""25"" document=""1"" />
<entry offset=""0xd
3
"" startLine=""23"" startColumn=""13"" endLine=""23"" endColumn=""24"" document=""1"" />
<entry offset=""0xd
b
"" startLine=""24"" startColumn=""13"" endLine=""24"" endColumn=""33"" document=""1"" />
<entry offset=""0xe
8
"" hidden=""true"" document=""1"" />
<entry offset=""0x13
b
"" startLine=""26"" startColumn=""13"" endLine=""26"" endColumn=""34"" document=""1"" />
<entry offset=""0x14
7
"" startLine=""27"" startColumn=""13"" endLine=""27"" endColumn=""35"" document=""1"" />
<entry offset=""0x15
3
"" startLine=""28"" startColumn=""13"" endLine=""28"" endColumn=""34"" document=""1"" />
<entry offset=""0x1
5f
"" startLine=""29"" startColumn=""9"" endLine=""29"" endColumn=""10"" document=""1"" />
<entry offset=""0x16
0
"" hidden=""true"" document=""1"" />
<entry offset=""0x16
2
"" hidden=""true"" document=""1"" />
<entry offset=""0x1
7c
"" startLine=""30"" startColumn=""5"" endLine=""30"" endColumn=""6"" document=""1"" />
<entry offset=""0x18
4
"" hidden=""true"" document=""1"" />
<entry offset=""0x1
9
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
a
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""19"" document=""1"" />
<entry offset=""0x2
4
"" hidden=""true"" document=""1"" />
<entry offset=""0x2
a
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""10"" document=""1"" />
<entry offset=""0x2
b
"" startLine=""11"" startColumn=""13"" endLine=""11"" endColumn=""24"" document=""1"" />
<entry offset=""0x
33
"" startLine=""12"" startColumn=""13"" endLine=""12"" endColumn=""24"" document=""1"" />
<entry offset=""0x3
b
"" startLine=""13"" startColumn=""13"" endLine=""13"" endColumn=""33"" document=""1"" />
<entry offset=""0x4
7
"" hidden=""true"" document=""1"" />
<entry offset=""0x9
b
"" startLine=""15"" startColumn=""13"" endLine=""15"" endColumn=""34"" document=""1"" />
<entry offset=""0xa
7
"" startLine=""16"" startColumn=""13"" endLine=""16"" endColumn=""34"" document=""1"" />
<entry offset=""0x
b3
"" startLine=""17"" startColumn=""9"" endLine=""17"" endColumn=""10"" document=""1"" />
<entry offset=""0xb
4
"" startLine=""19"" startColumn=""9"" endLine=""19"" endColumn=""19"" document=""1"" />
<entry offset=""0xb
f
"" hidden=""true"" document=""1"" />
<entry offset=""0xc
6
"" startLine=""20"" startColumn=""9"" endLine=""20"" endColumn=""10"" document=""1"" />
<entry offset=""0xc
7
"" startLine=""21"" startColumn=""13"" endLine=""21"" endColumn=""24"" document=""1"" />
<entry offset=""0xc
f
"" startLine=""22"" startColumn=""13"" endLine=""22"" endColumn=""25"" document=""1"" />
<entry offset=""0xd
7
"" startLine=""23"" startColumn=""13"" endLine=""23"" endColumn=""24"" document=""1"" />
<entry offset=""0xd
f
"" startLine=""24"" startColumn=""13"" endLine=""24"" endColumn=""33"" document=""1"" />
<entry offset=""0xe
c
"" hidden=""true"" document=""1"" />
<entry offset=""0x13
f
"" startLine=""26"" startColumn=""13"" endLine=""26"" endColumn=""34"" document=""1"" />
<entry offset=""0x14
b
"" startLine=""27"" startColumn=""13"" endLine=""27"" endColumn=""35"" document=""1"" />
<entry offset=""0x15
7
"" startLine=""28"" startColumn=""13"" endLine=""28"" endColumn=""34"" document=""1"" />
<entry offset=""0x1
63
"" startLine=""29"" startColumn=""9"" endLine=""29"" endColumn=""10"" document=""1"" />
<entry offset=""0x16
4
"" hidden=""true"" document=""1"" />
<entry offset=""0x16
6
"" hidden=""true"" document=""1"" />
<entry offset=""0x1
80
"" startLine=""30"" startColumn=""5"" endLine=""30"" endColumn=""6"" document=""1"" />
<entry offset=""0x18
8
"" hidden=""true"" document=""1"" />
</sequencePoints>
<scope startOffset=""0x0"" endOffset=""0x19
1
"">
<scope startOffset=""0x0"" endOffset=""0x19
5
"">
<namespace name=""System"" />
<namespace name=""System.Threading.Tasks"" />
</scope>
<asyncInfo>
<kickoffMethod declaringType=""C"" methodName=""M"" parameterNames=""b"" />
<await yield=""0x5
5"" resume=""0x73
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
<await yield=""0xf
a"" resume=""0x116
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
<await yield=""0x5
9"" resume=""0x77
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
<await yield=""0xf
e"" resume=""0x11a
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
</asyncInfo>
</method>
</methods>
...
...
@@ -1362,7 +1364,7 @@ static async Task M()
<namespace usingCount=""1"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x0"" endOffset=""0x10
0
"" />
<slot startOffset=""0x0"" endOffset=""0x10
2
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -1374,21 +1376,21 @@ static async Task M()
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x
c
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x
d
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x1
9
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""29"" document=""1"" />
<entry offset=""0x2
5
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
9
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""22"" document=""1"" />
<entry offset=""0xd
3
"" hidden=""true"" document=""1"" />
<entry offset=""0xe
b
"" startLine=""11"" startColumn=""5"" endLine=""11"" endColumn=""6"" document=""1"" />
<entry offset=""0xf
3
"" hidden=""true"" document=""1"" />
<entry offset=""0x
e
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x
f
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x1
b
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""29"" document=""1"" />
<entry offset=""0x2
7
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
b
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""22"" document=""1"" />
<entry offset=""0xd
5
"" hidden=""true"" document=""1"" />
<entry offset=""0xe
d
"" startLine=""11"" startColumn=""5"" endLine=""11"" endColumn=""6"" document=""1"" />
<entry offset=""0xf
5
"" hidden=""true"" document=""1"" />
</sequencePoints>
<scope startOffset=""0x0"" endOffset=""0x10
0
"">
<scope startOffset=""0x0"" endOffset=""0x10
2
"">
<namespace name=""System.Threading.Tasks"" />
</scope>
<asyncInfo>
<kickoffMethod declaringType=""C"" methodName=""M"" />
<await yield=""0x3
7"" resume=""0x55
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
<await yield=""0x3
9"" resume=""0x57
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
</asyncInfo>
</method>
</methods>
...
...
@@ -1541,7 +1543,7 @@ static async Task M()
<namespace usingCount=""1"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x0"" endOffset=""0x10
0
"" />
<slot startOffset=""0x0"" endOffset=""0x10
2
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -1553,21 +1555,21 @@ static async Task M()
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0x
f
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
0
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x1
c
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""22"" document=""1"" />
<entry offset=""0x7
4
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""29"" document=""1"" />
<entry offset=""0x8
0
"" hidden=""true"" document=""1"" />
<entry offset=""0xd
3
"" hidden=""true"" document=""1"" />
<entry offset=""0xe
b
"" startLine=""14"" startColumn=""5"" endLine=""14"" endColumn=""6"" document=""1"" />
<entry offset=""0xf
3
"" hidden=""true"" document=""1"" />
<entry offset=""0x
11
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
2
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x1
e
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""22"" document=""1"" />
<entry offset=""0x7
6
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""29"" document=""1"" />
<entry offset=""0x8
2
"" hidden=""true"" document=""1"" />
<entry offset=""0xd
5
"" hidden=""true"" document=""1"" />
<entry offset=""0xe
d
"" startLine=""14"" startColumn=""5"" endLine=""14"" endColumn=""6"" document=""1"" />
<entry offset=""0xf
5
"" hidden=""true"" document=""1"" />
</sequencePoints>
<scope startOffset=""0x0"" endOffset=""0x10
0
"">
<scope startOffset=""0x0"" endOffset=""0x10
2
"">
<namespace name=""System.Threading.Tasks"" />
</scope>
<asyncInfo>
<kickoffMethod declaringType=""C"" methodName=""M"" />
<await yield=""0x9
2"" resume=""0xad
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
<await yield=""0x9
4"" resume=""0xaf
"" declaringType=""C+<M>d__0"" methodName=""MoveNext"" />
</asyncInfo>
</method>
</methods>
...
...
@@ -1695,7 +1697,7 @@ static async Task<int> G()
v
.
VerifyIL
(
"C.<G>d__0.System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext()"
,
@"
{
// Code size 27
2 (0x110
)
// Code size 27
4 (0x112
)
.maxstack 3
.locals init (int V_0,
int V_1,
...
...
@@ -1709,125 +1711,126 @@ .maxstack 3
.try
{
~IL_0007: ldloc.0
IL_0008: brfalse.s IL_006e
IL_000a: br.s IL_000c
-IL_000c: nop
-IL_000d: ldarg.0
IL_000e: ldc.i4.s 42
IL_0010: stfld ""int C.<G>d__0.<x>5__1""
~IL_0015: ldarg.0
IL_0016: ldnull
IL_0017: stfld ""object C.<G>d__0.<>s__2""
IL_001c: ldarg.0
IL_001d: ldc.i4.0
IL_001e: stfld ""int C.<G>d__0.<>s__3""
IL_0008: brfalse.s IL_000c
IL_000a: br.s IL_000e
IL_000c: br.s IL_0070
-IL_000e: nop
-IL_000f: ldarg.0
IL_0010: ldc.i4.s 42
IL_0012: stfld ""int C.<G>d__0.<x>5__1""
~IL_0017: ldarg.0
IL_0018: ldnull
IL_0019: stfld ""object C.<G>d__0.<>s__2""
IL_001e: ldarg.0
IL_001f: ldc.i4.0
IL_0020: stfld ""int C.<G>d__0.<>s__3""
.try
{
-IL_002
3
: nop
-IL_002
4
: nop
~IL_002
5: leave.s IL_0031
-IL_002
5
: nop
-IL_002
6
: nop
~IL_002
7: leave.s IL_0033
}
catch object
{
~IL_002
7
: stloc.2
IL_002
8
: ldarg.0
IL_002
9
: ldloc.2
IL_002
a
: stfld ""object C.<G>d__0.<>s__2""
IL_00
2f: leave.s IL_0031
~IL_002
9
: stloc.2
IL_002
a
: ldarg.0
IL_002
b
: ldloc.2
IL_002
c
: stfld ""object C.<G>d__0.<>s__2""
IL_00
31: leave.s IL_0033
}
-IL_003
1
: nop
-IL_003
2
: call ""System.Threading.Tasks.Task<int> C.G()""
IL_003
7
: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_003
c
: stloc.3
~IL_003
d
: ldloca.s V_3
IL_00
3f
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_004
4: brtrue.s IL_008a
IL_004
6
: ldarg.0
IL_004
7
: ldc.i4.0
IL_004
8
: dup
IL_004
9
: stloc.0
IL_004
a
: stfld ""int C.<G>d__0.<>1__state""
<IL_00
4f
: ldarg.0
IL_005
0
: ldloc.3
IL_005
1
: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<G>d__0.<>u__1""
IL_005
6
: ldarg.0
IL_005
7
: stloc.s V_4
IL_005
9
: ldarg.0
IL_005
a
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<G>d__0.<>t__builder""
IL_00
5f
: ldloca.s V_3
IL_006
1
: ldloca.s V_4
IL_006
3
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, C.<G>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref C.<G>d__0)""
IL_006
8
: nop
IL_006
9: leave IL_010f
>IL_00
6e
: ldarg.0
IL_00
6f
: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<G>d__0.<>u__1""
IL_007
4
: stloc.3
IL_007
5
: ldarg.0
IL_007
6
: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<G>d__0.<>u__1""
IL_007
b
: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_008
1
: ldarg.0
IL_008
2
: ldc.i4.m1
IL_008
3
: dup
IL_008
4
: stloc.0
IL_008
5
: stfld ""int C.<G>d__0.<>1__state""
IL_008
a
: ldarg.0
IL_008
b
: ldloca.s V_3
IL_008
d
: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_009
2
: stfld ""int C.<G>d__0.<>s__4""
IL_009
7
: ldarg.0
IL_009
8
: ldarg.0
IL_009
9
: ldfld ""int C.<G>d__0.<>s__4""
IL_00
9e
: stfld ""int C.<G>d__0.<x>5__1""
-IL_00a
3
: nop
~IL_00a
4
: ldarg.0
IL_00a
5
: ldfld ""object C.<G>d__0.<>s__2""
IL_00a
a
: stloc.2
IL_00a
b
: ldloc.2
IL_00a
c: brfalse.s IL_00c9
IL_00
ae
: ldloc.2
IL_00
af
: isinst ""System.Exception""
IL_00b
4
: stloc.s V_5
IL_00b
6
: ldloc.s V_5
IL_00b
8: brtrue.s IL_00bc
IL_00b
a
: ldloc.2
IL_00b
b
: throw
IL_00b
c
: ldloc.s V_5
IL_00
be
: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_00c
3
: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_00c
8
: nop
IL_00c
9
: ldarg.0
IL_00c
a
: ldfld ""int C.<G>d__0.<>s__3""
IL_00
cf
: pop
IL_00d
0
: ldarg.0
IL_00d
1
: ldnull
IL_00d
2
: stfld ""object C.<G>d__0.<>s__2""
-IL_00d
7
: ldarg.0
IL_00d
8
: ldfld ""int C.<G>d__0.<x>5__1""
IL_00d
d
: stloc.1
IL_00
de: leave.s IL_00fa
-IL_003
3
: nop
-IL_003
4
: call ""System.Threading.Tasks.Task<int> C.G()""
IL_003
9
: callvirt ""System.Runtime.CompilerServices.TaskAwaiter<int> System.Threading.Tasks.Task<int>.GetAwaiter()""
IL_003
e
: stloc.3
~IL_003
f
: ldloca.s V_3
IL_00
41
: call ""bool System.Runtime.CompilerServices.TaskAwaiter<int>.IsCompleted.get""
IL_004
6: brtrue.s IL_008c
IL_004
8
: ldarg.0
IL_004
9
: ldc.i4.0
IL_004
a
: dup
IL_004
b
: stloc.0
IL_004
c
: stfld ""int C.<G>d__0.<>1__state""
<IL_00
51
: ldarg.0
IL_005
2
: ldloc.3
IL_005
3
: stfld ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<G>d__0.<>u__1""
IL_005
8
: ldarg.0
IL_005
9
: stloc.s V_4
IL_005
b
: ldarg.0
IL_005
c
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<G>d__0.<>t__builder""
IL_00
61
: ldloca.s V_3
IL_006
3
: ldloca.s V_4
IL_006
5
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<int>, C.<G>d__0>(ref System.Runtime.CompilerServices.TaskAwaiter<int>, ref C.<G>d__0)""
IL_006
a
: nop
IL_006
b: leave IL_0111
>IL_00
70
: ldarg.0
IL_00
71
: ldfld ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<G>d__0.<>u__1""
IL_007
6
: stloc.3
IL_007
7
: ldarg.0
IL_007
8
: ldflda ""System.Runtime.CompilerServices.TaskAwaiter<int> C.<G>d__0.<>u__1""
IL_007
d
: initobj ""System.Runtime.CompilerServices.TaskAwaiter<int>""
IL_008
3
: ldarg.0
IL_008
4
: ldc.i4.m1
IL_008
5
: dup
IL_008
6
: stloc.0
IL_008
7
: stfld ""int C.<G>d__0.<>1__state""
IL_008
c
: ldarg.0
IL_008
d
: ldloca.s V_3
IL_008
f
: call ""int System.Runtime.CompilerServices.TaskAwaiter<int>.GetResult()""
IL_009
4
: stfld ""int C.<G>d__0.<>s__4""
IL_009
9
: ldarg.0
IL_009
a
: ldarg.0
IL_009
b
: ldfld ""int C.<G>d__0.<>s__4""
IL_00
a0
: stfld ""int C.<G>d__0.<x>5__1""
-IL_00a
5
: nop
~IL_00a
6
: ldarg.0
IL_00a
7
: ldfld ""object C.<G>d__0.<>s__2""
IL_00a
c
: stloc.2
IL_00a
d
: ldloc.2
IL_00a
e: brfalse.s IL_00cb
IL_00
b0
: ldloc.2
IL_00
b1
: isinst ""System.Exception""
IL_00b
6
: stloc.s V_5
IL_00b
8
: ldloc.s V_5
IL_00b
a: brtrue.s IL_00be
IL_00b
c
: ldloc.2
IL_00b
d
: throw
IL_00b
e
: ldloc.s V_5
IL_00
c0
: call ""System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(System.Exception)""
IL_00c
5
: callvirt ""void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()""
IL_00c
a
: nop
IL_00c
b
: ldarg.0
IL_00c
c
: ldfld ""int C.<G>d__0.<>s__3""
IL_00
d1
: pop
IL_00d
2
: ldarg.0
IL_00d
3
: ldnull
IL_00d
4
: stfld ""object C.<G>d__0.<>s__2""
-IL_00d
9
: ldarg.0
IL_00d
a
: ldfld ""int C.<G>d__0.<x>5__1""
IL_00d
f
: stloc.1
IL_00
e0: leave.s IL_00fc
}
catch System.Exception
{
~IL_00e
0
: stloc.s V_5
IL_00e
2
: ldarg.0
IL_00e
3
: ldc.i4.s -2
IL_00e
5
: stfld ""int C.<G>d__0.<>1__state""
IL_00e
a
: ldarg.0
IL_00e
b
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<G>d__0.<>t__builder""
IL_00f
0
: ldloc.s V_5
IL_00f
2
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00f
7
: nop
IL_00f
8: leave.s IL_010f
~IL_00e
2
: stloc.s V_5
IL_00e
4
: ldarg.0
IL_00e
5
: ldc.i4.s -2
IL_00e
7
: stfld ""int C.<G>d__0.<>1__state""
IL_00e
c
: ldarg.0
IL_00e
d
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<G>d__0.<>t__builder""
IL_00f
2
: ldloc.s V_5
IL_00f
4
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetException(System.Exception)""
IL_00f
9
: nop
IL_00f
a: leave.s IL_0111
}
-IL_00f
a
: ldarg.0
IL_00f
b
: ldc.i4.s -2
IL_00f
d
: stfld ""int C.<G>d__0.<>1__state""
~IL_010
2
: ldarg.0
IL_010
3
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<G>d__0.<>t__builder""
IL_010
8
: ldloc.1
IL_010
9
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_01
0e
: nop
IL_01
0f
: ret
-IL_00f
c
: ldarg.0
IL_00f
d
: ldc.i4.s -2
IL_00f
f
: stfld ""int C.<G>d__0.<>1__state""
~IL_010
4
: ldarg.0
IL_010
5
: ldflda ""System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int> C.<G>d__0.<>t__builder""
IL_010
a
: ldloc.1
IL_010
b
: call ""void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>.SetResult(int)""
IL_01
10
: nop
IL_01
11
: ret
}"
,
sequencePoints
:
"C+<G>d__0.MoveNext"
);
v
.
VerifyPdb
(
"C+<G>d__0.MoveNext"
,
@"
...
...
@@ -1842,8 +1845,8 @@ .maxstack 3
<namespace usingCount=""2"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x0"" endOffset=""0x11
0
"" />
<slot startOffset=""0x2
7"" endOffset=""0x31
"" />
<slot startOffset=""0x0"" endOffset=""0x11
2
"" />
<slot startOffset=""0x2
9"" endOffset=""0x33
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -1857,30 +1860,30 @@ .maxstack 3
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x7"" hidden=""true"" document=""1"" />
<entry offset=""0xc"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0xd"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""20"" document=""1"" />
<entry offset=""0x15"" hidden=""true"" document=""1"" />
<entry offset=""0x23"" startLine=""12"" startColumn=""9"" endLine=""12"" endColumn=""10"" document=""1"" />
<entry offset=""0x24"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""10"" document=""1"" />
<entry offset=""0x25"" hidden=""true"" document=""1"" />
<entry offset=""0xe"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0xf"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""20"" document=""1"" />
<entry offset=""0x17"" hidden=""true"" document=""1"" />
<entry offset=""0x25"" startLine=""12"" startColumn=""9"" endLine=""12"" endColumn=""10"" document=""1"" />
<entry offset=""0x26"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""10"" document=""1"" />
<entry offset=""0x27"" hidden=""true"" document=""1"" />
<entry offset=""0x31"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""10"" document=""1"" />
<entry offset=""0x32"" startLine=""16"" startColumn=""13"" endLine=""16"" endColumn=""27"" document=""1"" />
<entry offset=""0x3d"" hidden=""true"" document=""1"" />
<entry offset=""0xa3"" startLine=""17"" startColumn=""9"" endLine=""17"" endColumn=""10"" document=""1"" />
<entry offset=""0xa4"" hidden=""true"" document=""1"" />
<entry offset=""0xd7"" startLine=""19"" startColumn=""9"" endLine=""19"" endColumn=""18"" document=""1"" />
<entry offset=""0xe0"" hidden=""true"" document=""1"" />
<entry offset=""0xfa"" startLine=""20"" startColumn=""5"" endLine=""20"" endColumn=""6"" document=""1"" />
<entry offset=""0x102"" hidden=""true"" document=""1"" />
<entry offset=""0x29"" hidden=""true"" document=""1"" />
<entry offset=""0x33"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""10"" document=""1"" />
<entry offset=""0x34"" startLine=""16"" startColumn=""13"" endLine=""16"" endColumn=""27"" document=""1"" />
<entry offset=""0x3f"" hidden=""true"" document=""1"" />
<entry offset=""0xa5"" startLine=""17"" startColumn=""9"" endLine=""17"" endColumn=""10"" document=""1"" />
<entry offset=""0xa6"" hidden=""true"" document=""1"" />
<entry offset=""0xd9"" startLine=""19"" startColumn=""9"" endLine=""19"" endColumn=""18"" document=""1"" />
<entry offset=""0xe2"" hidden=""true"" document=""1"" />
<entry offset=""0xfc"" startLine=""20"" startColumn=""5"" endLine=""20"" endColumn=""6"" document=""1"" />
<entry offset=""0x104"" hidden=""true"" document=""1"" />
</sequencePoints>
<scope startOffset=""0x0"" endOffset=""0x11
0
"">
<scope startOffset=""0x0"" endOffset=""0x11
2
"">
<namespace name=""System"" />
<namespace name=""System.Threading.Tasks"" />
</scope>
<asyncInfo>
<kickoffMethod declaringType=""C"" methodName=""G"" />
<await yield=""0x
4f"" resume=""0x6e
"" declaringType=""C+<G>d__0"" methodName=""MoveNext"" />
<await yield=""0x
51"" resume=""0x70
"" declaringType=""C+<G>d__0"" methodName=""MoveNext"" />
</asyncInfo>
</method>
</methods>
...
...
src/Compilers/CSharp/Test/Emit/PDB/PDBConstantTests.cs
浏览文件 @
eea11615
...
...
@@ -426,7 +426,7 @@ IEnumerable<int> M()
<namespace usingCount=""1"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x
1c"" endOffset=""0x63
"" />
<slot startOffset=""0x
20"" endOffset=""0x67
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -436,23 +436,23 @@ IEnumerable<int> M()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x1
b
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x
1c
"" startLine=""9"" startColumn=""14"" endLine=""9"" endColumn=""23"" document=""1"" />
<entry offset=""0x2
3
"" hidden=""true"" document=""1"" />
<entry offset=""0x2
5
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""10"" document=""1"" />
<entry offset=""0x2
6
"" startLine=""12"" startColumn=""13"" endLine=""12"" endColumn=""36"" document=""1"" />
<entry offset=""0x
3d
"" hidden=""true"" document=""1"" />
<entry offset=""0x4
4
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""10"" document=""1"" />
<entry offset=""0x4
5
"" startLine=""9"" startColumn=""33"" endLine=""9"" endColumn=""36"" document=""1"" />
<entry offset=""0x5
5
"" startLine=""9"" startColumn=""25"" endLine=""9"" endColumn=""31"" document=""1"" />
<entry offset=""0x6
0
"" hidden=""true"" document=""1"" />
<entry offset=""0x6
3
"" startLine=""14"" startColumn=""5"" endLine=""14"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
f
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x
20
"" startLine=""9"" startColumn=""14"" endLine=""9"" endColumn=""23"" document=""1"" />
<entry offset=""0x2
7
"" hidden=""true"" document=""1"" />
<entry offset=""0x2
9
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""10"" document=""1"" />
<entry offset=""0x2
a
"" startLine=""12"" startColumn=""13"" endLine=""12"" endColumn=""36"" document=""1"" />
<entry offset=""0x
41
"" hidden=""true"" document=""1"" />
<entry offset=""0x4
8
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""10"" document=""1"" />
<entry offset=""0x4
9
"" startLine=""9"" startColumn=""33"" endLine=""9"" endColumn=""36"" document=""1"" />
<entry offset=""0x5
9
"" startLine=""9"" startColumn=""25"" endLine=""9"" endColumn=""31"" document=""1"" />
<entry offset=""0x6
4
"" hidden=""true"" document=""1"" />
<entry offset=""0x6
7
"" startLine=""14"" startColumn=""5"" endLine=""14"" endColumn=""6"" document=""1"" />
</sequencePoints>
<scope startOffset=""0x0"" endOffset=""0x6
5
"">
<scope startOffset=""0x0"" endOffset=""0x6
9
"">
<namespace name=""System.Collections.Generic"" />
<scope startOffset=""0x1
b"" endOffset=""0x65
"">
<scope startOffset=""0x1
f"" endOffset=""0x69
"">
<constant name=""x"" value=""1"" type=""Int32"" />
<scope startOffset=""0x2
5"" endOffset=""0x45
"">
<scope startOffset=""0x2
9"" endOffset=""0x49
"">
<constant name=""y"" value=""2"" type=""Int32"" />
</scope>
</scope>
...
...
src/Compilers/CSharp/Test/Emit/PDB/PDBIteratorTests.cs
浏览文件 @
eea11615
...
...
@@ -2,9 +2,7 @@
using
System.Globalization
;
using
System.IO
;
using
System.Linq
;
using
System.Reflection.Metadata
;
using
Microsoft.CodeAnalysis.CSharp.Symbols
;
using
Microsoft.CodeAnalysis.CSharp.Test.Utilities
;
using
Microsoft.CodeAnalysis.Emit
;
using
Microsoft.CodeAnalysis.Test.Utilities
;
...
...
@@ -52,8 +50,8 @@ System.Collections.Generic.IEnumerable<int> Goo()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x1
5
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
6
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""21"" document=""1"" />
<entry offset=""0x1
7
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
8
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""21"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
@@ -97,8 +95,8 @@ System.Collections.Generic.IEnumerable<int> Goo()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x1
5
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
6
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""21"" document=""1"" />
<entry offset=""0x1
7
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
8
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""21"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
@@ -142,10 +140,10 @@ System.Collections.Generic.IEnumerable<int> Goo()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x1
b
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x
1c
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""24"" document=""1"" />
<entry offset=""0x
2c
"" hidden=""true"" document=""1"" />
<entry offset=""0x3
3
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
f
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x
20
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""24"" document=""1"" />
<entry offset=""0x
30
"" hidden=""true"" document=""1"" />
<entry offset=""0x3
7
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
@@ -273,8 +271,8 @@ System.Collections.Generic.IEnumerable<int> IEI<T>(int i0, int i1)
<namespace usingCount=""0"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x
2c"" endOffset=""0xb9
"" />
<slot startOffset=""0x7
1"" endOffset=""0xb7
"" />
<slot startOffset=""0x
39"" endOffset=""0xc6
"" />
<slot startOffset=""0x7
e"" endOffset=""0xc4
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -282,20 +280,20 @@ System.Collections.Generic.IEnumerable<int> IEI<T>(int i0, int i1)
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x
2c
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x
2d
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""20"" document=""1"" />
<entry offset=""0x
39
"" startLine=""7"" startColumn=""9"" endLine=""7"" endColumn=""24"" document=""1"" />
<entry offset=""0x
4e
"" hidden=""true"" document=""1"" />
<entry offset=""0x
55
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""24"" document=""1"" />
<entry offset=""0x
6a
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
1
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""10"" document=""1"" />
<entry offset=""0x7
2
"" startLine=""10"" startColumn=""13"" endLine=""10"" endColumn=""24"" document=""1"" />
<entry offset=""0x
7e
"" startLine=""11"" startColumn=""13"" endLine=""11"" endColumn=""28"" document=""1"" />
<entry offset=""0x
93
"" hidden=""true"" document=""1"" />
<entry offset=""0x
9a
"" startLine=""12"" startColumn=""13"" endLine=""12"" endColumn=""28"" document=""1"" />
<entry offset=""0x
af
"" hidden=""true"" document=""1"" />
<entry offset=""0x
b6
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""10"" document=""1"" />
<entry offset=""0x
b7
"" startLine=""14"" startColumn=""9"" endLine=""14"" endColumn=""21"" document=""1"" />
<entry offset=""0x
39
"" startLine=""5"" startColumn=""5"" endLine=""5"" endColumn=""6"" document=""1"" />
<entry offset=""0x
3a
"" startLine=""6"" startColumn=""9"" endLine=""6"" endColumn=""20"" document=""1"" />
<entry offset=""0x
46
"" startLine=""7"" startColumn=""9"" endLine=""7"" endColumn=""24"" document=""1"" />
<entry offset=""0x
5b
"" hidden=""true"" document=""1"" />
<entry offset=""0x
62
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""24"" document=""1"" />
<entry offset=""0x
77
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
e
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""10"" document=""1"" />
<entry offset=""0x7
f
"" startLine=""10"" startColumn=""13"" endLine=""10"" endColumn=""24"" document=""1"" />
<entry offset=""0x
8b
"" startLine=""11"" startColumn=""13"" endLine=""11"" endColumn=""28"" document=""1"" />
<entry offset=""0x
a0
"" hidden=""true"" document=""1"" />
<entry offset=""0x
a7
"" startLine=""12"" startColumn=""13"" endLine=""12"" endColumn=""28"" document=""1"" />
<entry offset=""0x
bc
"" hidden=""true"" document=""1"" />
<entry offset=""0x
c3
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""10"" document=""1"" />
<entry offset=""0x
c4
"" startLine=""14"" startColumn=""9"" endLine=""14"" endColumn=""21"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
@@ -347,9 +345,9 @@ public static IEnumerator<T> M(IEnumerable<T> items)
<namespace usingCount=""2"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x
29"" endOffset=""0xd9
"" />
<slot startOffset=""0x
32"" endOffset=""0xe2
"" />
<slot />
<slot startOffset=""0x5
2"" endOffset=""0x9c
"" />
<slot startOffset=""0x5
b"" endOffset=""0xa5
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""temp"" />
...
...
@@ -358,24 +356,24 @@ public static IEnumerator<T> M(IEnumerable<T> items)
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x
29
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x
2a
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""28"" document=""1"" />
<entry offset=""0x3
6
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""16"" document=""1"" />
<entry offset=""0x
37
"" startLine=""11"" startColumn=""28"" endLine=""11"" endColumn=""33"" document=""1"" />
<entry offset=""0x5
0
"" hidden=""true"" document=""1"" />
<entry offset=""0x5
2
"" startLine=""11"" startColumn=""18"" endLine=""11"" endColumn=""24"" document=""1"" />
<entry offset=""0x6
3
"" startLine=""12"" startColumn=""9"" endLine=""12"" endColumn=""10"" document=""1"" />
<entry offset=""0x6
4
"" startLine=""13"" startColumn=""13"" endLine=""13"" endColumn=""24"" document=""1"" />
<entry offset=""0x7
0
"" startLine=""14"" startColumn=""13"" endLine=""14"" endColumn=""30"" document=""1"" />
<entry offset=""0x
87
"" hidden=""true"" document=""1"" />
<entry offset=""0x
8f
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""10"" document=""1"" />
<entry offset=""0x
9c
"" startLine=""11"" startColumn=""25"" endLine=""11"" endColumn=""27"" document=""1"" />
<entry offset=""0x
b7
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""26"" document=""1"" />
<entry offset=""0x
ce
"" hidden=""true"" document=""1"" />
<entry offset=""0xd
5
"" startLine=""17"" startColumn=""5"" endLine=""17"" endColumn=""6"" document=""1"" />
<entry offset=""0x
d9
"" hidden=""true"" document=""1"" />
<entry offset=""0x
32
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x
33
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""28"" document=""1"" />
<entry offset=""0x3
f
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""16"" document=""1"" />
<entry offset=""0x
40
"" startLine=""11"" startColumn=""28"" endLine=""11"" endColumn=""33"" document=""1"" />
<entry offset=""0x5
9
"" hidden=""true"" document=""1"" />
<entry offset=""0x5
b
"" startLine=""11"" startColumn=""18"" endLine=""11"" endColumn=""24"" document=""1"" />
<entry offset=""0x6
c
"" startLine=""12"" startColumn=""9"" endLine=""12"" endColumn=""10"" document=""1"" />
<entry offset=""0x6
d
"" startLine=""13"" startColumn=""13"" endLine=""13"" endColumn=""24"" document=""1"" />
<entry offset=""0x7
9
"" startLine=""14"" startColumn=""13"" endLine=""14"" endColumn=""30"" document=""1"" />
<entry offset=""0x
90
"" hidden=""true"" document=""1"" />
<entry offset=""0x
98
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""10"" document=""1"" />
<entry offset=""0x
a5
"" startLine=""11"" startColumn=""25"" endLine=""11"" endColumn=""27"" document=""1"" />
<entry offset=""0x
c0
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""26"" document=""1"" />
<entry offset=""0x
d7
"" hidden=""true"" document=""1"" />
<entry offset=""0xd
e
"" startLine=""17"" startColumn=""5"" endLine=""17"" endColumn=""6"" document=""1"" />
<entry offset=""0x
e2
"" hidden=""true"" document=""1"" />
</sequencePoints>
<scope startOffset=""0x0"" endOffset=""0xe
3
"">
<scope startOffset=""0x0"" endOffset=""0xe
c
"">
<namespace name=""System"" />
<namespace name=""System.Collections.Generic"" />
</scope>
...
...
@@ -613,9 +611,9 @@ public static void Main()
<forward declaringType=""Test`1"" methodName=""System.Collections.IEnumerable.GetEnumerator"" />
<hoistedLocalScopes>
<slot />
<slot startOffset=""0x
4b"" endOffset=""0x8c
"" />
<slot startOffset=""0x
54"" endOffset=""0x95
"" />
<slot />
<slot startOffset=""0x
c8"" endOffset=""0x106
"" />
<slot startOffset=""0x
d1"" endOffset=""0x10f
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""temp"" />
...
...
@@ -624,27 +622,27 @@ public static void Main()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x
29
"" startLine=""14"" startColumn=""5"" endLine=""14"" endColumn=""6"" document=""1"" />
<entry offset=""0x
2a
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""16"" document=""1"" />
<entry offset=""0x
2b
"" startLine=""15"" startColumn=""27"" endLine=""15"" endColumn=""40"" document=""1"" />
<entry offset=""0x
49
"" hidden=""true"" document=""1"" />
<entry offset=""0x
4b
"" startLine=""15"" startColumn=""18"" endLine=""15"" endColumn=""23"" document=""1"" />
<entry offset=""0x
5c
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""10"" document=""1"" />
<entry offset=""0x
5d
"" startLine=""17"" startColumn=""13"" endLine=""17"" endColumn=""28"" document=""1"" />
<entry offset=""0x
77
"" hidden=""true"" document=""1"" />
<entry offset=""0x
7f
"" startLine=""18"" startColumn=""9"" endLine=""18"" endColumn=""10"" document=""1"" />
<entry offset=""0x
8c
"" startLine=""15"" startColumn=""24"" endLine=""15"" endColumn=""26"" document=""1"" />
<entry offset=""0x
a7
"" startLine=""19"" startColumn=""9"" endLine=""19"" endColumn=""16"" document=""1"" />
<entry offset=""0x
a8
"" startLine=""19"" startColumn=""27"" endLine=""19"" endColumn=""39"" document=""1"" />
<entry offset=""0xc
6
"" hidden=""true"" document=""1"" />
<entry offset=""0x
c8
"" startLine=""19"" startColumn=""18"" endLine=""19"" endColumn=""23"" document=""1"" />
<entry offset=""0x
d9
"" startLine=""20"" startColumn=""9"" endLine=""20"" endColumn=""10"" document=""1"" />
<entry offset=""0x
da
"" startLine=""21"" startColumn=""13"" endLine=""21"" endColumn=""28"" document=""1"" />
<entry offset=""0xf
1
"" hidden=""true"" document=""1"" />
<entry offset=""0x
f9
"" startLine=""22"" startColumn=""9"" endLine=""22"" endColumn=""10"" document=""1"" />
<entry offset=""0x10
6
"" startLine=""19"" startColumn=""24"" endLine=""19"" endColumn=""26"" document=""1"" />
<entry offset=""0x12
1
"" startLine=""23"" startColumn=""5"" endLine=""23"" endColumn=""6"" document=""1"" />
<entry offset=""0x12
5
"" hidden=""true"" document=""1"" />
<entry offset=""0x
32
"" startLine=""14"" startColumn=""5"" endLine=""14"" endColumn=""6"" document=""1"" />
<entry offset=""0x
33
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""16"" document=""1"" />
<entry offset=""0x
34
"" startLine=""15"" startColumn=""27"" endLine=""15"" endColumn=""40"" document=""1"" />
<entry offset=""0x
52
"" hidden=""true"" document=""1"" />
<entry offset=""0x
54
"" startLine=""15"" startColumn=""18"" endLine=""15"" endColumn=""23"" document=""1"" />
<entry offset=""0x
65
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""10"" document=""1"" />
<entry offset=""0x
66
"" startLine=""17"" startColumn=""13"" endLine=""17"" endColumn=""28"" document=""1"" />
<entry offset=""0x
80
"" hidden=""true"" document=""1"" />
<entry offset=""0x
88
"" startLine=""18"" startColumn=""9"" endLine=""18"" endColumn=""10"" document=""1"" />
<entry offset=""0x
95
"" startLine=""15"" startColumn=""24"" endLine=""15"" endColumn=""26"" document=""1"" />
<entry offset=""0x
b0
"" startLine=""19"" startColumn=""9"" endLine=""19"" endColumn=""16"" document=""1"" />
<entry offset=""0x
b1
"" startLine=""19"" startColumn=""27"" endLine=""19"" endColumn=""39"" document=""1"" />
<entry offset=""0xc
f
"" hidden=""true"" document=""1"" />
<entry offset=""0x
d1
"" startLine=""19"" startColumn=""18"" endLine=""19"" endColumn=""23"" document=""1"" />
<entry offset=""0x
e2
"" startLine=""20"" startColumn=""9"" endLine=""20"" endColumn=""10"" document=""1"" />
<entry offset=""0x
e3
"" startLine=""21"" startColumn=""13"" endLine=""21"" endColumn=""28"" document=""1"" />
<entry offset=""0xf
a
"" hidden=""true"" document=""1"" />
<entry offset=""0x
102
"" startLine=""22"" startColumn=""9"" endLine=""22"" endColumn=""10"" document=""1"" />
<entry offset=""0x10
f
"" startLine=""19"" startColumn=""24"" endLine=""19"" endColumn=""26"" document=""1"" />
<entry offset=""0x12
a
"" startLine=""23"" startColumn=""5"" endLine=""23"" endColumn=""6"" document=""1"" />
<entry offset=""0x12
e
"" hidden=""true"" document=""1"" />
</sequencePoints>
</method>
<method containingType=""Test`1+<get_IterProp>d__3"" name=""MoveNext"">
...
...
@@ -656,12 +654,12 @@ public static void Main()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x2
4
"" startLine=""28"" startColumn=""9"" endLine=""28"" endColumn=""10"" document=""1"" />
<entry offset=""0x2
5
"" startLine=""29"" startColumn=""13"" endLine=""29"" endColumn=""31"" document=""1"" />
<entry offset=""0x
3a
"" hidden=""true"" document=""1"" />
<entry offset=""0x4
1
"" startLine=""30"" startColumn=""13"" endLine=""30"" endColumn=""31"" document=""1"" />
<entry offset=""0x5
6
"" hidden=""true"" document=""1"" />
<entry offset=""0x
5d
"" startLine=""31"" startColumn=""9"" endLine=""31"" endColumn=""10"" document=""1"" />
<entry offset=""0x2
a
"" startLine=""28"" startColumn=""9"" endLine=""28"" endColumn=""10"" document=""1"" />
<entry offset=""0x2
b
"" startLine=""29"" startColumn=""13"" endLine=""29"" endColumn=""31"" document=""1"" />
<entry offset=""0x
40
"" hidden=""true"" document=""1"" />
<entry offset=""0x4
7
"" startLine=""30"" startColumn=""13"" endLine=""30"" endColumn=""31"" document=""1"" />
<entry offset=""0x5
c
"" hidden=""true"" document=""1"" />
<entry offset=""0x
63
"" startLine=""31"" startColumn=""9"" endLine=""31"" endColumn=""10"" document=""1"" />
</sequencePoints>
</method>
<method containingType=""Test`1+<IterMethod>d__4"" name=""MoveNext"">
...
...
@@ -673,12 +671,12 @@ public static void Main()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x2
4
"" startLine=""35"" startColumn=""5"" endLine=""35"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
5
"" startLine=""36"" startColumn=""9"" endLine=""36"" endColumn=""33"" document=""1"" />
<entry offset=""0x
3a
"" hidden=""true"" document=""1"" />
<entry offset=""0x4
1
"" startLine=""37"" startColumn=""9"" endLine=""37"" endColumn=""27"" document=""1"" />
<entry offset=""0x5
6
"" hidden=""true"" document=""1"" />
<entry offset=""0x
5d
"" startLine=""38"" startColumn=""9"" endLine=""38"" endColumn=""21"" document=""1"" />
<entry offset=""0x2
a
"" startLine=""35"" startColumn=""5"" endLine=""35"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
b
"" startLine=""36"" startColumn=""9"" endLine=""36"" endColumn=""33"" document=""1"" />
<entry offset=""0x
40
"" hidden=""true"" document=""1"" />
<entry offset=""0x4
7
"" startLine=""37"" startColumn=""9"" endLine=""37"" endColumn=""27"" document=""1"" />
<entry offset=""0x5
c
"" hidden=""true"" document=""1"" />
<entry offset=""0x
63
"" startLine=""38"" startColumn=""9"" endLine=""38"" endColumn=""21"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
@@ -727,8 +725,8 @@ static IEnumerable<T> F<T>(T[] o)
<namespace usingCount=""1"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x2
4"" endOffset=""0x7d
"" />
<slot startOffset=""0x2
4"" endOffset=""0x7d
"" />
<slot startOffset=""0x2
a"" endOffset=""0x83
"" />
<slot startOffset=""0x2
a"" endOffset=""0x83
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -736,16 +734,16 @@ static IEnumerable<T> F<T>(T[] o)
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x2
4
"" startLine=""6"" startColumn=""5"" endLine=""6"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
5
"" startLine=""7"" startColumn=""9"" endLine=""7"" endColumn=""19"" document=""1"" />
<entry offset=""0x
2c
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""26"" document=""1"" />
<entry offset=""0x3
8
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""24"" document=""1"" />
<entry offset=""0x
4d
"" hidden=""true"" document=""1"" />
<entry offset=""0x5
4
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""27"" document=""1"" />
<entry offset=""0x7
4
"" hidden=""true"" document=""1"" />
<entry offset=""0x
7b
"" startLine=""11"" startColumn=""5"" endLine=""11"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
a
"" startLine=""6"" startColumn=""5"" endLine=""6"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
b
"" startLine=""7"" startColumn=""9"" endLine=""7"" endColumn=""19"" document=""1"" />
<entry offset=""0x
32
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""26"" document=""1"" />
<entry offset=""0x3
e
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""24"" document=""1"" />
<entry offset=""0x
53
"" hidden=""true"" document=""1"" />
<entry offset=""0x5
a
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""27"" document=""1"" />
<entry offset=""0x7
a
"" hidden=""true"" document=""1"" />
<entry offset=""0x
81
"" startLine=""11"" startColumn=""5"" endLine=""11"" endColumn=""6"" document=""1"" />
</sequencePoints>
<scope startOffset=""0x0"" endOffset=""0x
7d
"">
<scope startOffset=""0x0"" endOffset=""0x
83
"">
<namespace name=""System.Collections.Generic"" />
</scope>
</method>
...
...
@@ -785,7 +783,7 @@ static IEnumerable<int> F()
v
.
VerifyIL
(
"C.<F>d__1.System.Collections.IEnumerator.MoveNext"
,
@"
{
// Code size 6
4 (0x40
)
// Code size 6
8 (0x44
)
.maxstack 2
.locals init (int V_0,
bool V_1)
...
...
@@ -793,37 +791,39 @@ .maxstack 2
IL_0001: ldfld ""int C.<F>d__1.<>1__state""
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse.s IL_001
4
IL_0008: brfalse.s IL_001
2
IL_000a: br.s IL_000c
IL_000c: ldloc.0
IL_000d: ldc.i4.1
IL_000e: beq.s IL_0036
IL_0010: br.s IL_0012
IL_0012: ldc.i4.0
IL_0013: ret
IL_0014: ldarg.0
IL_0015: ldc.i4.m1
IL_0016: stfld ""int C.<F>d__1.<>1__state""
IL_001b: nop
IL_001c: call ""bool C.B()""
IL_0021: stloc.1
IL_0022: ldloc.1
IL_0023: brfalse.s IL_003e
IL_0025: nop
IL_0026: ldarg.0
IL_0027: ldc.i4.1
IL_0028: stfld ""int C.<F>d__1.<>2__current""
IL_002d: ldarg.0
IL_002e: ldc.i4.1
IL_002f: stfld ""int C.<F>d__1.<>1__state""
IL_0034: ldc.i4.1
IL_0035: ret
IL_0036: ldarg.0
IL_0037: ldc.i4.m1
IL_0038: stfld ""int C.<F>d__1.<>1__state""
IL_003d: nop
IL_003e: ldc.i4.0
IL_003f: ret
IL_000e: beq.s IL_0014
IL_0010: br.s IL_0016
IL_0012: br.s IL_0018
IL_0014: br.s IL_003a
IL_0016: ldc.i4.0
IL_0017: ret
IL_0018: ldarg.0
IL_0019: ldc.i4.m1
IL_001a: stfld ""int C.<F>d__1.<>1__state""
IL_001f: nop
IL_0020: call ""bool C.B()""
IL_0025: stloc.1
IL_0026: ldloc.1
IL_0027: brfalse.s IL_0042
IL_0029: nop
IL_002a: ldarg.0
IL_002b: ldc.i4.1
IL_002c: stfld ""int C.<F>d__1.<>2__current""
IL_0031: ldarg.0
IL_0032: ldc.i4.1
IL_0033: stfld ""int C.<F>d__1.<>1__state""
IL_0038: ldc.i4.1
IL_0039: ret
IL_003a: ldarg.0
IL_003b: ldc.i4.m1
IL_003c: stfld ""int C.<F>d__1.<>1__state""
IL_0041: nop
IL_0042: ldc.i4.0
IL_0043: ret
}"
);
v
.
VerifyPdb
(
"C+<F>d__1.MoveNext"
,
@"
...
...
@@ -842,14 +842,14 @@ .maxstack 2
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x1
b
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x
1c
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""17"" document=""1"" />
<entry offset=""0x2
2
"" hidden=""true"" document=""1"" />
<entry offset=""0x2
5
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""10"" document=""1"" />
<entry offset=""0x2
6
"" startLine=""11"" startColumn=""13"" endLine=""11"" endColumn=""28"" document=""1"" />
<entry offset=""0x3
6
"" hidden=""true"" document=""1"" />
<entry offset=""0x
3d
"" startLine=""12"" startColumn=""9"" endLine=""12"" endColumn=""10"" document=""1"" />
<entry offset=""0x
3e
"" startLine=""13"" startColumn=""5"" endLine=""13"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
f
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x
20
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""17"" document=""1"" />
<entry offset=""0x2
6
"" hidden=""true"" document=""1"" />
<entry offset=""0x2
9
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""10"" document=""1"" />
<entry offset=""0x2
a
"" startLine=""11"" startColumn=""13"" endLine=""11"" endColumn=""28"" document=""1"" />
<entry offset=""0x3
a
"" hidden=""true"" document=""1"" />
<entry offset=""0x
41
"" startLine=""12"" startColumn=""9"" endLine=""12"" endColumn=""10"" document=""1"" />
<entry offset=""0x
42
"" startLine=""13"" startColumn=""5"" endLine=""13"" endColumn=""6"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
@@ -1003,7 +1003,7 @@ static IEnumerable<int> M()
<customDebugInfo>
<forward declaringType=""C+<>c__DisplayClass0_0"" methodName=""<M>b__0"" />
<hoistedLocalScopes>
<slot startOffset=""0x
24"" endOffset=""0xdf
"" />
<slot startOffset=""0x
30"" endOffset=""0xeb
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -1011,17 +1011,17 @@ static IEnumerable<int> M()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x
24
"" hidden=""true"" document=""1"" />
<entry offset=""0x
2f
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x3
0
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""21"" document=""1"" />
<entry offset=""0x
3c
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""21"" document=""1"" />
<entry offset=""0x
48
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""21"" document=""1"" />
<entry offset=""0x
54
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""47"" document=""1"" />
<entry offset=""0x
6b
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""35"" document=""1"" />
<entry offset=""0x
9d
"" hidden=""true"" document=""1"" />
<entry offset=""0x
a4
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""35"" document=""1"" />
<entry offset=""0x
d6
"" hidden=""true"" document=""1"" />
<entry offset=""0x
dd
"" startLine=""17"" startColumn=""5"" endLine=""17"" endColumn=""6"" document=""1"" />
<entry offset=""0x
30
"" hidden=""true"" document=""1"" />
<entry offset=""0x
3b
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x3
c
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""21"" document=""1"" />
<entry offset=""0x
48
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""21"" document=""1"" />
<entry offset=""0x
54
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""21"" document=""1"" />
<entry offset=""0x
60
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""47"" document=""1"" />
<entry offset=""0x
77
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""35"" document=""1"" />
<entry offset=""0x
a9
"" hidden=""true"" document=""1"" />
<entry offset=""0x
b0
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""35"" document=""1"" />
<entry offset=""0x
e2
"" hidden=""true"" document=""1"" />
<entry offset=""0x
e9
"" startLine=""17"" startColumn=""5"" endLine=""17"" endColumn=""6"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
@@ -1192,59 +1192,61 @@ static IEnumerable<int> M()
v
.
VerifyIL
(
"C.<M>d__0.System.Collections.IEnumerator.MoveNext"
,
@"
{
// Code size 12
3 (0x7b
)
// Code size 12
7 (0x7f
)
.maxstack 2
.locals init (int V_0)
IL_0000: ldarg.0
IL_0001: ldfld ""int C.<M>d__0.<>1__state""
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse.s IL_001
4
IL_0008: brfalse.s IL_001
2
IL_000a: br.s IL_000c
IL_000c: ldloc.0
IL_000d: ldc.i4.1
IL_000e: beq.s IL_0072
IL_0010: br.s IL_0012
IL_0012: ldc.i4.0
IL_0013: ret
IL_0014: ldarg.0
IL_0015: ldc.i4.m1
IL_0016: stfld ""int C.<M>d__0.<>1__state""
IL_001b: ldarg.0
IL_001c: newobj ""C.<>c__DisplayClass0_0..ctor()""
IL_0021: stfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_0026: nop
IL_0027: ldarg.0
IL_0028: ldfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_002d: ldc.i4.1
IL_002e: stfld ""byte C.<>c__DisplayClass0_0.x1""
IL_0033: ldarg.0
IL_0034: ldfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_0039: ldc.i4.1
IL_003a: stfld ""byte C.<>c__DisplayClass0_0.x2""
IL_003f: ldarg.0
IL_0040: ldfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_0045: ldc.i4.1
IL_0046: stfld ""byte C.<>c__DisplayClass0_0.x3""
IL_004b: ldarg.0
IL_004c: ldfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_0051: ldftn ""void C.<>c__DisplayClass0_0.<M>b__0()""
IL_0057: newobj ""System.Action..ctor(object, System.IntPtr)""
IL_005c: callvirt ""void System.Action.Invoke()""
IL_0061: nop
IL_0062: ldarg.0
IL_0063: ldc.i4.1
IL_0064: stfld ""int C.<M>d__0.<>2__current""
IL_0069: ldarg.0
IL_006a: ldc.i4.1
IL_006b: stfld ""int C.<M>d__0.<>1__state""
IL_0070: ldc.i4.1
IL_0071: ret
IL_0072: ldarg.0
IL_0073: ldc.i4.m1
IL_0074: stfld ""int C.<M>d__0.<>1__state""
IL_0079: ldc.i4.0
IL_007a: ret
IL_000e: beq.s IL_0014
IL_0010: br.s IL_0016
IL_0012: br.s IL_0018
IL_0014: br.s IL_0076
IL_0016: ldc.i4.0
IL_0017: ret
IL_0018: ldarg.0
IL_0019: ldc.i4.m1
IL_001a: stfld ""int C.<M>d__0.<>1__state""
IL_001f: ldarg.0
IL_0020: newobj ""C.<>c__DisplayClass0_0..ctor()""
IL_0025: stfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_002a: nop
IL_002b: ldarg.0
IL_002c: ldfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_0031: ldc.i4.1
IL_0032: stfld ""byte C.<>c__DisplayClass0_0.x1""
IL_0037: ldarg.0
IL_0038: ldfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_003d: ldc.i4.1
IL_003e: stfld ""byte C.<>c__DisplayClass0_0.x2""
IL_0043: ldarg.0
IL_0044: ldfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_0049: ldc.i4.1
IL_004a: stfld ""byte C.<>c__DisplayClass0_0.x3""
IL_004f: ldarg.0
IL_0050: ldfld ""C.<>c__DisplayClass0_0 C.<M>d__0.<>8__1""
IL_0055: ldftn ""void C.<>c__DisplayClass0_0.<M>b__0()""
IL_005b: newobj ""System.Action..ctor(object, System.IntPtr)""
IL_0060: callvirt ""void System.Action.Invoke()""
IL_0065: nop
IL_0066: ldarg.0
IL_0067: ldc.i4.1
IL_0068: stfld ""int C.<M>d__0.<>2__current""
IL_006d: ldarg.0
IL_006e: ldc.i4.1
IL_006f: stfld ""int C.<M>d__0.<>1__state""
IL_0074: ldc.i4.1
IL_0075: ret
IL_0076: ldarg.0
IL_0077: ldc.i4.m1
IL_0078: stfld ""int C.<M>d__0.<>1__state""
IL_007d: ldc.i4.0
IL_007e: ret
}"
);
v
.
VerifyPdb
(
"C+<M>d__0.MoveNext"
,
@"
...
...
@@ -1257,7 +1259,7 @@ .locals init (int V_0)
<customDebugInfo>
<forward declaringType=""C+<>c__DisplayClass0_0"" methodName=""<M>b__0"" />
<hoistedLocalScopes>
<slot startOffset=""0x1
b"" endOffset=""0x7b
"" />
<slot startOffset=""0x1
f"" endOffset=""0x7f
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -1265,15 +1267,15 @@ .locals init (int V_0)
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x1
b
"" hidden=""true"" document=""1"" />
<entry offset=""0x2
6
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
7
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""21"" document=""1"" />
<entry offset=""0x3
3
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""21"" document=""1"" />
<entry offset=""0x
3f
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""21"" document=""1"" />
<entry offset=""0x4
b
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""47"" document=""1"" />
<entry offset=""0x6
2
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""24"" document=""1"" />
<entry offset=""0x7
2
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
9
"" startLine=""19"" startColumn=""5"" endLine=""19"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
f
"" hidden=""true"" document=""1"" />
<entry offset=""0x2
a
"" startLine=""8"" startColumn=""5"" endLine=""8"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
b
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""21"" document=""1"" />
<entry offset=""0x3
7
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""21"" document=""1"" />
<entry offset=""0x
43
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""21"" document=""1"" />
<entry offset=""0x4
f
"" startLine=""13"" startColumn=""9"" endLine=""13"" endColumn=""47"" document=""1"" />
<entry offset=""0x6
6
"" startLine=""15"" startColumn=""9"" endLine=""15"" endColumn=""24"" document=""1"" />
<entry offset=""0x7
6
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
d
"" startLine=""19"" startColumn=""5"" endLine=""19"" endColumn=""6"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
@@ -1345,7 +1347,7 @@ static IEnumerable<int> M()
<namespace usingCount=""1"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x1
b"" endOffset=""0xdf
"" />
<slot startOffset=""0x1
f"" endOffset=""0xe3
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -1353,14 +1355,14 @@ static IEnumerable<int> M()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x1
b
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x
1c
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x2
8
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""24"" document=""1"" />
<entry offset=""0x
7e
"" hidden=""true"" document=""1"" />
<entry offset=""0x8
5
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""22"" document=""1"" />
<entry offset=""0x
dd
"" startLine=""11"" startColumn=""5"" endLine=""11"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
f
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x
20
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x2
c
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""24"" document=""1"" />
<entry offset=""0x
82
"" hidden=""true"" document=""1"" />
<entry offset=""0x8
9
"" startLine=""10"" startColumn=""9"" endLine=""10"" endColumn=""22"" document=""1"" />
<entry offset=""0x
e1
"" startLine=""11"" startColumn=""5"" endLine=""11"" endColumn=""6"" document=""1"" />
</sequencePoints>
<scope startOffset=""0x0"" endOffset=""0x
df
"">
<scope startOffset=""0x0"" endOffset=""0x
e3
"">
<namespace name=""System.Collections.Generic"" />
</scope>
</method>
...
...
@@ -1488,7 +1490,7 @@ static IEnumerable<int> M()
<namespace usingCount=""1"" />
</using>
<hoistedLocalScopes>
<slot startOffset=""0x1
b"" endOffset=""0x87
"" />
<slot startOffset=""0x1
f"" endOffset=""0x8b
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""27"" offset=""0"" />
...
...
@@ -1496,13 +1498,13 @@ static IEnumerable<int> M()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x1
b
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x
1c
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x2
8
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""24"" document=""1"" />
<entry offset=""0x
7e
"" hidden=""true"" document=""1"" />
<entry offset=""0x8
5
"" startLine=""13"" startColumn=""5"" endLine=""13"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
f
"" startLine=""7"" startColumn=""5"" endLine=""7"" endColumn=""6"" document=""1"" />
<entry offset=""0x
20
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x2
c
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""24"" document=""1"" />
<entry offset=""0x
82
"" hidden=""true"" document=""1"" />
<entry offset=""0x8
9
"" startLine=""13"" startColumn=""5"" endLine=""13"" endColumn=""6"" document=""1"" />
</sequencePoints>
<scope startOffset=""0x0"" endOffset=""0x8
7
"">
<scope startOffset=""0x0"" endOffset=""0x8
b
"">
<namespace name=""System.Collections.Generic"" />
</scope>
</method>
...
...
@@ -1549,8 +1551,8 @@ static IEnumerable<int> F()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x1
5
"" startLine=""15"" startColumn=""5"" endLine=""15"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
6
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""31"" document=""1"" />
<entry offset=""0x1
7
"" startLine=""15"" startColumn=""5"" endLine=""15"" endColumn=""6"" document=""1"" />
<entry offset=""0x1
8
"" startLine=""16"" startColumn=""9"" endLine=""16"" endColumn=""31"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
@@ -1598,10 +1600,10 @@ public class C
Locals: 0x11000001 (StandAloneSig)
Document: #1
IL_0000: <hidden>
IL_001
B
: (5, 26) - (5, 27)
IL_00
1C
: (5, 28) - (5, 43)
IL_00
2C
: <hidden>
IL_003
3
: (5, 44) - (5, 45)
IL_001
F
: (5, 26) - (5, 27)
IL_00
20
: (5, 28) - (5, 43)
IL_00
30
: <hidden>
IL_003
7
: (5, 44) - (5, 45)
}
6: nil
7: nil
...
...
src/Compilers/CSharp/Test/Emit/PDB/PDBTests.cs
浏览文件 @
eea11615
...
...
@@ -7135,9 +7135,9 @@ static IEnumerable<object> F()
<customDebugInfo>
<forward declaringType=""C+<>c"" methodName=""<F>b__0_0"" parameterNames=""i"" />
<hoistedLocalScopes>
<slot startOffset=""0x2
3"" endOffset=""0xd1
"" />
<slot startOffset=""0x2
7"" endOffset=""0xd5
"" />
<slot />
<slot startOffset=""0x7
b"" endOffset=""0xb2
"" />
<slot startOffset=""0x7
f"" endOffset=""0xb6
"" />
</hoistedLocalScopes>
<encLocalSlotMap>
<slot kind=""temp"" />
...
...
@@ -7146,19 +7146,19 @@ static IEnumerable<object> F()
</customDebugInfo>
<sequencePoints>
<entry offset=""0x0"" hidden=""true"" document=""1"" />
<entry offset=""0x2
3
"" startLine=""6"" startColumn=""5"" endLine=""6"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
4
"" startLine=""7"" startColumn=""9"" endLine=""7"" endColumn=""35"" document=""1"" />
<entry offset=""0x3
b
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""16"" document=""1"" />
<entry offset=""0x
3c
"" startLine=""8"" startColumn=""27"" endLine=""8"" endColumn=""43"" document=""1"" />
<entry offset=""0x7
9
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
b
"" startLine=""8"" startColumn=""18"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x
8c
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""10"" document=""1"" />
<entry offset=""0x
8d
"" startLine=""10"" startColumn=""13"" endLine=""10"" endColumn=""28"" document=""1"" />
<entry offset=""0xa
9
"" hidden=""true"" document=""1"" />
<entry offset=""0xb
1
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""10"" document=""1"" />
<entry offset=""0xb
2
"" startLine=""8"" startColumn=""24"" endLine=""8"" endColumn=""26"" document=""1"" />
<entry offset=""0x
cd
"" startLine=""12"" startColumn=""5"" endLine=""12"" endColumn=""6"" document=""1"" />
<entry offset=""0xd
1
"" hidden=""true"" document=""1"" />
<entry offset=""0x2
7
"" startLine=""6"" startColumn=""5"" endLine=""6"" endColumn=""6"" document=""1"" />
<entry offset=""0x2
8
"" startLine=""7"" startColumn=""9"" endLine=""7"" endColumn=""35"" document=""1"" />
<entry offset=""0x3
f
"" startLine=""8"" startColumn=""9"" endLine=""8"" endColumn=""16"" document=""1"" />
<entry offset=""0x
40
"" startLine=""8"" startColumn=""27"" endLine=""8"" endColumn=""43"" document=""1"" />
<entry offset=""0x7
d
"" hidden=""true"" document=""1"" />
<entry offset=""0x7
f
"" startLine=""8"" startColumn=""18"" endLine=""8"" endColumn=""23"" document=""1"" />
<entry offset=""0x
90
"" startLine=""9"" startColumn=""9"" endLine=""9"" endColumn=""10"" document=""1"" />
<entry offset=""0x
91
"" startLine=""10"" startColumn=""13"" endLine=""10"" endColumn=""28"" document=""1"" />
<entry offset=""0xa
d
"" hidden=""true"" document=""1"" />
<entry offset=""0xb
5
"" startLine=""11"" startColumn=""9"" endLine=""11"" endColumn=""10"" document=""1"" />
<entry offset=""0xb
6
"" startLine=""8"" startColumn=""24"" endLine=""8"" endColumn=""26"" document=""1"" />
<entry offset=""0x
d1
"" startLine=""12"" startColumn=""5"" endLine=""12"" endColumn=""6"" document=""1"" />
<entry offset=""0xd
5
"" hidden=""true"" document=""1"" />
</sequencePoints>
</method>
</methods>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录