mirror of https://github.com/icsharpcode/ILSpy.git
7 changed files with 1614 additions and 1 deletions
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
open System |
||||
|
||||
let disposable() = { new IDisposable with member x.Dispose() = () } |
||||
|
||||
let getSeq() = seq { yield 1; } |
||||
let getList() = [ 1 ] |
||||
let getArray() = [| 1 |] |
||||
|
||||
[<EntryPoint>] |
||||
let main argv = |
||||
|
||||
// nested using scopes? |
||||
use disp1 = |
||||
use disp2 = disposable() |
||||
Console.WriteLine "Hello 1" |
||||
disposable() |
||||
|
||||
// for loop over seq |
||||
for i in getSeq() do |
||||
Console.WriteLine i |
||||
|
||||
// for loop over list |
||||
for i in getList() do |
||||
Console.WriteLine i |
||||
|
||||
// for loop over array |
||||
for i in getArray() do |
||||
Console.WriteLine i |
||||
|
||||
0 // return an integer exit code |
@ -0,0 +1,209 @@
@@ -0,0 +1,209 @@
|
||||
|
||||
// C:\Users\Siegfried\Documents\Visual Studio 2017\Projects\ConsoleApp13\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe
|
||||
// ConsoleApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// Global type: <Module>
|
||||
// Entry point: Program.main
|
||||
// Architecture: AnyCPU (32-bit preferred)
|
||||
// Runtime: .NET 4.0
|
||||
|
||||
using Microsoft.FSharp.Collections; |
||||
using Microsoft.FSharp.Core; |
||||
using Microsoft.FSharp.Core.CompilerServices; |
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Diagnostics; |
||||
using System.Reflection; |
||||
using System.Runtime.CompilerServices; |
||||
using System.Runtime.InteropServices; |
||||
using System.Runtime.Versioning; |
||||
|
||||
[assembly: FSharpInterfaceDataVersion(2, 0, 0)] |
||||
[assembly: TargetFramework(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")] |
||||
[assembly: AssemblyTitle("ConsoleApplication1")] |
||||
[assembly: AssemblyDescription("")] |
||||
[assembly: AssemblyConfiguration("")] |
||||
[assembly: AssemblyCompany("")] |
||||
[assembly: AssemblyProduct("ConsoleApplication1")] |
||||
[assembly: AssemblyCopyright("Copyright © 2017")] |
||||
[assembly: AssemblyTrademark("")] |
||||
[assembly: AssemblyCulture("")] |
||||
[assembly: ComVisible(false)] |
||||
[assembly: Guid("e0674ff5-5e8f-4d4e-a88f-e447192454c7")] |
||||
[assembly: AssemblyVersion("1.0.0.0")] |
||||
[assembly: AssemblyFileVersion("1.0.0.0")] |
||||
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations)] |
||||
[assembly: AssemblyVersion("1.0.0.0")] |
||||
[CompilationMapping(SourceConstructFlags.Module)] |
||||
public static class Program |
||||
{ |
||||
[Serializable] |
||||
[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)] |
||||
[CompilationMapping(SourceConstructFlags.Closure)] |
||||
internal sealed class disposable@3 : IDisposable |
||||
{ |
||||
public disposable@3() |
||||
{ |
||||
((object)this)..ctor(); |
||||
} |
||||
|
||||
private void System-IDisposable-Dispose() |
||||
{ |
||||
} |
||||
|
||||
void IDisposable.Dispose() |
||||
{ |
||||
//ILSpy generated this explicit interface implementation from .override directive in System-IDisposable-Dispose
|
||||
this.System-IDisposable-Dispose(); |
||||
} |
||||
} |
||||
|
||||
[Serializable] |
||||
[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)] |
||||
[CompilationMapping(SourceConstructFlags.Closure)] |
||||
internal sealed class getSeq@5 : GeneratedSequenceBase<int> |
||||
{ |
||||
[DebuggerBrowsable(DebuggerBrowsableState.Never)] |
||||
[CompilerGenerated] |
||||
[DebuggerNonUserCode] |
||||
public int pc = pc; |
||||
|
||||
[DebuggerBrowsable(DebuggerBrowsableState.Never)] |
||||
[CompilerGenerated] |
||||
[DebuggerNonUserCode] |
||||
public int current = current; |
||||
|
||||
public getSeq@5(int pc, int current) |
||||
{ |
||||
} |
||||
|
||||
public override int GenerateNext(ref IEnumerable<int> next) |
||||
{ |
||||
switch (this.pc) |
||||
{ |
||||
default: |
||||
this.pc = 1; |
||||
this.current = 1; |
||||
return 1; |
||||
case 1: |
||||
this.pc = 2; |
||||
break; |
||||
case 2: |
||||
break; |
||||
} |
||||
this.current = 0; |
||||
return 0; |
||||
} |
||||
|
||||
public override void Close() |
||||
{ |
||||
this.pc = 2; |
||||
} |
||||
|
||||
public override bool get_CheckClose() |
||||
{ |
||||
switch (this.pc) |
||||
{ |
||||
default: |
||||
return false; |
||||
case 0: |
||||
case 2: |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
[CompilerGenerated] |
||||
[DebuggerNonUserCode] |
||||
public override int get_LastGenerated() |
||||
{ |
||||
return this.current; |
||||
} |
||||
|
||||
[CompilerGenerated] |
||||
[DebuggerNonUserCode] |
||||
public override IEnumerator<int> GetFreshEnumerator() |
||||
{ |
||||
return new getSeq@5(0, 0); |
||||
} |
||||
} |
||||
|
||||
public static IDisposable disposable() |
||||
{ |
||||
return new disposable@3(); |
||||
} |
||||
|
||||
public static IEnumerable<int> getSeq() |
||||
{ |
||||
return new getSeq@5(0, 0); |
||||
} |
||||
|
||||
public static FSharpList<int> getList() |
||||
{ |
||||
return FSharpList<int>.Cons(1, FSharpList<int>.Empty); |
||||
} |
||||
|
||||
public static int[] getArray() |
||||
{ |
||||
return new int[1] |
||||
{ |
||||
1 |
||||
}; |
||||
} |
||||
|
||||
[EntryPoint] |
||||
public static int main(string[] argv) |
||||
{ |
||||
IDisposable disposable = default(IDisposable); |
||||
using (Program.disposable()) |
||||
{ |
||||
Console.WriteLine("Hello 1"); |
||||
disposable = Program.disposable(); |
||||
} |
||||
using (disposable) |
||||
{ |
||||
IEnumerable<int> seq = Program.getSeq(); |
||||
using (IEnumerator<int> enumerator = seq.GetEnumerator()) |
||||
{ |
||||
while (true) |
||||
{ |
||||
if (!enumerator.MoveNext()) |
||||
break; |
||||
int k = enumerator.Current; |
||||
Console.WriteLine(k); |
||||
} |
||||
} |
||||
FSharpList<int> fSharpList = Program.getList(); |
||||
FSharpList<int> tailOrNull = fSharpList.TailOrNull; |
||||
while (true) |
||||
{ |
||||
if (tailOrNull == null) |
||||
break; |
||||
int j = fSharpList.HeadOrDefault; |
||||
Console.WriteLine(j); |
||||
fSharpList = tailOrNull; |
||||
tailOrNull = fSharpList.TailOrNull; |
||||
} |
||||
int[] array = Program.getArray(); |
||||
for (int l = 0; l < array.Length; l++) |
||||
{ |
||||
int i = array[l]; |
||||
Console.WriteLine(i); |
||||
} |
||||
return 0; |
||||
} |
||||
} |
||||
} |
||||
namespace <StartupCode$ConsoleApplication1> |
||||
{ |
||||
internal static class $Program |
||||
{ |
||||
} |
||||
internal static class $AssemblyInfo |
||||
{ |
||||
} |
||||
} |
||||
namespace <StartupCode$ConsoleApplication1>.$.NETFramework,Version=v4.6.1 |
||||
{ |
||||
internal static class AssemblyAttributes |
||||
{ |
||||
} |
||||
} |
@ -0,0 +1,586 @@
@@ -0,0 +1,586 @@
|
||||
// C:\Users\Siegfried\Documents\Visual Studio 2017\Projects\ConsoleApp13\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe |
||||
|
||||
.assembly extern mscorlib |
||||
{ |
||||
.publickeytoken = ( |
||||
b7 7a 5c 56 19 34 e0 89 |
||||
) |
||||
.ver 4:0:0:0 |
||||
} |
||||
.assembly extern FSharp.Core |
||||
{ |
||||
.publickeytoken = ( |
||||
b0 3f 5f 7f 11 d5 0a 3a |
||||
) |
||||
.ver 4:4:1:0 |
||||
} |
||||
.assembly ConsoleApplication1 |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.FSharpInterfaceDataVersionAttribute::.ctor(int32, int32, int32) = ( |
||||
01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = ( |
||||
01 00 1c 2e 4e 45 54 46 72 61 6d 65 77 6f 72 6b |
||||
2c 56 65 72 73 69 6f 6e 3d 76 34 2e 36 2e 31 01 |
||||
00 54 0e 14 46 72 61 6d 65 77 6f 72 6b 44 69 73 |
||||
70 6c 61 79 4e 61 6d 65 14 2e 4e 45 54 20 46 72 |
||||
61 6d 65 77 6f 72 6b 20 34 2e 36 2e 31 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( |
||||
01 00 13 43 6f 6e 73 6f 6c 65 41 70 70 6c 69 63 |
||||
61 74 69 6f 6e 31 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyConfigurationAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( |
||||
01 00 13 43 6f 6e 73 6f 6c 65 41 70 70 6c 69 63 |
||||
61 74 69 6f 6e 31 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = ( |
||||
01 00 12 43 6f 70 79 72 69 67 68 74 20 c2 a9 20 |
||||
20 32 30 31 37 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyTrademarkAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyCultureAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( |
||||
01 00 24 65 30 36 37 34 66 66 35 2d 35 65 38 66 |
||||
2d 34 64 34 65 2d 61 38 38 66 2d 65 34 34 37 31 |
||||
39 32 34 35 34 63 37 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyVersionAttribute::.ctor(string) = ( |
||||
01 00 07 31 2e 30 2e 30 2e 30 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( |
||||
01 00 07 31 2e 30 2e 30 2e 30 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( |
||||
01 00 01 01 00 00 00 00 |
||||
) |
||||
.hash algorithm 0x00008004 // SHA1 |
||||
.ver 1:0:0:0 |
||||
} |
||||
|
||||
.module ConsoleApplication1.exe |
||||
// MVID: {59F64D20-6A1F-D4CE-A745-0383204DF659} |
||||
.corflags 0x00020003 // ILOnly, Required32Bit, Preferred32Bit |
||||
|
||||
|
||||
.class private auto ansi '<Module>' |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
} // end of class <Module> |
||||
|
||||
.class public auto ansi abstract sealed Program |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( |
||||
01 00 07 00 00 00 00 00 |
||||
) |
||||
// Nested Types |
||||
.class nested assembly auto auto sealed specialname serializable beforefieldinit disposable@3 |
||||
extends [mscorlib]System.Object |
||||
implements [mscorlib]System.IDisposable |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( |
||||
01 00 06 00 00 00 00 00 |
||||
) |
||||
// Methods |
||||
.method public specialname rtspecialname |
||||
instance void .ctor () cil managed |
||||
{ |
||||
// Method begins at RVA 0x21c8 |
||||
// Code size 9 (0x9) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() |
||||
IL_0006: ldarg.0 |
||||
IL_0007: pop |
||||
IL_0008: ret |
||||
} // end of method disposable@3::.ctor |
||||
|
||||
.method private final hidebysig newslot virtual |
||||
instance void 'System-IDisposable-Dispose' () cil managed |
||||
{ |
||||
.override method instance void [mscorlib]System.IDisposable::Dispose() |
||||
// Method begins at RVA 0x21d4 |
||||
// Code size 1 (0x1) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ret |
||||
} // end of method disposable@3::'System-IDisposable-Dispose' |
||||
|
||||
} // end of class disposable@3 |
||||
|
||||
.class nested assembly auto auto sealed specialname serializable beforefieldinit getSeq@5 |
||||
extends class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1<int32> |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( |
||||
01 00 06 00 00 00 00 00 |
||||
) |
||||
// Fields |
||||
.field public int32 pc |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( |
||||
01 00 00 00 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.field public int32 current |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( |
||||
01 00 00 00 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
|
||||
// Methods |
||||
.method public specialname rtspecialname |
||||
instance void .ctor ( |
||||
int32 pc, |
||||
int32 current |
||||
) cil managed |
||||
{ |
||||
// Method begins at RVA 0x21d8 |
||||
// Code size 21 (0x15) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldarg.1 |
||||
IL_0002: stfld int32 Program/getSeq@5::pc |
||||
IL_0007: ldarg.0 |
||||
IL_0008: ldarg.2 |
||||
IL_0009: stfld int32 Program/getSeq@5::current |
||||
IL_000e: ldarg.0 |
||||
IL_000f: call instance void class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1<int32>::.ctor() |
||||
IL_0014: ret |
||||
} // end of method getSeq@5::.ctor |
||||
|
||||
.method public strict virtual |
||||
instance int32 GenerateNext ( |
||||
class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>& next |
||||
) cil managed |
||||
{ |
||||
// Method begins at RVA 0x21f0 |
||||
// Code size 66 (0x42) |
||||
.maxstack 6 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldfld int32 Program/getSeq@5::pc |
||||
IL_0006: ldc.i4.1 |
||||
IL_0007: sub |
||||
IL_0008: switch (IL_0017, IL_0019) |
||||
|
||||
IL_0015: br.s IL_0021 |
||||
|
||||
IL_0017: br.s IL_001b |
||||
|
||||
IL_0019: br.s IL_001e |
||||
|
||||
IL_001b: nop |
||||
IL_001c: br.s IL_0032 |
||||
|
||||
IL_001e: nop |
||||
IL_001f: br.s IL_0039 |
||||
|
||||
IL_0021: nop |
||||
IL_0022: ldarg.0 |
||||
IL_0023: ldc.i4.1 |
||||
IL_0024: stfld int32 Program/getSeq@5::pc |
||||
IL_0029: ldarg.0 |
||||
IL_002a: ldc.i4.1 |
||||
IL_002b: stfld int32 Program/getSeq@5::current |
||||
IL_0030: ldc.i4.1 |
||||
IL_0031: ret |
||||
|
||||
IL_0032: ldarg.0 |
||||
IL_0033: ldc.i4.2 |
||||
IL_0034: stfld int32 Program/getSeq@5::pc |
||||
|
||||
IL_0039: ldarg.0 |
||||
IL_003a: ldc.i4.0 |
||||
IL_003b: stfld int32 Program/getSeq@5::current |
||||
IL_0040: ldc.i4.0 |
||||
IL_0041: ret |
||||
} // end of method getSeq@5::GenerateNext |
||||
|
||||
.method public strict virtual |
||||
instance void Close () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2240 |
||||
// Code size 8 (0x8) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldc.i4.2 |
||||
IL_0002: stfld int32 Program/getSeq@5::pc |
||||
IL_0007: ret |
||||
} // end of method getSeq@5::Close |
||||
|
||||
.method public strict virtual |
||||
instance bool get_CheckClose () cil managed |
||||
{ |
||||
// Method begins at RVA 0x224c |
||||
// Code size 45 (0x2d) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldfld int32 Program/getSeq@5::pc |
||||
IL_0006: switch (IL_0019, IL_001b, IL_001d) |
||||
|
||||
IL_0017: br.s IL_0028 |
||||
|
||||
IL_0019: br.s IL_001f |
||||
|
||||
IL_001b: br.s IL_0022 |
||||
|
||||
IL_001d: br.s IL_0025 |
||||
|
||||
IL_001f: nop |
||||
IL_0020: br.s IL_002b |
||||
|
||||
IL_0022: nop |
||||
IL_0023: br.s IL_0029 |
||||
|
||||
IL_0025: nop |
||||
IL_0026: br.s IL_002b |
||||
|
||||
IL_0028: nop |
||||
|
||||
IL_0029: ldc.i4.0 |
||||
IL_002a: ret |
||||
|
||||
IL_002b: ldc.i4.0 |
||||
IL_002c: ret |
||||
} // end of method getSeq@5::get_CheckClose |
||||
|
||||
.method public strict virtual |
||||
instance int32 get_LastGenerated () cil managed |
||||
{ |
||||
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
// Method begins at RVA 0x227c |
||||
// Code size 7 (0x7) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldfld int32 Program/getSeq@5::current |
||||
IL_0006: ret |
||||
} // end of method getSeq@5::get_LastGenerated |
||||
|
||||
.method public strict virtual |
||||
instance class [mscorlib]System.Collections.Generic.IEnumerator`1<int32> GetFreshEnumerator () cil managed |
||||
{ |
||||
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
// Method begins at RVA 0x2284 |
||||
// Code size 8 (0x8) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldc.i4.0 |
||||
IL_0001: ldc.i4.0 |
||||
IL_0002: newobj instance void Program/getSeq@5::.ctor(int32, int32) |
||||
IL_0007: ret |
||||
} // end of method getSeq@5::GetFreshEnumerator |
||||
|
||||
} // end of class getSeq@5 |
||||
|
||||
|
||||
// Methods |
||||
.method public static |
||||
class [mscorlib]System.IDisposable disposable () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2050 |
||||
// Code size 6 (0x6) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: newobj instance void Program/disposable@3::.ctor() |
||||
IL_0005: ret |
||||
} // end of method Program::disposable |
||||
|
||||
.method public static |
||||
class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> getSeq () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2058 |
||||
// Code size 8 (0x8) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldc.i4.0 |
||||
IL_0001: ldc.i4.0 |
||||
IL_0002: newobj instance void Program/getSeq@5::.ctor(int32, int32) |
||||
IL_0007: ret |
||||
} // end of method Program::getSeq |
||||
|
||||
.method public static |
||||
class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32> getList () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2064 |
||||
// Code size 12 (0xc) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldc.i4.1 |
||||
IL_0001: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_Empty() |
||||
IL_0006: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0>) |
||||
IL_000b: ret |
||||
} // end of method Program::getList |
||||
|
||||
.method public static |
||||
int32[] getArray () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2074 |
||||
// Code size 15 (0xf) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldc.i4.1 |
||||
IL_0001: newarr [mscorlib]System.Int32 |
||||
IL_0006: dup |
||||
IL_0007: ldc.i4.0 |
||||
IL_0008: ldc.i4.1 |
||||
IL_0009: stelem.any [mscorlib]System.Int32 |
||||
IL_000e: ret |
||||
} // end of method Program::getArray |
||||
|
||||
.method public static |
||||
int32 main ( |
||||
string[] argv |
||||
) cil managed |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.EntryPointAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
// Method begins at RVA 0x2084 |
||||
// Code size 270 (0x10e) |
||||
.maxstack 4 |
||||
.entrypoint |
||||
.locals init ( |
||||
[0] class [mscorlib]System.IDisposable, |
||||
[1] class [mscorlib]System.IDisposable, |
||||
[2] class [mscorlib]System.IDisposable, |
||||
[3] class [mscorlib]System.IDisposable, |
||||
[4] int32, |
||||
[5] class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>, |
||||
[6] class [mscorlib]System.Collections.Generic.IEnumerator`1<int32>, |
||||
[7] class [FSharp.Core]Microsoft.FSharp.Core.Unit, |
||||
[8] int32, |
||||
[9] class [mscorlib]System.IDisposable, |
||||
[10] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>, |
||||
[11] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>, |
||||
[12] int32, |
||||
[13] int32[], |
||||
[14] int32, |
||||
[15] int32, |
||||
[16] class [mscorlib]System.IDisposable |
||||
) |
||||
|
||||
IL_0000: call class [mscorlib]System.IDisposable Program::disposable() |
||||
IL_0005: stloc.1 |
||||
.try |
||||
{ |
||||
IL_0006: ldstr "Hello 1" |
||||
IL_000b: call void [mscorlib]System.Console::WriteLine(string) |
||||
IL_0010: call class [mscorlib]System.IDisposable Program::disposable() |
||||
IL_0015: stloc.2 |
||||
IL_0016: leave.s IL_0032 |
||||
} // end .try |
||||
finally |
||||
{ |
||||
IL_0018: ldloc.1 |
||||
IL_0019: isinst [mscorlib]System.IDisposable |
||||
IL_001e: stloc.3 |
||||
IL_001f: ldloc.3 |
||||
IL_0020: brfalse.s IL_0024 |
||||
|
||||
IL_0022: br.s IL_0026 |
||||
|
||||
IL_0024: br.s IL_002f |
||||
|
||||
IL_0026: ldloc.3 |
||||
IL_0027: callvirt instance void [mscorlib]System.IDisposable::Dispose() |
||||
IL_002c: ldnull |
||||
IL_002d: pop |
||||
IL_002e: endfinally |
||||
|
||||
IL_002f: ldnull |
||||
IL_0030: pop |
||||
IL_0031: endfinally |
||||
} // end handler |
||||
|
||||
IL_0032: ldloc.2 |
||||
IL_0033: stloc.0 |
||||
.try |
||||
{ |
||||
IL_0034: call class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> Program::getSeq() |
||||
IL_0039: stloc.s 5 |
||||
IL_003b: ldloc.s 5 |
||||
IL_003d: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>::GetEnumerator() |
||||
IL_0042: stloc.s 6 |
||||
.try |
||||
{ |
||||
// loop start (head: IL_0044) |
||||
IL_0044: ldloc.s 6 |
||||
IL_0046: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() |
||||
IL_004b: brfalse.s IL_0060 |
||||
|
||||
IL_004d: ldloc.s 6 |
||||
IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<int32>::get_Current() |
||||
IL_0054: stloc.s 8 |
||||
IL_0056: ldloc.s 8 |
||||
IL_0058: call void [mscorlib]System.Console::WriteLine(int32) |
||||
IL_005d: nop |
||||
IL_005e: br.s IL_0044 |
||||
// end loop |
||||
|
||||
IL_0060: ldnull |
||||
IL_0061: stloc.s 7 |
||||
IL_0063: leave.s IL_0083 |
||||
} // end .try |
||||
finally |
||||
{ |
||||
IL_0065: ldloc.s 6 |
||||
IL_0067: isinst [mscorlib]System.IDisposable |
||||
IL_006c: stloc.s 9 |
||||
IL_006e: ldloc.s 9 |
||||
IL_0070: brfalse.s IL_0074 |
||||
|
||||
IL_0072: br.s IL_0076 |
||||
|
||||
IL_0074: br.s IL_0080 |
||||
|
||||
IL_0076: ldloc.s 9 |
||||
IL_0078: callvirt instance void [mscorlib]System.IDisposable::Dispose() |
||||
IL_007d: ldnull |
||||
IL_007e: pop |
||||
IL_007f: endfinally |
||||
|
||||
IL_0080: ldnull |
||||
IL_0081: pop |
||||
IL_0082: endfinally |
||||
} // end handler |
||||
|
||||
IL_0083: ldloc.s 7 |
||||
IL_0085: pop |
||||
IL_0086: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32> Program::getList() |
||||
IL_008b: stloc.s 10 |
||||
IL_008d: ldloc.s 10 |
||||
IL_008f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_TailOrNull() |
||||
IL_0094: stloc.s 11 |
||||
// loop start (head: IL_0096) |
||||
IL_0096: ldloc.s 11 |
||||
IL_0098: ldnull |
||||
IL_0099: cgt.un |
||||
IL_009b: brfalse.s IL_00bd |
||||
|
||||
IL_009d: ldloc.s 10 |
||||
IL_009f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_HeadOrDefault() |
||||
IL_00a4: stloc.s 12 |
||||
IL_00a6: ldloc.s 12 |
||||
IL_00a8: call void [mscorlib]System.Console::WriteLine(int32) |
||||
IL_00ad: ldloc.s 11 |
||||
IL_00af: stloc.s 10 |
||||
IL_00b1: ldloc.s 10 |
||||
IL_00b3: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_TailOrNull() |
||||
IL_00b8: stloc.s 11 |
||||
IL_00ba: nop |
||||
IL_00bb: br.s IL_0096 |
||||
// end loop |
||||
|
||||
IL_00bd: call int32[] Program::getArray() |
||||
IL_00c2: stloc.s 13 |
||||
IL_00c4: ldc.i4.0 |
||||
IL_00c5: stloc.s 14 |
||||
IL_00c7: br.s IL_00e1 |
||||
// loop start (head: IL_00e1) |
||||
IL_00c9: ldloc.s 13 |
||||
IL_00cb: ldloc.s 14 |
||||
IL_00cd: ldelem.any [mscorlib]System.Int32 |
||||
IL_00d2: stloc.s 15 |
||||
IL_00d4: ldloc.s 15 |
||||
IL_00d6: call void [mscorlib]System.Console::WriteLine(int32) |
||||
IL_00db: ldloc.s 14 |
||||
IL_00dd: ldc.i4.1 |
||||
IL_00de: add |
||||
IL_00df: stloc.s 14 |
||||
|
||||
IL_00e1: ldloc.s 14 |
||||
IL_00e3: ldloc.s 13 |
||||
IL_00e5: ldlen |
||||
IL_00e6: conv.i4 |
||||
IL_00e7: blt.s IL_00c9 |
||||
// end loop |
||||
|
||||
IL_00e9: ldc.i4.0 |
||||
IL_00ea: stloc.s 4 |
||||
IL_00ec: leave.s IL_010b |
||||
} // end .try |
||||
finally |
||||
{ |
||||
IL_00ee: ldloc.0 |
||||
IL_00ef: isinst [mscorlib]System.IDisposable |
||||
IL_00f4: stloc.s 16 |
||||
IL_00f6: ldloc.s 16 |
||||
IL_00f8: brfalse.s IL_00fc |
||||
|
||||
IL_00fa: br.s IL_00fe |
||||
|
||||
IL_00fc: br.s IL_0108 |
||||
|
||||
IL_00fe: ldloc.s 16 |
||||
IL_0100: callvirt instance void [mscorlib]System.IDisposable::Dispose() |
||||
IL_0105: ldnull |
||||
IL_0106: pop |
||||
IL_0107: endfinally |
||||
|
||||
IL_0108: ldnull |
||||
IL_0109: pop |
||||
IL_010a: endfinally |
||||
} // end handler |
||||
|
||||
IL_010b: ldloc.s 4 |
||||
IL_010d: ret |
||||
} // end of method Program::main |
||||
|
||||
} // end of class Program |
||||
|
||||
.class private auto ansi abstract sealed '<StartupCode$ConsoleApplication1>.$Program' |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
} // end of class <StartupCode$ConsoleApplication1>.$Program |
||||
|
||||
.class private auto ansi abstract sealed '<StartupCode$ConsoleApplication1>.$AssemblyInfo' |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
} // end of class <StartupCode$ConsoleApplication1>.$AssemblyInfo |
||||
|
||||
.class private auto ansi abstract sealed '<StartupCode$ConsoleApplication1>.$.NETFramework,Version=v4.6.1.AssemblyAttributes' |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
} // end of class <StartupCode$ConsoleApplication1>.$.NETFramework,Version=v4.6.1.AssemblyAttributes |
||||
|
@ -0,0 +1,210 @@
@@ -0,0 +1,210 @@
|
||||
|
||||
// C:\Users\Siegfried\Documents\Visual Studio 2017\Projects\ConsoleApp13\ConsoleApplication1\bin\Release\ConsoleApplication1.exe
|
||||
// ConsoleApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// Global type: <Module>
|
||||
// Entry point: Program.main
|
||||
// Architecture: AnyCPU (32-bit preferred)
|
||||
// Runtime: .NET 4.0
|
||||
|
||||
using Microsoft.FSharp.Collections; |
||||
using Microsoft.FSharp.Core; |
||||
using Microsoft.FSharp.Core.CompilerServices; |
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Diagnostics; |
||||
using System.Reflection; |
||||
using System.Runtime.CompilerServices; |
||||
using System.Runtime.InteropServices; |
||||
using System.Runtime.Versioning; |
||||
|
||||
[assembly: FSharpInterfaceDataVersion(2, 0, 0)] |
||||
[assembly: TargetFramework(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")] |
||||
[assembly: AssemblyTitle("ConsoleApplication1")] |
||||
[assembly: AssemblyDescription("")] |
||||
[assembly: AssemblyConfiguration("")] |
||||
[assembly: AssemblyCompany("")] |
||||
[assembly: AssemblyProduct("ConsoleApplication1")] |
||||
[assembly: AssemblyCopyright("Copyright © 2017")] |
||||
[assembly: AssemblyTrademark("")] |
||||
[assembly: AssemblyCulture("")] |
||||
[assembly: ComVisible(false)] |
||||
[assembly: Guid("e0674ff5-5e8f-4d4e-a88f-e447192454c7")] |
||||
[assembly: AssemblyVersion("1.0.0.0")] |
||||
[assembly: AssemblyFileVersion("1.0.0.0")] |
||||
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.None)] |
||||
[assembly: AssemblyVersion("1.0.0.0")] |
||||
[CompilationMapping(SourceConstructFlags.Module)] |
||||
public static class Program |
||||
{ |
||||
[Serializable] |
||||
[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)] |
||||
[CompilationMapping(SourceConstructFlags.Closure)] |
||||
internal sealed class disposable@3 : IDisposable |
||||
{ |
||||
public disposable@3() |
||||
{ |
||||
((object)this)..ctor(); |
||||
} |
||||
|
||||
private void System-IDisposable-Dispose() |
||||
{ |
||||
} |
||||
|
||||
void IDisposable.Dispose() |
||||
{ |
||||
//ILSpy generated this explicit interface implementation from .override directive in System-IDisposable-Dispose
|
||||
this.System-IDisposable-Dispose(); |
||||
} |
||||
} |
||||
|
||||
[Serializable] |
||||
[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)] |
||||
[CompilationMapping(SourceConstructFlags.Closure)] |
||||
internal sealed class getSeq@5 : GeneratedSequenceBase<int> |
||||
{ |
||||
[DebuggerBrowsable(DebuggerBrowsableState.Never)] |
||||
[CompilerGenerated] |
||||
[DebuggerNonUserCode] |
||||
public int pc = pc; |
||||
|
||||
[DebuggerBrowsable(DebuggerBrowsableState.Never)] |
||||
[CompilerGenerated] |
||||
[DebuggerNonUserCode] |
||||
public int current = current; |
||||
|
||||
public getSeq@5(int pc, int current) |
||||
{ |
||||
} |
||||
|
||||
public override int GenerateNext(ref IEnumerable<int> next) |
||||
{ |
||||
switch (this.pc) |
||||
{ |
||||
default: |
||||
this.pc = 1; |
||||
this.current = 1; |
||||
return 1; |
||||
case 1: |
||||
this.pc = 2; |
||||
break; |
||||
case 2: |
||||
break; |
||||
} |
||||
this.current = 0; |
||||
return 0; |
||||
} |
||||
|
||||
public override void Close() |
||||
{ |
||||
this.pc = 2; |
||||
} |
||||
|
||||
public override bool get_CheckClose() |
||||
{ |
||||
switch (this.pc) |
||||
{ |
||||
default: |
||||
return false; |
||||
case 0: |
||||
case 2: |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
[CompilerGenerated] |
||||
[DebuggerNonUserCode] |
||||
public override int get_LastGenerated() |
||||
{ |
||||
return this.current; |
||||
} |
||||
|
||||
[CompilerGenerated] |
||||
[DebuggerNonUserCode] |
||||
public override IEnumerator<int> GetFreshEnumerator() |
||||
{ |
||||
return new getSeq@5(0, 0); |
||||
} |
||||
} |
||||
|
||||
public static IDisposable disposable() |
||||
{ |
||||
return new disposable@3(); |
||||
} |
||||
|
||||
public static IEnumerable<int> getSeq() |
||||
{ |
||||
return new getSeq@5(0, 0); |
||||
} |
||||
|
||||
public static FSharpList<int> getList() |
||||
{ |
||||
return FSharpList<int>.Cons(1, FSharpList<int>.Empty); |
||||
} |
||||
|
||||
public static int[] getArray() |
||||
{ |
||||
return new int[1] |
||||
{ |
||||
1 |
||||
}; |
||||
} |
||||
|
||||
[EntryPoint] |
||||
public static int main(string[] argv) |
||||
{ |
||||
IDisposable disposable = default(IDisposable); |
||||
using (Program.disposable()) |
||||
{ |
||||
Console.WriteLine("Hello 1"); |
||||
disposable = Program.disposable(); |
||||
} |
||||
using (disposable) |
||||
{ |
||||
IEnumerable<int> seq = Program.getSeq(); |
||||
using (IEnumerator<int> enumerator = seq.GetEnumerator()) |
||||
{ |
||||
while (true) |
||||
{ |
||||
if (!enumerator.MoveNext()) |
||||
break; |
||||
Console.WriteLine(enumerator.Current); |
||||
} |
||||
} |
||||
FSharpList<int> fSharpList = FSharpList<int>.Cons(1, FSharpList<int>.Empty); |
||||
FSharpList<int> tailOrNull = fSharpList.TailOrNull; |
||||
while (true) |
||||
{ |
||||
if (tailOrNull == null) |
||||
break; |
||||
int j = fSharpList.HeadOrDefault; |
||||
Console.WriteLine(j); |
||||
fSharpList = tailOrNull; |
||||
tailOrNull = fSharpList.TailOrNull; |
||||
} |
||||
int[] array = new int[1] |
||||
{ |
||||
1 |
||||
}; |
||||
for (int j = 0; j < array.Length; j++) |
||||
{ |
||||
Console.WriteLine(array[j]); |
||||
} |
||||
return 0; |
||||
} |
||||
} |
||||
} |
||||
namespace <StartupCode$ConsoleApplication1> |
||||
{ |
||||
internal static class $Program |
||||
{ |
||||
} |
||||
internal static class $AssemblyInfo |
||||
{ |
||||
} |
||||
} |
||||
namespace <StartupCode$ConsoleApplication1>.$.NETFramework,Version=v4.6.1 |
||||
{ |
||||
internal static class AssemblyAttributes |
||||
{ |
||||
} |
||||
} |
@ -0,0 +1,561 @@
@@ -0,0 +1,561 @@
|
||||
// C:\Users\Siegfried\Documents\Visual Studio 2017\Projects\ConsoleApp13\ConsoleApplication1\bin\Release\ConsoleApplication1.exe |
||||
|
||||
.assembly extern mscorlib |
||||
{ |
||||
.publickeytoken = ( |
||||
b7 7a 5c 56 19 34 e0 89 |
||||
) |
||||
.ver 4:0:0:0 |
||||
} |
||||
.assembly extern FSharp.Core |
||||
{ |
||||
.publickeytoken = ( |
||||
b0 3f 5f 7f 11 d5 0a 3a |
||||
) |
||||
.ver 4:4:1:0 |
||||
} |
||||
.assembly ConsoleApplication1 |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.FSharpInterfaceDataVersionAttribute::.ctor(int32, int32, int32) = ( |
||||
01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = ( |
||||
01 00 1c 2e 4e 45 54 46 72 61 6d 65 77 6f 72 6b |
||||
2c 56 65 72 73 69 6f 6e 3d 76 34 2e 36 2e 31 01 |
||||
00 54 0e 14 46 72 61 6d 65 77 6f 72 6b 44 69 73 |
||||
70 6c 61 79 4e 61 6d 65 14 2e 4e 45 54 20 46 72 |
||||
61 6d 65 77 6f 72 6b 20 34 2e 36 2e 31 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( |
||||
01 00 13 43 6f 6e 73 6f 6c 65 41 70 70 6c 69 63 |
||||
61 74 69 6f 6e 31 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyConfigurationAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( |
||||
01 00 13 43 6f 6e 73 6f 6c 65 41 70 70 6c 69 63 |
||||
61 74 69 6f 6e 31 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = ( |
||||
01 00 12 43 6f 70 79 72 69 67 68 74 20 c2 a9 20 |
||||
20 32 30 31 37 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyTrademarkAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyCultureAttribute::.ctor(string) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( |
||||
01 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( |
||||
01 00 24 65 30 36 37 34 66 66 35 2d 35 65 38 66 |
||||
2d 34 64 34 65 2d 61 38 38 66 2d 65 34 34 37 31 |
||||
39 32 34 35 34 63 37 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyVersionAttribute::.ctor(string) = ( |
||||
01 00 07 31 2e 30 2e 30 2e 30 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( |
||||
01 00 07 31 2e 30 2e 30 2e 30 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( |
||||
01 00 00 00 00 00 00 00 |
||||
) |
||||
.hash algorithm 0x00008004 // SHA1 |
||||
.ver 1:0:0:0 |
||||
} |
||||
|
||||
.module ConsoleApplication1.exe |
||||
// MVID: {59F64D28-6A1F-D4CE-A745-0383284DF659} |
||||
.corflags 0x00020003 // ILOnly, Required32Bit, Preferred32Bit |
||||
|
||||
|
||||
.class private auto ansi '<Module>' |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
} // end of class <Module> |
||||
|
||||
.class public auto ansi abstract sealed Program |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( |
||||
01 00 07 00 00 00 00 00 |
||||
) |
||||
// Nested Types |
||||
.class nested assembly auto auto sealed specialname serializable beforefieldinit disposable@3 |
||||
extends [mscorlib]System.Object |
||||
implements [mscorlib]System.IDisposable |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( |
||||
01 00 06 00 00 00 00 00 |
||||
) |
||||
// Methods |
||||
.method public specialname rtspecialname |
||||
instance void .ctor () cil managed |
||||
{ |
||||
// Method begins at RVA 0x21bc |
||||
// Code size 9 (0x9) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() |
||||
IL_0006: ldarg.0 |
||||
IL_0007: pop |
||||
IL_0008: ret |
||||
} // end of method disposable@3::.ctor |
||||
|
||||
.method private final hidebysig newslot virtual |
||||
instance void 'System-IDisposable-Dispose' () cil managed |
||||
{ |
||||
.override method instance void [mscorlib]System.IDisposable::Dispose() |
||||
// Method begins at RVA 0x21c8 |
||||
// Code size 1 (0x1) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ret |
||||
} // end of method disposable@3::'System-IDisposable-Dispose' |
||||
|
||||
} // end of class disposable@3 |
||||
|
||||
.class nested assembly auto auto sealed specialname serializable beforefieldinit getSeq@5 |
||||
extends class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1<int32> |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( |
||||
01 00 06 00 00 00 00 00 |
||||
) |
||||
// Fields |
||||
.field public int32 pc |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( |
||||
01 00 00 00 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.field public int32 current |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( |
||||
01 00 00 00 00 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
|
||||
// Methods |
||||
.method public specialname rtspecialname |
||||
instance void .ctor ( |
||||
int32 pc, |
||||
int32 current |
||||
) cil managed |
||||
{ |
||||
// Method begins at RVA 0x21cc |
||||
// Code size 21 (0x15) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldarg.1 |
||||
IL_0002: stfld int32 Program/getSeq@5::pc |
||||
IL_0007: ldarg.0 |
||||
IL_0008: ldarg.2 |
||||
IL_0009: stfld int32 Program/getSeq@5::current |
||||
IL_000e: ldarg.0 |
||||
IL_000f: call instance void class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1<int32>::.ctor() |
||||
IL_0014: ret |
||||
} // end of method getSeq@5::.ctor |
||||
|
||||
.method public strict virtual |
||||
instance int32 GenerateNext ( |
||||
class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>& next |
||||
) cil managed |
||||
{ |
||||
// Method begins at RVA 0x21e4 |
||||
// Code size 62 (0x3e) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldfld int32 Program/getSeq@5::pc |
||||
IL_0006: ldc.i4.1 |
||||
IL_0007: sub |
||||
IL_0008: switch (IL_0018, IL_001b) |
||||
|
||||
IL_0015: nop |
||||
IL_0016: br.s IL_001e |
||||
|
||||
IL_0018: nop |
||||
IL_0019: br.s IL_002e |
||||
|
||||
IL_001b: nop |
||||
IL_001c: br.s IL_0035 |
||||
|
||||
IL_001e: ldarg.0 |
||||
IL_001f: ldc.i4.1 |
||||
IL_0020: stfld int32 Program/getSeq@5::pc |
||||
IL_0025: ldarg.0 |
||||
IL_0026: ldc.i4.1 |
||||
IL_0027: stfld int32 Program/getSeq@5::current |
||||
IL_002c: ldc.i4.1 |
||||
IL_002d: ret |
||||
|
||||
IL_002e: ldarg.0 |
||||
IL_002f: ldc.i4.2 |
||||
IL_0030: stfld int32 Program/getSeq@5::pc |
||||
|
||||
IL_0035: ldarg.0 |
||||
IL_0036: ldc.i4.0 |
||||
IL_0037: stfld int32 Program/getSeq@5::current |
||||
IL_003c: ldc.i4.0 |
||||
IL_003d: ret |
||||
} // end of method getSeq@5::GenerateNext |
||||
|
||||
.method public strict virtual |
||||
instance void Close () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2224 |
||||
// Code size 8 (0x8) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldc.i4.2 |
||||
IL_0002: stfld int32 Program/getSeq@5::pc |
||||
IL_0007: ret |
||||
} // end of method getSeq@5::Close |
||||
|
||||
.method public strict virtual |
||||
instance bool get_CheckClose () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2230 |
||||
// Code size 39 (0x27) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldfld int32 Program/getSeq@5::pc |
||||
IL_0006: switch (IL_001a, IL_001d, IL_0020) |
||||
|
||||
IL_0017: nop |
||||
IL_0018: br.s IL_0023 |
||||
|
||||
IL_001a: nop |
||||
IL_001b: br.s IL_0025 |
||||
|
||||
IL_001d: nop |
||||
IL_001e: br.s IL_0023 |
||||
|
||||
IL_0020: nop |
||||
IL_0021: br.s IL_0025 |
||||
|
||||
IL_0023: ldc.i4.0 |
||||
IL_0024: ret |
||||
|
||||
IL_0025: ldc.i4.0 |
||||
IL_0026: ret |
||||
} // end of method getSeq@5::get_CheckClose |
||||
|
||||
.method public strict virtual |
||||
instance int32 get_LastGenerated () cil managed |
||||
{ |
||||
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
// Method begins at RVA 0x2258 |
||||
// Code size 7 (0x7) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldarg.0 |
||||
IL_0001: ldfld int32 Program/getSeq@5::current |
||||
IL_0006: ret |
||||
} // end of method getSeq@5::get_LastGenerated |
||||
|
||||
.method public strict virtual |
||||
instance class [mscorlib]System.Collections.Generic.IEnumerator`1<int32> GetFreshEnumerator () cil managed |
||||
{ |
||||
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
.custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
// Method begins at RVA 0x2260 |
||||
// Code size 8 (0x8) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldc.i4.0 |
||||
IL_0001: ldc.i4.0 |
||||
IL_0002: newobj instance void Program/getSeq@5::.ctor(int32, int32) |
||||
IL_0007: ret |
||||
} // end of method getSeq@5::GetFreshEnumerator |
||||
|
||||
} // end of class getSeq@5 |
||||
|
||||
|
||||
// Methods |
||||
.method public static |
||||
class [mscorlib]System.IDisposable disposable () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2050 |
||||
// Code size 6 (0x6) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: newobj instance void Program/disposable@3::.ctor() |
||||
IL_0005: ret |
||||
} // end of method Program::disposable |
||||
|
||||
.method public static |
||||
class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> getSeq () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2058 |
||||
// Code size 8 (0x8) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldc.i4.0 |
||||
IL_0001: ldc.i4.0 |
||||
IL_0002: newobj instance void Program/getSeq@5::.ctor(int32, int32) |
||||
IL_0007: ret |
||||
} // end of method Program::getSeq |
||||
|
||||
.method public static |
||||
class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32> getList () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2064 |
||||
// Code size 12 (0xc) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldc.i4.1 |
||||
IL_0001: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_Empty() |
||||
IL_0006: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0>) |
||||
IL_000b: ret |
||||
} // end of method Program::getList |
||||
|
||||
.method public static |
||||
int32[] getArray () cil managed |
||||
{ |
||||
// Method begins at RVA 0x2074 |
||||
// Code size 15 (0xf) |
||||
.maxstack 8 |
||||
|
||||
IL_0000: ldc.i4.1 |
||||
IL_0001: newarr [mscorlib]System.Int32 |
||||
IL_0006: dup |
||||
IL_0007: ldc.i4.0 |
||||
IL_0008: ldc.i4.1 |
||||
IL_0009: stelem.any [mscorlib]System.Int32 |
||||
IL_000e: ret |
||||
} // end of method Program::getArray |
||||
|
||||
.method public static |
||||
int32 main ( |
||||
string[] argv |
||||
) cil managed |
||||
{ |
||||
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.EntryPointAttribute::.ctor() = ( |
||||
01 00 00 00 |
||||
) |
||||
// Method begins at RVA 0x2084 |
||||
// Code size 259 (0x103) |
||||
.maxstack 6 |
||||
.entrypoint |
||||
.locals init ( |
||||
[0] class [mscorlib]System.IDisposable, |
||||
[1] class [mscorlib]System.IDisposable, |
||||
[2] class [mscorlib]System.IDisposable, |
||||
[3] class [mscorlib]System.IDisposable, |
||||
[4] int32, |
||||
[5] class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>, |
||||
[6] class [mscorlib]System.Collections.Generic.IEnumerator`1<int32>, |
||||
[7] class [FSharp.Core]Microsoft.FSharp.Core.Unit, |
||||
[8] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>, |
||||
[9] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>, |
||||
[10] int32, |
||||
[11] int32[] |
||||
) |
||||
|
||||
IL_0000: call class [mscorlib]System.IDisposable Program::disposable() |
||||
IL_0005: stloc.1 |
||||
.try |
||||
{ |
||||
IL_0006: ldstr "Hello 1" |
||||
IL_000b: call void [mscorlib]System.Console::WriteLine(string) |
||||
IL_0010: call class [mscorlib]System.IDisposable Program::disposable() |
||||
IL_0015: stloc.2 |
||||
IL_0016: leave.s IL_002e |
||||
} // end .try |
||||
finally |
||||
{ |
||||
IL_0018: ldloc.1 |
||||
IL_0019: isinst [mscorlib]System.IDisposable |
||||
IL_001e: stloc.3 |
||||
IL_001f: ldloc.3 |
||||
IL_0020: brfalse.s IL_002b |
||||
|
||||
IL_0022: ldloc.3 |
||||
IL_0023: callvirt instance void [mscorlib]System.IDisposable::Dispose() |
||||
IL_0028: ldnull |
||||
IL_0029: pop |
||||
IL_002a: endfinally |
||||
|
||||
IL_002b: ldnull |
||||
IL_002c: pop |
||||
IL_002d: endfinally |
||||
} // end handler |
||||
|
||||
IL_002e: ldloc.2 |
||||
IL_002f: stloc.0 |
||||
.try |
||||
{ |
||||
IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> Program::getSeq() |
||||
IL_0035: stloc.s 5 |
||||
IL_0037: ldloc.s 5 |
||||
IL_0039: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>::GetEnumerator() |
||||
IL_003e: stloc.s 6 |
||||
.try |
||||
{ |
||||
// loop start (head: IL_0040) |
||||
IL_0040: ldloc.s 6 |
||||
IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() |
||||
IL_0047: brfalse.s IL_0058 |
||||
|
||||
IL_0049: ldloc.s 6 |
||||
IL_004b: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<int32>::get_Current() |
||||
IL_0050: call void [mscorlib]System.Console::WriteLine(int32) |
||||
IL_0055: nop |
||||
IL_0056: br.s IL_0040 |
||||
// end loop |
||||
|
||||
IL_0058: ldnull |
||||
IL_0059: stloc.s 7 |
||||
IL_005b: leave.s IL_0074 |
||||
} // end .try |
||||
finally |
||||
{ |
||||
IL_005d: ldloc.s 6 |
||||
IL_005f: isinst [mscorlib]System.IDisposable |
||||
IL_0064: stloc.1 |
||||
IL_0065: ldloc.1 |
||||
IL_0066: brfalse.s IL_0071 |
||||
|
||||
IL_0068: ldloc.1 |
||||
IL_0069: callvirt instance void [mscorlib]System.IDisposable::Dispose() |
||||
IL_006e: ldnull |
||||
IL_006f: pop |
||||
IL_0070: endfinally |
||||
|
||||
IL_0071: ldnull |
||||
IL_0072: pop |
||||
IL_0073: endfinally |
||||
} // end handler |
||||
|
||||
IL_0074: ldloc.s 7 |
||||
IL_0076: pop |
||||
IL_0077: ldc.i4.1 |
||||
IL_0078: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_Empty() |
||||
IL_007d: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0>) |
||||
IL_0082: stloc.s 8 |
||||
IL_0084: ldloc.s 8 |
||||
IL_0086: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_TailOrNull() |
||||
IL_008b: stloc.s 9 |
||||
// loop start (head: IL_008d) |
||||
IL_008d: ldloc.s 9 |
||||
IL_008f: ldnull |
||||
IL_0090: cgt.un |
||||
IL_0092: brfalse.s IL_00b4 |
||||
|
||||
IL_0094: ldloc.s 8 |
||||
IL_0096: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_HeadOrDefault() |
||||
IL_009b: stloc.s 10 |
||||
IL_009d: ldloc.s 10 |
||||
IL_009f: call void [mscorlib]System.Console::WriteLine(int32) |
||||
IL_00a4: ldloc.s 9 |
||||
IL_00a6: stloc.s 8 |
||||
IL_00a8: ldloc.s 8 |
||||
IL_00aa: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_TailOrNull() |
||||
IL_00af: stloc.s 9 |
||||
IL_00b1: nop |
||||
IL_00b2: br.s IL_008d |
||||
// end loop |
||||
|
||||
IL_00b4: ldc.i4.1 |
||||
IL_00b5: newarr [mscorlib]System.Int32 |
||||
IL_00ba: dup |
||||
IL_00bb: ldc.i4.0 |
||||
IL_00bc: ldc.i4.1 |
||||
IL_00bd: stelem.any [mscorlib]System.Int32 |
||||
IL_00c2: stloc.s 11 |
||||
IL_00c4: ldc.i4.0 |
||||
IL_00c5: stloc.s 10 |
||||
IL_00c7: br.s IL_00dd |
||||
// loop start (head: IL_00dd) |
||||
IL_00c9: ldloc.s 11 |
||||
IL_00cb: ldloc.s 10 |
||||
IL_00cd: ldelem.any [mscorlib]System.Int32 |
||||
IL_00d2: call void [mscorlib]System.Console::WriteLine(int32) |
||||
IL_00d7: ldloc.s 10 |
||||
IL_00d9: ldc.i4.1 |
||||
IL_00da: add |
||||
IL_00db: stloc.s 10 |
||||
|
||||
IL_00dd: ldloc.s 10 |
||||
IL_00df: ldloc.s 11 |
||||
IL_00e1: ldlen |
||||
IL_00e2: conv.i4 |
||||
IL_00e3: blt.s IL_00c9 |
||||
// end loop |
||||
|
||||
IL_00e5: ldc.i4.0 |
||||
IL_00e6: stloc.s 4 |
||||
IL_00e8: leave.s IL_0100 |
||||
} // end .try |
||||
finally |
||||
{ |
||||
IL_00ea: ldloc.0 |
||||
IL_00eb: isinst [mscorlib]System.IDisposable |
||||
IL_00f0: stloc.1 |
||||
IL_00f1: ldloc.1 |
||||
IL_00f2: brfalse.s IL_00fd |
||||
|
||||
IL_00f4: ldloc.1 |
||||
IL_00f5: callvirt instance void [mscorlib]System.IDisposable::Dispose() |
||||
IL_00fa: ldnull |
||||
IL_00fb: pop |
||||
IL_00fc: endfinally |
||||
|
||||
IL_00fd: ldnull |
||||
IL_00fe: pop |
||||
IL_00ff: endfinally |
||||
} // end handler |
||||
|
||||
IL_0100: ldloc.s 4 |
||||
IL_0102: ret |
||||
} // end of method Program::main |
||||
|
||||
} // end of class Program |
||||
|
||||
.class private auto ansi abstract sealed '<StartupCode$ConsoleApplication1>.$Program' |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
} // end of class <StartupCode$ConsoleApplication1>.$Program |
||||
|
||||
.class private auto ansi abstract sealed '<StartupCode$ConsoleApplication1>.$AssemblyInfo' |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
} // end of class <StartupCode$ConsoleApplication1>.$AssemblyInfo |
||||
|
||||
.class private auto ansi abstract sealed '<StartupCode$ConsoleApplication1>.$.NETFramework,Version=v4.6.1.AssemblyAttributes' |
||||
extends [mscorlib]System.Object |
||||
{ |
||||
} // end of class <StartupCode$ConsoleApplication1>.$.NETFramework,Version=v4.6.1.AssemblyAttributes |
||||
|
Loading…
Reference in new issue