Slide 39
Slide 39 text
L O C A L S
.locals init (
[0] class ImpossibLe.TailCall/'<>c__DisplayClass0_0`2' 'CS$<>8__locals0',
[1] string 'assembly',
[2] string assemblyExt,
[3] string tempFileName,
[4] class [Mono.C ecil]Mono.C ecil.AssemblyDefinition assemblyDefinition,
[5] class [Mono.C ecil]Mono.C ecil.TypeDefinition typeDefinition,
[6] class [Mono.C ecil]Mono.C ecil.MethodDefinition definition,
[7] class [Mono.C ecil]Mono.C ecil.MethodReference methodReference,
[8] class [Mono.C ecil]Mono.C ecil.Cil.ILProcessor ilProcessor,
[9] class ImpossibLe.TailCall/TailCallData tailCallData,
[10] class [mscorlib]System.R eflection.Assembly rewrittenAssembly,
[11] class [mscorlib]System.Type rewrittenType,
[12] class [mscorlib]System.R eflection.MethodInfo rewrittenMethod,
[13] class [System.Core]System.Linq.Expressions.Expression 'instance',
[14] class [mscorlib]System.Func`3 result,
[15] int32 index,
[16] bool,
[17] class [mscorlib]System.Collections.Generic.IEnumerator`1,
[18] class ImpossibLe.TailCall/StlocBrReturnData otherExit,
[19] bool,
[20] class [mscorlib]System.Func`3
)
Just like in C#, you can declare locals mid-method if you want. But C# compiler doesn’t do this.
These don’t line up 1:1 with your C# locals; the compiler elides some.