diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/MethodImplAttribute/MethodImplAttribute.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/MethodImplAttribute/MethodImplAttribute.fs index a233c01dbbb42f6fd252f7ef8f8018becc50685a..51f758b7f47e3577a847545cb0747d42c4af6817 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/MethodImplAttribute/MethodImplAttribute.fs +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/MethodImplAttribute/MethodImplAttribute.fs @@ -18,48 +18,48 @@ module MethodImplAttribute = // SOURCE=MethodImplAttribute.ForwardRef.fs SCFLAGS="-a -g --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd MethodImplAttribute.ForwardRef.dll" # MethodImplAttribute.ForwardRef.fs [] - let ``MethodImplAttribute.ForwardRef_fs`` compilation = + let ``ForwardRef_fs`` compilation = compilation |> verifyCompilation // SOURCE=MethodImplAttribute.InternalCall.fs SCFLAGS="-a -g --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd MethodImplAttribute.InternalCall.dll" # MethodImplAttribute.InternalCall.fs [] - let ``MethodImplAttribute.InternalCall_fs`` compilation = + let ``InternalCall_fs`` compilation = compilation |> verifyCompilation // SOURCE=MethodImplAttribute.NoInlining.fs SCFLAGS="-a -g --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd MethodImplAttribute.NoInlining.dll" # MethodImplAttribute.NoInlining.fs [] - let ``MethodImplAttribute.NoInlining_fs`` compilation = + let ``NoInlining_fs`` compilation = compilation |> verifyCompilation // SOURCE=MethodImplAttribute.AggressiveInlining.fs SCFLAGS="-a -g --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd MethodImplAttribute.AggressiveInlining.dll" # MethodImplAttribute.AggressiveInlining.fs [] - let ``MethodImplAttribute.AggressiveInlining_fs`` compilation = + let ``AggressiveInlining_fs`` compilation = compilation |> verifyCompilation // SOURCE=MethodImplAttribute.NoOptimization.fs SCFLAGS="-a -g --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd MethodImplAttribute.NoOptimization.dll" # MethodImplAttribute.NoOptimization.fs [] - let ``MethodImplAttribute.NoOptimization_fs`` compilation = + let ``NoOptimization_fs`` compilation = compilation |> verifyCompilation // SOURCE=MethodImplAttribute.PreserveSig.fs SCFLAGS="-a -g --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd MethodImplAttribute.PreserveSig.dll" # MethodImplAttribute.PreserveSig.fs [] - let ``MethodImplAttribute.PreserveSig_fs`` compilation = + let ``PreserveSig_fs`` compilation = compilation |> verifyCompilation // SOURCE=MethodImplAttribute.Synchronized.fs SCFLAGS="-a -g --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd MethodImplAttribute.Synchronized.dll" # MethodImplAttribute.Synchronized.fs [] - let ``MethodImplAttribute.Synchronized_fs`` compilation = + let ``Synchronized_fs`` compilation = compilation |> verifyCompilation // SOURCE=MethodImplAttribute.Unmanaged.fs SCFLAGS="-a -g --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd MethodImplAttribute.Unmanaged.dll" # MethodImplAttribute.Unmanaged.fs [] - let ``MethodImplAttribute.Unmanaged_fs`` compilation = + let ``Unmanaged_fs`` compilation = compilation |> verifyCompilation diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc.fs index e54703e961d0770a6202c3dd4c5de0b6f3c76d25..7e34a6a57edff8b7f99d2575657e707505fda468 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc.fs +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc.fs @@ -7,7 +7,7 @@ open FSharp.Test.Compiler module ``Misc`` = [] - let ``Empty array construct compiles to System.Array.Empty<_>()``() = + let ``Empty array construct compiles to System_Array_Empty<_>()``() = FSharp """ module Misc diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/SerializableAttribute.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/SerializableAttribute.fs new file mode 100644 index 0000000000000000000000000000000000000000..d644b5c25c8a2f246bdd7e44d2cbab7414c84198 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/SerializableAttribute.fs @@ -0,0 +1,44 @@ +namespace FSharp.Compiler.ComponentTests.EmittedIL + +open Xunit +open System.IO +open FSharp.Test +open FSharp.Test.Compiler + +module SerializableAttribute = + + let verifyCompilation compilation = + compilation + |> withOptions [ "--test:EmitFeeFeeAs100001" ] + |> asExe + |> withNoOptimize + |> withEmbeddedPdb + |> withEmbedAllSource + |> ignoreWarnings + |> verifyILBaseline + + // SOURCE=ToplevelModule.fs SCFLAGS="-a -g --out:TopLevelModule.dll --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ToplevelModule.dll" # ToplevelModule.fs - Desktop + [] + let ``ToplevelModule_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=ToplevelNamespace.fs SCFLAGS="-a -g --out:ToplevelNamespace.dll --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ToplevelNamespace.dll" # ToplevelNamespace.fs - Desktop + [] + let ``ToplevelNamespace_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=ToplevelModule.fs SCFLAGS="-a -g --langversion:preview --out:TopLevelModule-preview.dll --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ToplevelModule-preview.dll" # ToplevelModule.fs - Desktop preview + [] + let ``ToplevelModule_LangVersion60_fs`` compilation = + compilation + |> withLangVersion60 + |> verifyCompilation + + // SOURCE=ToplevelNamespace.fs SCFLAGS="-a -g --langversion:preview --out:ToplevelNamespace-preview.dll --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ToplevelNamespace-preview.dll" # ToplevelNamespace.fs - Desktop preview + [] + let ``ToplevelNamespace_LangVersion60_fs`` compilation = + compilation + |> withLangVersion60 + |> verifyCompilation diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelModule.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelModule.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.il.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.il.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..a859e5bf0d74fb507b99c7c40d917b035d55a28a --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.il.debug.bsl @@ -0,0 +1,1590 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly ToplevelModule +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.ToplevelModule +{ + // Offset: 0x00000000 Length: 0x0000116C + // WARNING: managed resource file FSharpSignatureData.ToplevelModule created +} +.mresource public FSharpOptimizationData.ToplevelModule +{ + // Offset: 0x00001170 Length: 0x000003FD + // WARNING: managed resource file FSharpOptimizationData.ToplevelModule created +} +.module ToplevelModule.exe +// MVID: {624CBE98-FD28-3DB9-A745-038398BE4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x034B0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed ABC + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class ABC/Expr + NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void ABC/Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 ABC/Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ABC/Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class ABC/Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 ABC/Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any ABC/Expr + IL_0007: callvirt instance int32 ABC/Expr::CompareTo(class ABC/Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any ABC/Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any ABC/Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 ABC/Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 ABC/Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any ABC/Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 ABC/Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class ABC/Expr V_2, + class ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst ABC/Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 ABC/Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 ABC/Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 ABC/Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 ABC/Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class ABC/Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst ABC/Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool ABC/Expr::Equals(class ABC/Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 ABC/Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 ABC/Expr::get_Item() + } // end of property Expr::Item + } // end of class Expr + + .class auto ansi serializable nested public beforefieldinit MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 ABC/MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname + instance int32 get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ABC/MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass ABC/MyExn + IL_0012: call instance int32 ABC/MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 ABC/MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst ABC/MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass ABC/MyExn + IL_0024: call instance int32 ABC/MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass ABC/MyExn + IL_0031: call instance int32 ABC/MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst ABC/MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass ABC/MyExn + IL_0019: call instance int32 ABC/MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass ABC/MyExn + IL_0024: call instance int32 ABC/MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool ABC/MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 ABC/MyExn::get_Data0() + } // end of property MyExn::Data0 + } // end of class MyExn + + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string ABC/A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname + instance string get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ABC/A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string ABC/A::get_X() + } // end of property A::X + } // end of class A + + .class abstract auto ansi sealed nested public ABC + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class ABC/ABC/Expr + NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void ABC/ABC/Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 ABC/ABC/Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ABC/ABC/Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class ABC/ABC/Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class ABC/ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 ABC/ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 ABC/ABC/Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any ABC/ABC/Expr + IL_0007: callvirt instance int32 ABC/ABC/Expr::CompareTo(class ABC/ABC/Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class ABC/ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any ABC/ABC/Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any ABC/ABC/Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 ABC/ABC/Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 ABC/ABC/Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any ABC/ABC/Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 ABC/ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 ABC/ABC/Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class ABC/ABC/Expr V_2, + class ABC/ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst ABC/ABC/Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 ABC/ABC/Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 ABC/ABC/Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class ABC/ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 ABC/ABC/Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 ABC/ABC/Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst ABC/ABC/Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool ABC/ABC/Expr::Equals(class ABC/ABC/Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 ABC/ABC/Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 ABC/ABC/Expr::get_Item() + } // end of property Expr::Item + } // end of class Expr + + .class auto ansi serializable nested public beforefieldinit MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 ABC/ABC/MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname + instance int32 get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ABC/ABC/MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass ABC/ABC/MyExn + IL_0012: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 ABC/ABC/MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst ABC/ABC/MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass ABC/ABC/MyExn + IL_0024: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass ABC/ABC/MyExn + IL_0031: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst ABC/ABC/MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass ABC/ABC/MyExn + IL_0019: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass ABC/ABC/MyExn + IL_0024: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool ABC/ABC/MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 ABC/ABC/MyExn::get_Data0() + } // end of property MyExn::Data0 + } // end of class MyExn + + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string ABC/ABC/A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname + instance string get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ABC/ABC/A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string ABC/ABC/A::get_X() + } // end of property A::X + } // end of class A + + .method public static int32 'add'(int32 x, + int32 y) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: add + IL_0003: ret + } // end of method ABC::'add' + + .method public specialname static string + get_greeting() 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 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ret + } // end of method ABC::get_greeting + + .property string greeting() + { + .get string ABC/ABC::get_greeting() + } // end of property ABC::greeting + } // end of class ABC + + .method public static int32 'add'(int32 x, + int32 y) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: add + IL_0003: ret + } // end of method ABC::'add' + + .method public specialname static string + get_greeting() 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 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ret + } // end of method ABC::get_greeting + + .property string greeting() + { + .get string ABC::get_greeting() + } // end of property ABC::greeting +} // end of class ABC + +.class private abstract auto ansi sealed ''.$ABC + extends [mscorlib]System.Object +{ + .field static assembly int32 init@ + .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 ) + .method public static void main@() cil managed + { + .entrypoint + // Code size 13 (0xd) + .maxstack 3 + .locals init (string V_0, + string V_1) + IL_0000: call string ABC::get_greeting() + IL_0005: stloc.0 + IL_0006: call string ABC/ABC::get_greeting() + IL_000b: stloc.1 + IL_000c: ret + } // end of method $ABC::main@ + +} // end of class ''.$ABC + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SerializableAttribute\ToplevelModule_fs\ToplevelModule.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelModule.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.il.release.bsl similarity index 85% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelModule.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.il.release.bsl index 62506a71d24446975aa7f7646c2f28ddb98bca09..44c983ee14c0c9f72d76a09281e5373db5e4f2bf 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelModule.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.il.release.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -15,34 +14,36 @@ .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 6:0:0:0 } -.assembly TopLevelModule +.assembly ToplevelModule { .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 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } -.mresource public FSharpSignatureData.TopLevelModule +.mresource public FSharpSignatureData.ToplevelModule { - // Offset: 0x00000000 Length: 0x0000113D + // Offset: 0x00000000 Length: 0x00001170 + // WARNING: managed resource file FSharpSignatureData.ToplevelModule created } -.mresource public FSharpOptimizationData.TopLevelModule +.mresource public FSharpOptimizationData.ToplevelModule { - // Offset: 0x00001148 Length: 0x000003FD + // Offset: 0x00001178 Length: 0x000003FD + // WARNING: managed resource file FSharpOptimizationData.ToplevelModule created } -.module TopLevelModule.dll -// MVID: {6220E46D-37F5-C118-A745-03836DE42062} +.module ToplevelModule.exe +// MVID: {624CBC42-FD28-3DB9-A745-038342BC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06C10000 +// Image base: 0x03770000 // =============== CLASS MEMBERS DECLARATION =================== @@ -153,24 +154,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class ABC/Expr V_0, - [1] class ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SerializableAttribute\\ToplevelModule.fs' + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -183,34 +179,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 ABC/Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -235,29 +224,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class ABC/Expr V_0, - [1] class ABC/Expr V_1, - [2] class ABC/Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any ABC/Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -270,35 +254,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 ABC/Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any ABC/Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -309,20 +286,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -345,7 +318,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -369,30 +341,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class ABC/Expr V_0, - [1] class ABC/Expr V_1, - [2] class ABC/Expr V_2, - [3] class ABC/Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class ABC/Expr V_2, + class ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst ABC/Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -406,11 +372,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -425,20 +389,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class ABC/Expr V_0, - [1] class ABC/Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -450,11 +410,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -469,22 +427,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class ABC/Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/Expr V_0) IL_0000: ldarg.1 IL_0001: isinst ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool ABC/Expr::Equals(class ABC/Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -566,13 +520,11 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -594,7 +546,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -618,26 +569,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -646,7 +592,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -658,15 +603,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -681,16 +623,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -699,7 +638,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass ABC/MyExn IL_0019: call instance int32 ABC/MyExn::get_Data0() @@ -709,15 +647,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -732,22 +667,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool ABC/MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -770,7 +701,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 8,8 : 14,15 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -786,7 +716,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 8,8 : 42,43 '' IL_0000: ldarg.0 IL_0001: ldfld string ABC/A::x IL_0006: ret @@ -904,23 +833,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0, - [1] class ABC/ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -933,34 +858,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 ABC/ABC/Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -985,29 +903,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0, - [1] class ABC/ABC/Expr V_1, - [2] class ABC/ABC/Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class ABC/ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any ABC/ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any ABC/ABC/Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -1020,35 +933,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 ABC/ABC/Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any ABC/ABC/Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -1059,20 +965,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class ABC/ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -1095,7 +997,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -1119,30 +1020,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0, - [1] class ABC/ABC/Expr V_1, - [2] class ABC/ABC/Expr V_2, - [3] class ABC/ABC/Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class ABC/ABC/Expr V_2, + class ABC/ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst ABC/ABC/Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -1156,11 +1051,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -1175,20 +1068,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0, - [1] class ABC/ABC/Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -1200,11 +1089,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -1219,22 +1106,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0) IL_0000: ldarg.1 IL_0001: isinst ABC/ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool ABC/ABC/Expr::Equals(class ABC/ABC/Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -1316,13 +1199,11 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -1344,7 +1225,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -1368,26 +1248,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -1396,7 +1271,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -1408,15 +1282,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -1431,16 +1302,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -1449,7 +1317,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass ABC/ABC/MyExn IL_0019: call instance int32 ABC/ABC/MyExn::get_Data0() @@ -1459,15 +1326,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -1482,22 +1346,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool ABC/ABC/MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -1520,7 +1380,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 18,18 : 18,19 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -1536,7 +1395,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 18,18 : 46,47 '' IL_0000: ldarg.0 IL_0001: ldfld string ABC/ABC/A::x IL_0006: ret @@ -1554,7 +1412,6 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) // Code size 4 (0x4) .maxstack 8 - .line 21,21 : 27,32 '' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: add @@ -1584,7 +1441,6 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) // Code size 4 (0x4) .maxstack 8 - .line 11,11 : 23,28 '' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: add @@ -1608,32 +1464,31 @@ } // end of property ABC::greeting } // end of class ABC -.class private abstract auto ansi sealed ''.$ABC +.class private abstract auto ansi sealed ''.$ABC extends [mscorlib]System.Object { .field static assembly int32 init@ .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 ) - .method private specialname rtspecialname static - void .cctor() cil managed + .method public static void main@() cil managed { + .entrypoint // Code size 13 (0xd) .maxstack 3 - .locals init ([0] string greeting, - [1] string V_1) - .line 12,12 : 9,31 '' + .locals init (string V_0, + string V_1) IL_0000: call string ABC::get_greeting() IL_0005: stloc.0 - .line 22,22 : 13,35 '' IL_0006: call string ABC/ABC::get_greeting() IL_000b: stloc.1 IL_000c: ret - } // end of method $ABC::.cctor + } // end of method $ABC::main@ -} // end of class ''.$ABC +} // end of class ''.$ABC // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SerializableAttribute\ToplevelModule_fs\ToplevelModule.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule60.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule60.fs new file mode 100644 index 0000000000000000000000000000000000000000..2be0deda8eae3650d42207bd6be329a92d9408ce --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule60.fs @@ -0,0 +1,22 @@ +// Regression test for DevDiv:327356 +// top-level module + +module ABC + (* type *) + type Expr = Num of int + exception MyExn of int + type A(x:string) = member __.X = x + + (* value *) + let add x y = x + y + let greeting = "hello" + + module ABC = + (* type *) + type Expr = Num of int + exception MyExn of int + type A(x:string) = member __.X = x + + (* value *) + let add x y = x + y + let greeting = "hello" diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule60.fs.il.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule60.fs.il.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..f16ff4f981478804acc00d7d70320a7eb54e31a5 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule60.fs.il.debug.bsl @@ -0,0 +1,1590 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly ToplevelModule60 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.ToplevelModule60 +{ + // Offset: 0x00000000 Length: 0x00001180 + // WARNING: managed resource file FSharpSignatureData.ToplevelModule60 created +} +.mresource public FSharpOptimizationData.ToplevelModule60 +{ + // Offset: 0x00001188 Length: 0x000003FF + // WARNING: managed resource file FSharpOptimizationData.ToplevelModule60 created +} +.module ToplevelModule60.exe +// MVID: {624CBE98-053E-0189-A745-038398BE4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x036C0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed ABC + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class ABC/Expr + NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void ABC/Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 ABC/Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ABC/Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class ABC/Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 ABC/Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any ABC/Expr + IL_0007: callvirt instance int32 ABC/Expr::CompareTo(class ABC/Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any ABC/Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any ABC/Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 ABC/Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 ABC/Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any ABC/Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 ABC/Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class ABC/Expr V_2, + class ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst ABC/Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 ABC/Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 ABC/Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 ABC/Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 ABC/Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class ABC/Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst ABC/Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool ABC/Expr::Equals(class ABC/Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 ABC/Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 ABC/Expr::get_Item() + } // end of property Expr::Item + } // end of class Expr + + .class auto ansi serializable nested public beforefieldinit MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 ABC/MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname + instance int32 get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ABC/MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass ABC/MyExn + IL_0012: call instance int32 ABC/MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 ABC/MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst ABC/MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass ABC/MyExn + IL_0024: call instance int32 ABC/MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass ABC/MyExn + IL_0031: call instance int32 ABC/MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst ABC/MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass ABC/MyExn + IL_0019: call instance int32 ABC/MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass ABC/MyExn + IL_0024: call instance int32 ABC/MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool ABC/MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 ABC/MyExn::get_Data0() + } // end of property MyExn::Data0 + } // end of class MyExn + + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string ABC/A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname + instance string get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ABC/A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string ABC/A::get_X() + } // end of property A::X + } // end of class A + + .class abstract auto ansi sealed nested public ABC + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class ABC/ABC/Expr + NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void ABC/ABC/Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 ABC/ABC/Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ABC/ABC/Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class ABC/ABC/Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class ABC/ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 ABC/ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 ABC/ABC/Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any ABC/ABC/Expr + IL_0007: callvirt instance int32 ABC/ABC/Expr::CompareTo(class ABC/ABC/Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class ABC/ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any ABC/ABC/Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any ABC/ABC/Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 ABC/ABC/Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 ABC/ABC/Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any ABC/ABC/Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 ABC/ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 ABC/ABC/Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class ABC/ABC/Expr V_2, + class ABC/ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst ABC/ABC/Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 ABC/ABC/Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 ABC/ABC/Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class ABC/ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 ABC/ABC/Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 ABC/ABC/Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class ABC/ABC/Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst ABC/ABC/Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool ABC/ABC/Expr::Equals(class ABC/ABC/Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 ABC/ABC/Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 ABC/ABC/Expr::get_Item() + } // end of property Expr::Item + } // end of class Expr + + .class auto ansi serializable nested public beforefieldinit MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 ABC/ABC/MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname + instance int32 get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ABC/ABC/MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass ABC/ABC/MyExn + IL_0012: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 ABC/ABC/MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst ABC/ABC/MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass ABC/ABC/MyExn + IL_0024: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass ABC/ABC/MyExn + IL_0031: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst ABC/ABC/MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass ABC/ABC/MyExn + IL_0019: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass ABC/ABC/MyExn + IL_0024: call instance int32 ABC/ABC/MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool ABC/ABC/MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 ABC/ABC/MyExn::get_Data0() + } // end of property MyExn::Data0 + } // end of class MyExn + + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string ABC/ABC/A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname + instance string get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ABC/ABC/A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string ABC/ABC/A::get_X() + } // end of property A::X + } // end of class A + + .method public static int32 'add'(int32 x, + int32 y) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: add + IL_0003: ret + } // end of method ABC::'add' + + .method public specialname static string + get_greeting() 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 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ret + } // end of method ABC::get_greeting + + .property string greeting() + { + .get string ABC/ABC::get_greeting() + } // end of property ABC::greeting + } // end of class ABC + + .method public static int32 'add'(int32 x, + int32 y) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: add + IL_0003: ret + } // end of method ABC::'add' + + .method public specialname static string + get_greeting() 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 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ret + } // end of method ABC::get_greeting + + .property string greeting() + { + .get string ABC::get_greeting() + } // end of property ABC::greeting +} // end of class ABC + +.class private abstract auto ansi sealed ''.$ABC + extends [mscorlib]System.Object +{ + .field static assembly int32 init@ + .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 ) + .method public static void main@() cil managed + { + .entrypoint + // Code size 13 (0xd) + .maxstack 3 + .locals init (string V_0, + string V_1) + IL_0000: call string ABC::get_greeting() + IL_0005: stloc.0 + IL_0006: call string ABC/ABC::get_greeting() + IL_000b: stloc.1 + IL_000c: ret + } // end of method $ABC::main@ + +} // end of class ''.$ABC + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SerializableAttribute\ToplevelModule_LangVersion60_fs\ToplevelModule60.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelModule-preview.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule60.fs.il.release.bsl similarity index 82% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelModule-preview.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule60.fs.il.release.bsl index 62d954ac3559231f6d9315e26c249e1c918fccd9..31e20245075fcd5356895a56c755e703e2dd27eb 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelModule-preview.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule60.fs.il.release.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -15,34 +14,36 @@ .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 6:0:0:0 } -.assembly 'TopLevelModule-preview' +.assembly ToplevelModule60 { .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 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } -.mresource public 'FSharpSignatureData.TopLevelModule-preview' +.mresource public FSharpSignatureData.ToplevelModule60 { - // Offset: 0x00000000 Length: 0x0000114D + // Offset: 0x00000000 Length: 0x00001184 + // WARNING: managed resource file FSharpSignatureData.ToplevelModule60 created } -.mresource public 'FSharpOptimizationData.TopLevelModule-preview' +.mresource public FSharpOptimizationData.ToplevelModule60 { - // Offset: 0x00001158 Length: 0x00000405 + // Offset: 0x00001188 Length: 0x000003FF + // WARNING: managed resource file FSharpOptimizationData.ToplevelModule60 created } -.module 'TopLevelModule-preview.dll' -// MVID: {6220E471-A1E9-C7BD-A745-038371E42062} +.module ToplevelModule60.exe +// MVID: {624CBC42-053E-0189-A745-038342BC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06870000 +// Image base: 0x035B0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -153,24 +154,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class ABC/Expr V_0, - [1] class ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SerializableAttribute\\ToplevelModule.fs' + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -183,34 +179,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 ABC/Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -235,29 +224,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class ABC/Expr V_0, - [1] class ABC/Expr V_1, - [2] class ABC/Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any ABC/Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -270,35 +254,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 ABC/Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any ABC/Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -309,20 +286,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -345,7 +318,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -369,30 +341,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class ABC/Expr V_0, - [1] class ABC/Expr V_1, - [2] class ABC/Expr V_2, - [3] class ABC/Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1, + class ABC/Expr V_2, + class ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst ABC/Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -406,11 +372,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -425,20 +389,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class ABC/Expr V_0, - [1] class ABC/Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/Expr V_0, + class ABC/Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -450,11 +410,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -469,22 +427,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class ABC/Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/Expr V_0) IL_0000: ldarg.1 IL_0001: isinst ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool ABC/Expr::Equals(class ABC/Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -560,33 +514,17 @@ IL_0006: ret } // end of method MyExn::get_Data0 - .method public strict virtual instance string - get_Message() cil managed - { - .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 22 (0x16) - .maxstack 8 - IL_0000: ldstr "%+A" - IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class ABC/MyExn>::.ctor(string) - IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_000f: ldarg.0 - IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0015: ret - } // end of method MyExn::get_Message - .method public hidebysig virtual instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -608,7 +546,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -632,26 +569,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -660,7 +592,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -672,15 +603,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -695,16 +623,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -713,7 +638,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass ABC/MyExn IL_0019: call instance int32 ABC/MyExn::get_Data0() @@ -723,15 +647,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -746,22 +667,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool ABC/MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -784,7 +701,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 8,8 : 14,15 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -800,7 +716,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 8,8 : 42,43 '' IL_0000: ldarg.0 IL_0001: ldfld string ABC/A::x IL_0006: ret @@ -918,23 +833,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0, - [1] class ABC/ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -947,34 +858,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 ABC/ABC/Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -999,29 +903,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0, - [1] class ABC/ABC/Expr V_1, - [2] class ABC/ABC/Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class ABC/ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any ABC/ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any ABC/ABC/Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -1034,35 +933,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 ABC/ABC/Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any ABC/ABC/Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -1073,20 +965,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class ABC/ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -1109,7 +997,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -1133,30 +1020,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0, - [1] class ABC/ABC/Expr V_1, - [2] class ABC/ABC/Expr V_2, - [3] class ABC/ABC/Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1, + class ABC/ABC/Expr V_2, + class ABC/ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst ABC/ABC/Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -1170,11 +1051,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -1189,20 +1068,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0, - [1] class ABC/ABC/Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0, + class ABC/ABC/Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -1214,11 +1089,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -1233,22 +1106,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class ABC/ABC/Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class ABC/ABC/Expr V_0) IL_0000: ldarg.1 IL_0001: isinst ABC/ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool ABC/ABC/Expr::Equals(class ABC/ABC/Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -1324,33 +1193,17 @@ IL_0006: ret } // end of method MyExn::get_Data0 - .method public strict virtual instance string - get_Message() cil managed - { - .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 22 (0x16) - .maxstack 8 - IL_0000: ldstr "%+A" - IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class ABC/ABC/MyExn>::.ctor(string) - IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_000f: ldarg.0 - IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0015: ret - } // end of method MyExn::get_Message - .method public hidebysig virtual instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -1372,7 +1225,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -1396,26 +1248,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -1424,7 +1271,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -1436,15 +1282,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -1459,16 +1302,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -1477,7 +1317,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass ABC/ABC/MyExn IL_0019: call instance int32 ABC/ABC/MyExn::get_Data0() @@ -1487,15 +1326,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -1510,22 +1346,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool ABC/ABC/MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -1548,7 +1380,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 18,18 : 18,19 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -1564,7 +1395,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 18,18 : 46,47 '' IL_0000: ldarg.0 IL_0001: ldfld string ABC/ABC/A::x IL_0006: ret @@ -1582,7 +1412,6 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) // Code size 4 (0x4) .maxstack 8 - .line 21,21 : 27,32 '' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: add @@ -1612,7 +1441,6 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) // Code size 4 (0x4) .maxstack 8 - .line 11,11 : 23,28 '' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: add @@ -1636,32 +1464,31 @@ } // end of property ABC::greeting } // end of class ABC -.class private abstract auto ansi sealed ''.$ABC +.class private abstract auto ansi sealed ''.$ABC extends [mscorlib]System.Object { .field static assembly int32 init@ .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 ) - .method private specialname rtspecialname static - void .cctor() cil managed + .method public static void main@() cil managed { + .entrypoint // Code size 13 (0xd) .maxstack 3 - .locals init ([0] string greeting, - [1] string V_1) - .line 12,12 : 9,31 '' + .locals init (string V_0, + string V_1) IL_0000: call string ABC::get_greeting() IL_0005: stloc.0 - .line 22,22 : 13,35 '' IL_0006: call string ABC/ABC::get_greeting() IL_000b: stloc.1 IL_000c: ret - } // end of method $ABC::.cctor + } // end of method $ABC::main@ -} // end of class ''.$ABC +} // end of class ''.$ABC // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SerializableAttribute\ToplevelModule_LangVersion60_fs\ToplevelModule60.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelNamespace.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelNamespace.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.il.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.il.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..662171e228e3a67f1b8ac4f596926d1ccf9740d2 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.il.debug.bsl @@ -0,0 +1,2312 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly ToplevelNamespace +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.ToplevelNamespace +{ + // Offset: 0x00000000 Length: 0x0000187A + // WARNING: managed resource file FSharpSignatureData.ToplevelNamespace created +} +.mresource public FSharpOptimizationData.ToplevelNamespace +{ + // Offset: 0x00001880 Length: 0x0000055C + // WARNING: managed resource file FSharpOptimizationData.ToplevelNamespace created +} +.module ToplevelNamespace.exe +// MVID: {624CBE98-962F-9DFD-A745-038398BE4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x03330000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public auto autochar serializable sealed beforefieldinit XYZ.Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable +{ + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class XYZ.Expr NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void XYZ.Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class XYZ.Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class XYZ.Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 XYZ.Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 XYZ.Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any XYZ.Expr + IL_0007: callvirt instance int32 XYZ.Expr::CompareTo(class XYZ.Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class XYZ.Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any XYZ.Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any XYZ.Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 XYZ.Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 XYZ.Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any XYZ.Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class XYZ.Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class XYZ.Expr V_2, + class XYZ.Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst XYZ.Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 XYZ.Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 XYZ.Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class XYZ.Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 XYZ.Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class XYZ.Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst XYZ.Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.Expr::Equals(class XYZ.Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 XYZ.Expr::get_Item() + } // end of property Expr::Item +} // end of class XYZ.Expr + +.class public auto ansi serializable beforefieldinit XYZ.MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable +{ + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname instance int32 + get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass XYZ.MyExn + IL_0012: call instance int32 XYZ.MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst XYZ.MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass XYZ.MyExn + IL_0024: call instance int32 XYZ.MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass XYZ.MyExn + IL_0031: call instance int32 XYZ.MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst XYZ.MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass XYZ.MyExn + IL_0019: call instance int32 XYZ.MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass XYZ.MyExn + IL_0024: call instance int32 XYZ.MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.MyExn::get_Data0() + } // end of property MyExn::Data0 +} // end of class XYZ.MyExn + +.class public auto ansi serializable XYZ.A + extends [mscorlib]System.Object +{ + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string XYZ.A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname instance string + get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string XYZ.A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string XYZ.A::get_X() + } // end of property A::X +} // end of class XYZ.A + +.class public abstract auto ansi sealed XYZ.ABC + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class XYZ.ABC/Expr + NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void XYZ.ABC/Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.ABC/Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.ABC/Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class XYZ.ABC/Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class XYZ.ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 XYZ.ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 XYZ.ABC/Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any XYZ.ABC/Expr + IL_0007: callvirt instance int32 XYZ.ABC/Expr::CompareTo(class XYZ.ABC/Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class XYZ.ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any XYZ.ABC/Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any XYZ.ABC/Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 XYZ.ABC/Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 XYZ.ABC/Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any XYZ.ABC/Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class XYZ.ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.ABC/Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class XYZ.ABC/Expr V_2, + class XYZ.ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst XYZ.ABC/Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 XYZ.ABC/Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 XYZ.ABC/Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class XYZ.ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 XYZ.ABC/Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.ABC/Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst XYZ.ABC/Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.ABC/Expr::Equals(class XYZ.ABC/Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.ABC/Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 XYZ.ABC/Expr::get_Item() + } // end of property Expr::Item + } // end of class Expr + + .class auto ansi serializable nested public beforefieldinit MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.ABC/MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname + instance int32 get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.ABC/MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass XYZ.ABC/MyExn + IL_0012: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.ABC/MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst XYZ.ABC/MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass XYZ.ABC/MyExn + IL_0024: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass XYZ.ABC/MyExn + IL_0031: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst XYZ.ABC/MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass XYZ.ABC/MyExn + IL_0019: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass XYZ.ABC/MyExn + IL_0024: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.ABC/MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.ABC/MyExn::get_Data0() + } // end of property MyExn::Data0 + } // end of class MyExn + + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string XYZ.ABC/A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname + instance string get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string XYZ.ABC/A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string XYZ.ABC/A::get_X() + } // end of property A::X + } // end of class A + + .class abstract auto ansi sealed nested public ABC + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class XYZ.ABC/ABC/Expr + NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void XYZ.ABC/ABC/Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.ABC/ABC/Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class XYZ.ABC/ABC/Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class XYZ.ABC/ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any XYZ.ABC/ABC/Expr + IL_0007: callvirt instance int32 XYZ.ABC/ABC/Expr::CompareTo(class XYZ.ABC/ABC/Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class XYZ.ABC/ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any XYZ.ABC/ABC/Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any XYZ.ABC/ABC/Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any XYZ.ABC/ABC/Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class XYZ.ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.ABC/ABC/Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class XYZ.ABC/ABC/Expr V_2, + class XYZ.ABC/ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst XYZ.ABC/ABC/Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class XYZ.ABC/ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst XYZ.ABC/ABC/Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.ABC/ABC/Expr::Equals(class XYZ.ABC/ABC/Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.ABC/ABC/Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 XYZ.ABC/ABC/Expr::get_Item() + } // end of property Expr::Item + } // end of class Expr + + .class auto ansi serializable nested public beforefieldinit MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.ABC/ABC/MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname + instance int32 get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.ABC/ABC/MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass XYZ.ABC/ABC/MyExn + IL_0012: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.ABC/ABC/MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst XYZ.ABC/ABC/MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass XYZ.ABC/ABC/MyExn + IL_0024: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass XYZ.ABC/ABC/MyExn + IL_0031: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst XYZ.ABC/ABC/MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass XYZ.ABC/ABC/MyExn + IL_0019: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass XYZ.ABC/ABC/MyExn + IL_0024: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.ABC/ABC/MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + } // end of property MyExn::Data0 + } // end of class MyExn + + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string XYZ.ABC/ABC/A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname + instance string get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string XYZ.ABC/ABC/A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string XYZ.ABC/ABC/A::get_X() + } // end of property A::X + } // end of class A + + .method public static int32 'add'(int32 x, + int32 y) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: add + IL_0003: ret + } // end of method ABC::'add' + + .method public specialname static string + get_greeting() 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 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ret + } // end of method ABC::get_greeting + + .property string greeting() + { + .get string XYZ.ABC/ABC::get_greeting() + } // end of property ABC::greeting + } // end of class ABC + + .method public static int32 'add'(int32 x, + int32 y) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: add + IL_0003: ret + } // end of method ABC::'add' + + .method public specialname static string + get_greeting() 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 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ret + } // end of method ABC::get_greeting + + .property string greeting() + { + .get string XYZ.ABC::get_greeting() + } // end of property ABC::greeting +} // end of class XYZ.ABC + +.class private abstract auto ansi sealed ''.$ToplevelNamespace + extends [mscorlib]System.Object +{ + .field static assembly int32 init@ + .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 ) + .method public static void main@() cil managed + { + .entrypoint + // Code size 13 (0xd) + .maxstack 3 + .locals init (string V_0, + string V_1) + IL_0000: call string XYZ.ABC::get_greeting() + IL_0005: stloc.0 + IL_0006: call string XYZ.ABC/ABC::get_greeting() + IL_000b: stloc.1 + IL_000c: ret + } // end of method $ToplevelNamespace::main@ + +} // end of class ''.$ToplevelNamespace + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SerializableAttribute\ToplevelNamespace_fs\ToplevelNamespace.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelNamespace.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.il.release.bsl similarity index 86% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelNamespace.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.il.release.bsl index 25ca46187413da1b1861fb9286e205b565772c37..d4746e376d829a33079e7e8ba9b82f9655bb1e12 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelNamespace.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.il.release.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.ToplevelNamespace { - // Offset: 0x00000000 Length: 0x00001848 + // Offset: 0x00000000 Length: 0x0000187E + // WARNING: managed resource file FSharpSignatureData.ToplevelNamespace created } .mresource public FSharpOptimizationData.ToplevelNamespace { - // Offset: 0x00001850 Length: 0x0000055C + // Offset: 0x00001888 Length: 0x0000055C + // WARNING: managed resource file FSharpOptimizationData.ToplevelNamespace created } -.module ToplevelNamespace.dll -// MVID: {6220E46F-218B-729A-A745-03836FE42062} +.module ToplevelNamespace.exe +// MVID: {624CBC42-962F-9DFD-A745-038342BC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05570000 +// Image base: 0x03580000 // =============== CLASS MEMBERS DECLARATION =================== @@ -148,24 +149,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0, - [1] class XYZ.Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SerializableAttribute\\ToplevelNamespace.fs' + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -178,34 +174,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 XYZ.Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -230,29 +219,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0, - [1] class XYZ.Expr V_1, - [2] class XYZ.Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class XYZ.Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any XYZ.Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any XYZ.Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -265,35 +249,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 XYZ.Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any XYZ.Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -304,20 +281,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class XYZ.Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class XYZ.Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -340,7 +313,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -364,30 +336,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0, - [1] class XYZ.Expr V_1, - [2] class XYZ.Expr V_2, - [3] class XYZ.Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class XYZ.Expr V_2, + class XYZ.Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst XYZ.Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -401,11 +367,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -420,20 +384,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0, - [1] class XYZ.Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -445,11 +405,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -464,22 +422,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.Expr V_0) IL_0000: ldarg.1 IL_0001: isinst XYZ.Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.Expr::Equals(class XYZ.Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -561,13 +515,11 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -589,7 +541,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -613,26 +564,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -641,7 +587,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -653,15 +598,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -676,16 +618,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -694,7 +633,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass XYZ.MyExn IL_0019: call instance int32 XYZ.MyExn::get_Data0() @@ -704,15 +642,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -727,22 +662,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -765,7 +696,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 9,9 : 10,11 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -781,7 +711,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 9,9 : 38,39 '' IL_0000: ldarg.0 IL_0001: ldfld string XYZ.A::x IL_0006: ret @@ -899,23 +828,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0, - [1] class XYZ.ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -928,34 +853,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 XYZ.ABC/Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -980,29 +898,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0, - [1] class XYZ.ABC/Expr V_1, - [2] class XYZ.ABC/Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class XYZ.ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any XYZ.ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any XYZ.ABC/Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -1015,35 +928,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 XYZ.ABC/Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any XYZ.ABC/Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -1054,20 +960,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class XYZ.ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class XYZ.ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -1090,7 +992,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -1114,30 +1015,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0, - [1] class XYZ.ABC/Expr V_1, - [2] class XYZ.ABC/Expr V_2, - [3] class XYZ.ABC/Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class XYZ.ABC/Expr V_2, + class XYZ.ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst XYZ.ABC/Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -1151,11 +1046,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -1170,20 +1063,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0, - [1] class XYZ.ABC/Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -1195,11 +1084,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -1214,22 +1101,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0) IL_0000: ldarg.1 IL_0001: isinst XYZ.ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.ABC/Expr::Equals(class XYZ.ABC/Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -1311,13 +1194,11 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -1339,7 +1220,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -1363,26 +1243,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -1391,7 +1266,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -1403,15 +1277,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -1426,16 +1297,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -1444,7 +1312,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass XYZ.ABC/MyExn IL_0019: call instance int32 XYZ.ABC/MyExn::get_Data0() @@ -1454,15 +1321,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -1477,22 +1341,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.ABC/MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -1515,7 +1375,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 15,15 : 14,15 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -1531,7 +1390,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 15,15 : 42,43 '' IL_0000: ldarg.0 IL_0001: ldfld string XYZ.ABC/A::x IL_0006: ret @@ -1649,23 +1507,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0, - [1] class XYZ.ABC/ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -1678,34 +1532,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 XYZ.ABC/ABC/Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -1730,29 +1577,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0, - [1] class XYZ.ABC/ABC/Expr V_1, - [2] class XYZ.ABC/ABC/Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class XYZ.ABC/ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any XYZ.ABC/ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any XYZ.ABC/ABC/Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -1765,35 +1607,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 XYZ.ABC/ABC/Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any XYZ.ABC/ABC/Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -1804,20 +1639,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class XYZ.ABC/ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class XYZ.ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -1840,7 +1671,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -1864,30 +1694,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0, - [1] class XYZ.ABC/ABC/Expr V_1, - [2] class XYZ.ABC/ABC/Expr V_2, - [3] class XYZ.ABC/ABC/Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class XYZ.ABC/ABC/Expr V_2, + class XYZ.ABC/ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst XYZ.ABC/ABC/Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -1901,11 +1725,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -1920,20 +1742,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0, - [1] class XYZ.ABC/ABC/Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -1945,11 +1763,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -1964,22 +1780,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0) IL_0000: ldarg.1 IL_0001: isinst XYZ.ABC/ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.ABC/ABC/Expr::Equals(class XYZ.ABC/ABC/Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -2061,13 +1873,11 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -2089,7 +1899,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -2113,26 +1922,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -2141,7 +1945,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -2153,15 +1956,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -2176,16 +1976,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -2194,7 +1991,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass XYZ.ABC/ABC/MyExn IL_0019: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() @@ -2204,15 +2000,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -2227,22 +2020,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.ABC/ABC/MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -2265,7 +2054,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 25,25 : 18,19 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -2281,7 +2069,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 25,25 : 46,47 '' IL_0000: ldarg.0 IL_0001: ldfld string XYZ.ABC/ABC/A::x IL_0006: ret @@ -2299,7 +2086,6 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) // Code size 4 (0x4) .maxstack 8 - .line 28,28 : 27,32 '' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: add @@ -2329,7 +2115,6 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) // Code size 4 (0x4) .maxstack 8 - .line 18,18 : 23,28 '' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: add @@ -2360,21 +2145,19 @@ .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 ) - .method private specialname rtspecialname static - void .cctor() cil managed + .method public static void main@() cil managed { + .entrypoint // Code size 13 (0xd) .maxstack 3 - .locals init ([0] string greeting, - [1] string V_1) - .line 19,19 : 9,31 '' + .locals init (string V_0, + string V_1) IL_0000: call string XYZ.ABC::get_greeting() IL_0005: stloc.0 - .line 29,29 : 13,35 '' IL_0006: call string XYZ.ABC/ABC::get_greeting() IL_000b: stloc.1 IL_000c: ret - } // end of method $ToplevelNamespace::.cctor + } // end of method $ToplevelNamespace::main@ } // end of class ''.$ToplevelNamespace @@ -2382,3 +2165,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SerializableAttribute\ToplevelNamespace_fs\ToplevelNamespace.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace60.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace60.fs new file mode 100644 index 0000000000000000000000000000000000000000..17c641d2dbd5b87a9eb0609da20c3d13dc3824c0 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace60.fs @@ -0,0 +1,29 @@ +// Regression test for DevDiv:327356 +// top-level namespace + +namespace XYZ + + (* type *) + type Expr = Num of int + exception MyExn of int + type A(x:string) = member __.X = x + + module ABC = + (* type *) + type Expr = Num of int + exception MyExn of int + type A(x:string) = member __.X = x + + (* value *) + let add x y = x + y + let greeting = "hello" + + module ABC = + (* type *) + type Expr = Num of int + exception MyExn of int + type A(x:string) = member __.X = x + + (* value *) + let add x y = x + y + let greeting = "hello" diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace60.fs.il.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace60.fs.il.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..2fa267da654aa60b6582a1ed4f0cec2f35372ea6 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace60.fs.il.debug.bsl @@ -0,0 +1,2312 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly ToplevelNamespace60 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.ToplevelNamespace60 +{ + // Offset: 0x00000000 Length: 0x0000188E + // WARNING: managed resource file FSharpSignatureData.ToplevelNamespace60 created +} +.mresource public FSharpOptimizationData.ToplevelNamespace60 +{ + // Offset: 0x00001898 Length: 0x0000055E + // WARNING: managed resource file FSharpOptimizationData.ToplevelNamespace60 created +} +.module ToplevelNamespace60.exe +// MVID: {624CBE98-3418-1DAD-A745-038398BE4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x03B40000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public auto autochar serializable sealed beforefieldinit XYZ.Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable +{ + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class XYZ.Expr NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void XYZ.Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class XYZ.Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class XYZ.Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 XYZ.Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 XYZ.Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any XYZ.Expr + IL_0007: callvirt instance int32 XYZ.Expr::CompareTo(class XYZ.Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class XYZ.Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any XYZ.Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any XYZ.Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 XYZ.Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 XYZ.Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any XYZ.Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class XYZ.Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class XYZ.Expr V_2, + class XYZ.Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst XYZ.Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 XYZ.Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 XYZ.Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class XYZ.Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 XYZ.Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class XYZ.Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst XYZ.Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.Expr::Equals(class XYZ.Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 XYZ.Expr::get_Item() + } // end of property Expr::Item +} // end of class XYZ.Expr + +.class public auto ansi serializable beforefieldinit XYZ.MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable +{ + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname instance int32 + get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass XYZ.MyExn + IL_0012: call instance int32 XYZ.MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst XYZ.MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass XYZ.MyExn + IL_0024: call instance int32 XYZ.MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass XYZ.MyExn + IL_0031: call instance int32 XYZ.MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst XYZ.MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass XYZ.MyExn + IL_0019: call instance int32 XYZ.MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass XYZ.MyExn + IL_0024: call instance int32 XYZ.MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.MyExn::get_Data0() + } // end of property MyExn::Data0 +} // end of class XYZ.MyExn + +.class public auto ansi serializable XYZ.A + extends [mscorlib]System.Object +{ + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string XYZ.A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname instance string + get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string XYZ.A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string XYZ.A::get_X() + } // end of property A::X +} // end of class XYZ.A + +.class public abstract auto ansi sealed XYZ.ABC + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class XYZ.ABC/Expr + NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void XYZ.ABC/Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.ABC/Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.ABC/Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class XYZ.ABC/Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class XYZ.ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 XYZ.ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 XYZ.ABC/Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any XYZ.ABC/Expr + IL_0007: callvirt instance int32 XYZ.ABC/Expr::CompareTo(class XYZ.ABC/Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class XYZ.ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any XYZ.ABC/Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any XYZ.ABC/Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 XYZ.ABC/Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 XYZ.ABC/Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any XYZ.ABC/Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class XYZ.ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.ABC/Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class XYZ.ABC/Expr V_2, + class XYZ.ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst XYZ.ABC/Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 XYZ.ABC/Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 XYZ.ABC/Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class XYZ.ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 XYZ.ABC/Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.ABC/Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class XYZ.ABC/Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst XYZ.ABC/Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.ABC/Expr::Equals(class XYZ.ABC/Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.ABC/Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 XYZ.ABC/Expr::get_Item() + } // end of property Expr::Item + } // end of class Expr + + .class auto ansi serializable nested public beforefieldinit MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.ABC/MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname + instance int32 get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.ABC/MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass XYZ.ABC/MyExn + IL_0012: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.ABC/MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst XYZ.ABC/MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass XYZ.ABC/MyExn + IL_0024: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass XYZ.ABC/MyExn + IL_0031: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst XYZ.ABC/MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass XYZ.ABC/MyExn + IL_0019: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass XYZ.ABC/MyExn + IL_0024: call instance int32 XYZ.ABC/MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.ABC/MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.ABC/MyExn::get_Data0() + } // end of property MyExn::Data0 + } // end of class MyExn + + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string XYZ.ABC/A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname + instance string get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string XYZ.ABC/A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string XYZ.ABC/A::get_X() + } // end of property A::X + } // end of class A + + .class abstract auto ansi sealed nested public ABC + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Expr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .field assembly initonly int32 item + .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 ) + .method public static class XYZ.ABC/ABC/Expr + NewNum(int32 item) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void XYZ.ABC/ABC/Expr::.ctor(int32) + IL_0006: ret + } // end of method Expr::NewNum + + .method assembly specialname rtspecialname + instance void .ctor(int32 item) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.ABC/ABC/Expr::item + IL_000d: ret + } // end of method Expr::.ctor + + .method public hidebysig instance int32 + get_Item() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0006: ret + } // end of method Expr::get_Item + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: pop + IL_0002: ldc.i4.0 + IL_0003: ret + } // end of method Expr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class XYZ.ABC/ABC/Expr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Expr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class XYZ.ABC/ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4, + class [mscorlib]System.Collections.IComparer V_5, + int32 V_6, + int32 V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_003c + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_003a + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.2 + IL_0012: ldloc.0 + IL_0013: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.1 + IL_001a: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: stloc.s V_5 + IL_0024: ldloc.3 + IL_0025: stloc.s V_6 + IL_0027: ldloc.s V_4 + IL_0029: stloc.s V_7 + IL_002b: ldloc.s V_6 + IL_002d: ldloc.s V_7 + IL_002f: bge.s IL_0033 + + IL_0031: ldc.i4.m1 + IL_0032: ret + + IL_0033: ldloc.s V_6 + IL_0035: ldloc.s V_7 + IL_0037: cgt + IL_0039: ret + + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.1 + IL_003d: brfalse.s IL_0041 + + IL_003f: ldc.i4.m1 + IL_0040: ret + + IL_0041: ldc.i4.0 + IL_0042: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any XYZ.ABC/ABC/Expr + IL_0007: callvirt instance int32 XYZ.ABC/ABC/Expr::CompareTo(class XYZ.ABC/ABC/Expr) + IL_000c: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 82 (0x52) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class XYZ.ABC/ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IComparer V_6, + int32 V_7, + int32 V_8) + IL_0000: ldarg.1 + IL_0001: unbox.any XYZ.ABC/ABC/Expr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_0046 + + IL_000a: ldarg.1 + IL_000b: unbox.any XYZ.ABC/ABC/Expr + IL_0010: brfalse.s IL_0044 + + IL_0012: ldarg.0 + IL_0013: pop + IL_0014: ldarg.0 + IL_0015: stloc.1 + IL_0016: ldloc.0 + IL_0017: stloc.2 + IL_0018: ldarg.2 + IL_0019: stloc.3 + IL_001a: ldloc.1 + IL_001b: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0020: stloc.s V_4 + IL_0022: ldloc.2 + IL_0023: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0028: stloc.s V_5 + IL_002a: ldloc.3 + IL_002b: stloc.s V_6 + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_5 + IL_0033: stloc.s V_8 + IL_0035: ldloc.s V_7 + IL_0037: ldloc.s V_8 + IL_0039: bge.s IL_003d + + IL_003b: ldc.i4.m1 + IL_003c: ret + + IL_003d: ldloc.s V_7 + IL_003f: ldloc.s V_8 + IL_0041: cgt + IL_0043: ret + + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: unbox.any XYZ.ABC/ABC/Expr + IL_004c: brfalse.s IL_0050 + + IL_004e: ldc.i4.m1 + IL_004f: ret + + IL_0050: ldc.i4.0 + IL_0051: ret + } // end of method Expr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 43 (0x2b) + .maxstack 7 + .locals init (int32 V_0, + class XYZ.ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2, + int32 V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0029 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: pop + IL_0007: ldarg.0 + IL_0008: stloc.1 + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: ldc.i4 0x9e3779b9 + IL_0010: ldarg.1 + IL_0011: stloc.2 + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0018: stloc.3 + IL_0019: ldloc.2 + IL_001a: stloc.s V_4 + IL_001c: ldloc.3 + IL_001d: ldloc.0 + IL_001e: ldc.i4.6 + IL_001f: shl + IL_0020: ldloc.0 + IL_0021: ldc.i4.2 + IL_0022: shr + IL_0023: add + IL_0024: add + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ret + + IL_0029: ldc.i4.0 + IL_002a: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.ABC/ABC/Expr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Expr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 61 (0x3d) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class XYZ.ABC/ABC/Expr V_2, + class XYZ.ABC/ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4, + int32 V_5, + int32 V_6, + class [mscorlib]System.Collections.IEqualityComparer V_7) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0035 + + IL_0003: ldarg.1 + IL_0004: isinst XYZ.ABC/ABC/Expr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0033 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: pop + IL_0011: ldarg.0 + IL_0012: stloc.2 + IL_0013: ldloc.1 + IL_0014: stloc.3 + IL_0015: ldarg.2 + IL_0016: stloc.s V_4 + IL_0018: ldloc.2 + IL_0019: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_001e: stloc.s V_5 + IL_0020: ldloc.3 + IL_0021: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0026: stloc.s V_6 + IL_0028: ldloc.s V_4 + IL_002a: stloc.s V_7 + IL_002c: ldloc.s V_5 + IL_002e: ldloc.s V_6 + IL_0030: ceq + IL_0032: ret + + IL_0033: ldc.i4.0 + IL_0034: ret + + IL_0035: ldarg.1 + IL_0036: ldnull + IL_0037: cgt.un + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(class XYZ.ABC/ABC/Expr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 37 (0x25) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001d + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001b + + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: stloc.0 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldloc.0 + IL_000d: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0012: ldloc.1 + IL_0013: ldfld int32 XYZ.ABC/ABC/Expr::item + IL_0018: ceq + IL_001a: ret + + IL_001b: ldc.i4.0 + IL_001c: ret + + IL_001d: ldarg.1 + IL_001e: ldnull + IL_001f: cgt.un + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ret + } // end of method Expr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class XYZ.ABC/ABC/Expr V_0) + IL_0000: ldarg.1 + IL_0001: isinst XYZ.ABC/ABC/Expr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.ABC/ABC/Expr::Equals(class XYZ.ABC/ABC/Expr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Expr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.ABC/ABC/Expr::get_Tag() + } // end of property Expr::Tag + .property instance int32 Item() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32, + int32) = ( 01 00 04 00 00 00 00 00 00 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 ) + .get instance int32 XYZ.ABC/ABC/Expr::get_Item() + } // end of property Expr::Item + } // end of class Expr + + .class auto ansi serializable nested public beforefieldinit MyExn + extends [mscorlib]System.Exception + implements [mscorlib]System.Collections.IStructuralEquatable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 05 00 00 00 00 00 ) + .field assembly int32 Data0@ + .method public specialname rtspecialname + instance void .ctor(int32 data0) cil managed + { + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 XYZ.ABC/ABC/MyExn::Data0@ + IL_000d: ret + } // end of method MyExn::.ctor + + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Exception::.ctor() + IL_0006: ret + } // end of method MyExn::.ctor + + .method family specialname rtspecialname + instance void .ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo info, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call instance void [mscorlib]System.Exception::.ctor(class [mscorlib]System.Runtime.Serialization.SerializationInfo, + valuetype [mscorlib]System.Runtime.Serialization.StreamingContext) + IL_0008: ret + } // end of method MyExn::.ctor + + .method public hidebysig specialname + instance int32 get_Data0() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 XYZ.ABC/ABC/MyExn::Data0@ + IL_0006: ret + } // end of method MyExn::get_Data0 + + .method public hidebysig virtual instance int32 + GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 41 (0x29) + .maxstack 7 + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1, + int32 V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0027 + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldc.i4 0x9e3779b9 + IL_000a: ldarg.1 + IL_000b: stloc.1 + IL_000c: ldarg.0 + IL_000d: castclass XYZ.ABC/ABC/MyExn + IL_0012: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_0017: stloc.2 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldloc.2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldloc.0 + IL_0026: ret + + IL_0027: ldc.i4.0 + IL_0028: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 XYZ.ABC/ABC/MyExn::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method MyExn::GetHashCode + + .method public hidebysig virtual instance bool + Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 78 (0x4e) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + int32 V_4, + int32 V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0046 + + IL_0003: ldarg.1 + IL_0004: isinst [mscorlib]System.Exception + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0044 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldloc.0 + IL_0010: stloc.2 + IL_0011: ldloc.2 + IL_0012: isinst XYZ.ABC/ABC/MyExn + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: brfalse.s IL_0042 + + IL_001c: ldarg.2 + IL_001d: stloc.3 + IL_001e: ldarg.0 + IL_001f: castclass XYZ.ABC/ABC/MyExn + IL_0024: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_0029: stloc.s V_4 + IL_002b: ldloc.1 + IL_002c: castclass XYZ.ABC/ABC/MyExn + IL_0031: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_0036: stloc.s V_5 + IL_0038: ldloc.3 + IL_0039: stloc.s V_6 + IL_003b: ldloc.s V_4 + IL_003d: ldloc.s V_5 + IL_003f: ceq + IL_0041: ret + + IL_0042: ldc.i4.0 + IL_0043: ret + + IL_0044: ldc.i4.0 + IL_0045: ret + + IL_0046: ldarg.1 + IL_0047: ldnull + IL_0048: cgt.un + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: ret + } // end of method MyExn::Equals + + .method public hidebysig instance bool + Equals(class [mscorlib]System.Exception obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0030 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_002e + + IL_0006: ldarg.1 + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: isinst XYZ.ABC/ABC/MyExn + IL_000e: ldnull + IL_000f: cgt.un + IL_0011: brfalse.s IL_002c + + IL_0013: ldarg.0 + IL_0014: castclass XYZ.ABC/ABC/MyExn + IL_0019: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_001e: ldarg.1 + IL_001f: castclass XYZ.ABC/ABC/MyExn + IL_0024: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + IL_0029: ceq + IL_002b: ret + + IL_002c: ldc.i4.0 + IL_002d: ret + + IL_002e: ldc.i4.0 + IL_002f: ret + + IL_0030: ldarg.1 + IL_0031: ldnull + IL_0032: cgt.un + IL_0034: ldc.i4.0 + IL_0035: ceq + IL_0037: ret + } // end of method MyExn::Equals + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class [mscorlib]System.Exception V_0) + IL_0000: ldarg.1 + IL_0001: isinst [mscorlib]System.Exception + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool XYZ.ABC/ABC/MyExn::Equals(class [mscorlib]System.Exception) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method MyExn::Equals + + .property instance int32 Data0() + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 ) + .get instance int32 XYZ.ABC/ABC/MyExn::get_Data0() + } // end of property MyExn::Data0 + } // end of class MyExn + + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field assembly string x + .method public specialname rtspecialname + instance void .ctor(string x) cil managed + { + // Code size 16 (0x10) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld string XYZ.ABC/ABC/A::x + IL_000f: ret + } // end of method A::.ctor + + .method public hidebysig specialname + instance string get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string XYZ.ABC/ABC/A::x + IL_0006: ret + } // end of method A::get_X + + .property instance string X() + { + .get instance string XYZ.ABC/ABC/A::get_X() + } // end of property A::X + } // end of class A + + .method public static int32 'add'(int32 x, + int32 y) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: add + IL_0003: ret + } // end of method ABC::'add' + + .method public specialname static string + get_greeting() 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 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ret + } // end of method ABC::get_greeting + + .property string greeting() + { + .get string XYZ.ABC/ABC::get_greeting() + } // end of property ABC::greeting + } // end of class ABC + + .method public static int32 'add'(int32 x, + int32 y) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + // Code size 4 (0x4) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: add + IL_0003: ret + } // end of method ABC::'add' + + .method public specialname static string + get_greeting() 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 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ret + } // end of method ABC::get_greeting + + .property string greeting() + { + .get string XYZ.ABC::get_greeting() + } // end of property ABC::greeting +} // end of class XYZ.ABC + +.class private abstract auto ansi sealed ''.$ToplevelNamespace60 + extends [mscorlib]System.Object +{ + .field static assembly int32 init@ + .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 ) + .method public static void main@() cil managed + { + .entrypoint + // Code size 13 (0xd) + .maxstack 3 + .locals init (string V_0, + string V_1) + IL_0000: call string XYZ.ABC::get_greeting() + IL_0005: stloc.0 + IL_0006: call string XYZ.ABC/ABC::get_greeting() + IL_000b: stloc.1 + IL_000c: ret + } // end of method $ToplevelNamespace60::main@ + +} // end of class ''.$ToplevelNamespace60 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SerializableAttribute\ToplevelNamespace_LangVersion60_fs\ToplevelNamespace60.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelNamespace-preview.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace60.fs.il.release.bsl similarity index 82% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelNamespace-preview.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace60.fs.il.release.bsl index 7deda04c06dddf035270d645ea0e9433359b5051..9e01a892a0c1a3b30f69dbf13d0624d4b5086c06 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/ToplevelNamespace-preview.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace60.fs.il.release.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -15,34 +14,36 @@ .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 6:0:0:0 } -.assembly 'ToplevelNamespace-preview' +.assembly ToplevelNamespace60 { .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 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } -.mresource public 'FSharpSignatureData.ToplevelNamespace-preview' +.mresource public FSharpSignatureData.ToplevelNamespace60 { - // Offset: 0x00000000 Length: 0x00001858 + // Offset: 0x00000000 Length: 0x00001892 + // WARNING: managed resource file FSharpSignatureData.ToplevelNamespace60 created } -.mresource public 'FSharpOptimizationData.ToplevelNamespace-preview' +.mresource public FSharpOptimizationData.ToplevelNamespace60 { - // Offset: 0x00001860 Length: 0x00000564 + // Offset: 0x00001898 Length: 0x0000055E + // WARNING: managed resource file FSharpOptimizationData.ToplevelNamespace60 created } -.module 'ToplevelNamespace-preview.dll' -// MVID: {6220E473-96BA-B011-A745-038373E42062} +.module ToplevelNamespace60.exe +// MVID: {624CBC42-3418-1DAD-A745-038342BC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06A50000 +// Image base: 0x030B0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -148,24 +149,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0, - [1] class XYZ.Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SerializableAttribute\\ToplevelNamespace.fs' + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -178,34 +174,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 XYZ.Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -230,29 +219,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0, - [1] class XYZ.Expr V_1, - [2] class XYZ.Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class XYZ.Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any XYZ.Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any XYZ.Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -265,35 +249,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 XYZ.Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any XYZ.Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -304,20 +281,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class XYZ.Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class XYZ.Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -340,7 +313,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -364,30 +336,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0, - [1] class XYZ.Expr V_1, - [2] class XYZ.Expr V_2, - [3] class XYZ.Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1, + class XYZ.Expr V_2, + class XYZ.Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst XYZ.Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -401,11 +367,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -420,20 +384,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0, - [1] class XYZ.Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.Expr V_0, + class XYZ.Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -445,11 +405,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -464,22 +422,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class XYZ.Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.Expr V_0) IL_0000: ldarg.1 IL_0001: isinst XYZ.Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.Expr::Equals(class XYZ.Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -555,33 +509,17 @@ IL_0006: ret } // end of method MyExn::get_Data0 - .method public strict virtual instance string - get_Message() cil managed - { - .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 22 (0x16) - .maxstack 8 - IL_0000: ldstr "%+A" - IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class XYZ.MyExn>::.ctor(string) - IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_000f: ldarg.0 - IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0015: ret - } // end of method MyExn::get_Message - .method public hidebysig virtual instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -603,7 +541,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -627,26 +564,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -655,7 +587,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -667,15 +598,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -690,16 +618,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -708,7 +633,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass XYZ.MyExn IL_0019: call instance int32 XYZ.MyExn::get_Data0() @@ -718,15 +642,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -741,22 +662,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -779,7 +696,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 9,9 : 10,11 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -795,7 +711,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 9,9 : 38,39 '' IL_0000: ldarg.0 IL_0001: ldfld string XYZ.A::x IL_0006: ret @@ -913,23 +828,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0, - [1] class XYZ.ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -942,34 +853,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 XYZ.ABC/Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -994,29 +898,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0, - [1] class XYZ.ABC/Expr V_1, - [2] class XYZ.ABC/Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class XYZ.ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any XYZ.ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any XYZ.ABC/Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -1029,35 +928,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 XYZ.ABC/Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any XYZ.ABC/Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -1068,20 +960,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class XYZ.ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class XYZ.ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -1104,7 +992,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -1128,30 +1015,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0, - [1] class XYZ.ABC/Expr V_1, - [2] class XYZ.ABC/Expr V_2, - [3] class XYZ.ABC/Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1, + class XYZ.ABC/Expr V_2, + class XYZ.ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst XYZ.ABC/Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -1165,11 +1046,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -1184,20 +1063,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0, - [1] class XYZ.ABC/Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0, + class XYZ.ABC/Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -1209,11 +1084,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -1228,22 +1101,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class XYZ.ABC/Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/Expr V_0) IL_0000: ldarg.1 IL_0001: isinst XYZ.ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.ABC/Expr::Equals(class XYZ.ABC/Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -1319,33 +1188,17 @@ IL_0006: ret } // end of method MyExn::get_Data0 - .method public strict virtual instance string - get_Message() cil managed - { - .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 22 (0x16) - .maxstack 8 - IL_0000: ldstr "%+A" - IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class XYZ.ABC/MyExn>::.ctor(string) - IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_000f: ldarg.0 - IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0015: ret - } // end of method MyExn::get_Message - .method public hidebysig virtual instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -1367,7 +1220,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -1391,26 +1243,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -1419,7 +1266,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -1431,15 +1277,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -1454,16 +1297,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -1472,7 +1312,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass XYZ.ABC/MyExn IL_0019: call instance int32 XYZ.ABC/MyExn::get_Data0() @@ -1482,15 +1321,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -1505,22 +1341,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.ABC/MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -1543,7 +1375,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 15,15 : 14,15 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -1559,7 +1390,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 15,15 : 42,43 '' IL_0000: ldarg.0 IL_0001: ldfld string XYZ.ABC/A::x IL_0006: ret @@ -1677,23 +1507,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 55 (0x37) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0, - [1] class XYZ.ABC/ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IComparer V_2, - [3] int32 V_3, - [4] int32 V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IComparer V_2, + int32 V_3, + int32 V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -1706,34 +1532,27 @@ IL_0019: ldloc.1 IL_001a: ldfld int32 XYZ.ABC/ABC/Expr::item IL_001f: stloc.s V_4 - .line 100001,100001 : 0,0 '' IL_0021: ldloc.3 IL_0022: ldloc.s V_4 IL_0024: bge.s IL_0028 - .line 100001,100001 : 0,0 '' IL_0026: ldc.i4.m1 IL_0027: ret - .line 100001,100001 : 0,0 '' IL_0028: ldloc.3 IL_0029: ldloc.s V_4 IL_002b: cgt IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.1 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: brfalse.s IL_0035 - .line 100001,100001 : 0,0 '' IL_0033: ldc.i4.m1 IL_0034: ret - .line 100001,100001 : 0,0 '' IL_0035: ldc.i4.0 IL_0036: ret } // end of method Expr::CompareTo @@ -1758,29 +1577,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 71 (0x47) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0, - [1] class XYZ.ABC/ABC/Expr V_1, - [2] class XYZ.ABC/ABC/Expr V_2, - [3] class [mscorlib]System.Collections.IComparer V_3, - [4] int32 V_4, - [5] int32 V_5) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class XYZ.ABC/ABC/Expr V_2, + class [mscorlib]System.Collections.IComparer V_3, + int32 V_4, + int32 V_5) IL_0000: ldarg.1 IL_0001: unbox.any XYZ.ABC/ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any XYZ.ABC/ABC/Expr IL_0010: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: pop - .line 100001,100001 : 0,0 '' IL_0014: ldarg.0 IL_0015: stloc.1 IL_0016: ldloc.0 @@ -1793,35 +1607,28 @@ IL_0022: ldloc.2 IL_0023: ldfld int32 XYZ.ABC/ABC/Expr::item IL_0028: stloc.s V_5 - .line 100001,100001 : 0,0 '' IL_002a: ldloc.s V_4 IL_002c: ldloc.s V_5 IL_002e: bge.s IL_0032 - .line 100001,100001 : 0,0 '' IL_0030: ldc.i4.m1 IL_0031: ret - .line 100001,100001 : 0,0 '' IL_0032: ldloc.s V_4 IL_0034: ldloc.s V_5 IL_0036: cgt IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.1 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: unbox.any XYZ.ABC/ABC/Expr IL_0041: brfalse.s IL_0045 - .line 100001,100001 : 0,0 '' IL_0043: ldc.i4.m1 IL_0044: ret - .line 100001,100001 : 0,0 '' IL_0045: ldc.i4.0 IL_0046: ret } // end of method Expr::CompareTo @@ -1832,20 +1639,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class XYZ.ABC/ABC/Expr V_1, - [2] class [mscorlib]System.Collections.IEqualityComparer V_2) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class XYZ.ABC/ABC/Expr V_1, + class [mscorlib]System.Collections.IEqualityComparer V_2) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 - .line 100001,100001 : 0,0 '' IL_0005: ldarg.0 IL_0006: pop - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: stloc.1 IL_0009: ldc.i4.0 @@ -1868,7 +1671,6 @@ IL_0022: ldloc.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret } // end of method Expr::GetHashCode @@ -1892,30 +1694,24 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 49 (0x31) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0, - [1] class XYZ.ABC/ABC/Expr V_1, - [2] class XYZ.ABC/ABC/Expr V_2, - [3] class XYZ.ABC/ABC/Expr V_3, - [4] class [mscorlib]System.Collections.IEqualityComparer V_4) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1, + class XYZ.ABC/ABC/Expr V_2, + class XYZ.ABC/ABC/Expr V_3, + class [mscorlib]System.Collections.IEqualityComparer V_4) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0029 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst XYZ.ABC/ABC/Expr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0027 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldarg.0 IL_0010: pop - .line 100001,100001 : 0,0 '' IL_0011: ldarg.0 IL_0012: stloc.2 IL_0013: ldloc.1 @@ -1929,11 +1725,9 @@ IL_0024: ceq IL_0026: ret - .line 100001,100001 : 0,0 '' IL_0027: ldc.i4.0 IL_0028: ret - .line 100001,100001 : 0,0 '' IL_0029: ldarg.1 IL_002a: ldnull IL_002b: cgt.un @@ -1948,20 +1742,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0, - [1] class XYZ.ABC/ABC/Expr V_1) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0, + class XYZ.ABC/ABC/Expr V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001d - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: pop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: ldarg.1 @@ -1973,11 +1763,9 @@ IL_0018: ceq IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldc.i4.0 IL_001c: ret - .line 100001,100001 : 0,0 '' IL_001d: ldarg.1 IL_001e: ldnull IL_001f: cgt.un @@ -1992,22 +1780,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class XYZ.ABC/ABC/Expr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class XYZ.ABC/ABC/Expr V_0) IL_0000: ldarg.1 IL_0001: isinst XYZ.ABC/ABC/Expr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.ABC/ABC/Expr::Equals(class XYZ.ABC/ABC/Expr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Expr::Equals @@ -2083,33 +1867,17 @@ IL_0006: ret } // end of method MyExn::get_Data0 - .method public strict virtual instance string - get_Message() cil managed - { - .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 22 (0x16) - .maxstack 8 - IL_0000: ldstr "%+A" - IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class XYZ.ABC/ABC/MyExn>::.ctor(string) - IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_000f: ldarg.0 - IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0015: ret - } // end of method MyExn::get_Message - .method public hidebysig virtual instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 37 (0x25) .maxstack 7 - .locals init ([0] int32 V_0, - [1] class [mscorlib]System.Collections.IEqualityComparer V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + class [mscorlib]System.Collections.IEqualityComparer V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0023 - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldc.i4 0x9e3779b9 @@ -2131,7 +1899,6 @@ IL_0021: ldloc.0 IL_0022: ret - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.0 IL_0024: ret } // end of method MyExn::GetHashCode @@ -2155,26 +1922,21 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 67 (0x43) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0, - [1] class [mscorlib]System.Exception V_1, - [2] object V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0, + class [mscorlib]System.Exception V_1, + object V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_003b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst [mscorlib]System.Exception IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0039 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 - .line 100001,100001 : 0,0 '' IL_000f: ldloc.0 IL_0010: stloc.2 IL_0011: ldloc.2 @@ -2183,7 +1945,6 @@ IL_0018: cgt.un IL_001a: brfalse.s IL_0037 - .line 100001,100001 : 0,0 '' IL_001c: ldarg.2 IL_001d: stloc.3 IL_001e: ldarg.0 @@ -2195,15 +1956,12 @@ IL_0034: ceq IL_0036: ret - .line 100001,100001 : 0,0 '' IL_0037: ldc.i4.0 IL_0038: ret - .line 100001,100001 : 0,0 '' IL_0039: ldc.i4.0 IL_003a: ret - .line 100001,100001 : 0,0 '' IL_003b: ldarg.1 IL_003c: ldnull IL_003d: cgt.un @@ -2218,16 +1976,13 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] object V_0) - .line 100001,100001 : 0,0 '' + .locals init (object V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_002e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.1 IL_0007: stloc.0 IL_0008: ldloc.0 @@ -2236,7 +1991,6 @@ IL_000f: cgt.un IL_0011: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_0013: ldarg.0 IL_0014: castclass XYZ.ABC/ABC/MyExn IL_0019: call instance int32 XYZ.ABC/ABC/MyExn::get_Data0() @@ -2246,15 +2000,12 @@ IL_0029: ceq IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldc.i4.0 IL_002d: ret - .line 100001,100001 : 0,0 '' IL_002e: ldc.i4.0 IL_002f: ret - .line 100001,100001 : 0,0 '' IL_0030: ldarg.1 IL_0031: ldnull IL_0032: cgt.un @@ -2269,22 +2020,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class [mscorlib]System.Exception V_0) - .line 100001,100001 : 0,0 '' + .locals init (class [mscorlib]System.Exception V_0) IL_0000: ldarg.1 IL_0001: isinst [mscorlib]System.Exception IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool XYZ.ABC/ABC/MyExn::Equals(class [mscorlib]System.Exception) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method MyExn::Equals @@ -2307,7 +2054,6 @@ { // Code size 16 (0x10) .maxstack 8 - .line 25,25 : 18,19 '' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -2323,7 +2069,6 @@ { // Code size 7 (0x7) .maxstack 8 - .line 25,25 : 46,47 '' IL_0000: ldarg.0 IL_0001: ldfld string XYZ.ABC/ABC/A::x IL_0006: ret @@ -2341,7 +2086,6 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) // Code size 4 (0x4) .maxstack 8 - .line 28,28 : 27,32 '' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: add @@ -2371,7 +2115,6 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) // Code size 4 (0x4) .maxstack 8 - .line 18,18 : 23,28 '' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: add @@ -2395,32 +2138,31 @@ } // end of property ABC::greeting } // end of class XYZ.ABC -.class private abstract auto ansi sealed ''.$ToplevelNamespace +.class private abstract auto ansi sealed ''.$ToplevelNamespace60 extends [mscorlib]System.Object { .field static assembly int32 init@ .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 ) - .method private specialname rtspecialname static - void .cctor() cil managed + .method public static void main@() cil managed { + .entrypoint // Code size 13 (0xd) .maxstack 3 - .locals init ([0] string greeting, - [1] string V_1) - .line 19,19 : 9,31 '' + .locals init (string V_0, + string V_1) IL_0000: call string XYZ.ABC::get_greeting() IL_0005: stloc.0 - .line 29,29 : 13,35 '' IL_0006: call string XYZ.ABC/ABC::get_greeting() IL_000b: stloc.1 IL_000c: ret - } // end of method $ToplevelNamespace::.cctor + } // end of method $ToplevelNamespace60::main@ -} // end of class ''.$ToplevelNamespace +} // end of class ''.$ToplevelNamespace60 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SerializableAttribute\ToplevelNamespace_LangVersion60_fs\ToplevelNamespace60.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/LetBinding01.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/LetBinding01.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/LetBinding01.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/LetBinding01.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/LetBinding01.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/LetBinding01.fs.il.bsl similarity index 87% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/LetBinding01.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/LetBinding01.fs.il.bsl index 8dc585e0a8ac68faa0dfeb9767eadafba9010c10..5099043230bd0d8511fa67851e2d7962cb13aafb 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/LetBinding01.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/LetBinding01.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.LetBinding01 { - // Offset: 0x00000000 Length: 0x000001B0 + // Offset: 0x00000000 Length: 0x000001E8 + // WARNING: managed resource file FSharpSignatureData.LetBinding01 created } .mresource public FSharpOptimizationData.LetBinding01 { - // Offset: 0x000001B8 Length: 0x00000070 + // Offset: 0x000001F0 Length: 0x00000070 + // WARNING: managed resource file FSharpOptimizationData.LetBinding01 created } .module LetBinding01.exe -// MVID: {61E07031-269D-BEEF-A745-03833170E061} +// MVID: {624CC9CC-269D-BEEF-A745-0383CCC94C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x051E0000 +// Image base: 0x04950000 // =============== CLASS MEMBERS DECLARATION =================== @@ -81,11 +82,8 @@ .entrypoint // Code size 33 (0x21) .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 1,11 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\StaticInit\\LetBinding01.fs' IL_0000: call class [FSharp.Core]Microsoft.FSharp.Core.Unit LetBinding01::get_x() IL_0005: pop - .line 6,6 : 1,19 '' IL_0006: ldstr "x = %A" IL_000b: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::.ctor(string) IL_0010: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) @@ -101,3 +99,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\StaticInit\LetBinding01_fs\LetBinding01.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit.fs new file mode 100644 index 0000000000000000000000000000000000000000..7fd8919f43262c76f0363ee6436dfac64d47452a --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit.fs @@ -0,0 +1,43 @@ +namespace FSharp.Compiler.ComponentTests.EmittedIL + +open Xunit +open System.IO +open FSharp.Test +open FSharp.Test.Compiler + +module StaticInit = + + let verifyCompilation compilation = + compilation + |> withOptions [ "--test:EmitFeeFeeAs100001" ] + |> asExe + |> withNoOptimize + |> withEmbeddedPdb + |> withEmbedAllSource + |> ignoreWarnings + |> verifyILBaseline + + + // SOURCE=LetBinding01.fs SCFLAGS=" -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd LetBinding01.exe" # LetBinding01.fs + [] + let ``LetBinding01_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=StaticInit_Struct01.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd StaticInit_Struct01.dll" # StaticInit_Struct01.fs - + [] + let ``StaticInit_Struct01_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=StaticInit_Class01.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd StaticInit_Class01.dll" # StaticInit_Class01.fs - + [] + let ``StaticInit_Class01_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=StaticInit_Module01.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd StaticInit_Module01.dll" # StaticInit_Module01.fs - + [] + let ``StaticInit_Module01_fs`` compilation = + compilation + |> verifyCompilation diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Class01.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Class01.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Class01.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.il.bsl similarity index 82% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Class01.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.il.bsl index 0473438cf5b1c710db1808927a3dc32408cf7ea7..faa7c410084791a2d3aa4468239511182cac9d9d 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Class01.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.StaticInit_Class01 { - // Offset: 0x00000000 Length: 0x0000032F + // Offset: 0x00000000 Length: 0x0000036D + // WARNING: managed resource file FSharpSignatureData.StaticInit_Class01 created } .mresource public FSharpOptimizationData.StaticInit_Class01 { - // Offset: 0x00000338 Length: 0x000000AD + // Offset: 0x00000378 Length: 0x000000AD + // WARNING: managed resource file FSharpOptimizationData.StaticInit_Class01 created } -.module StaticInit_Class01.dll -// MVID: {61FC3629-EC34-E66E-A745-03832936FC61} +.module StaticInit_Class01.exe +// MVID: {624CC9CC-EC48-71DA-A745-0383CCC94C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x07570000 +// Image base: 0x034B0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -62,8 +63,6 @@ { // Code size 9 (0x9) .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 4,4 : 6,7 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Class01.fs' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -76,22 +75,17 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 8 - .line 7,7 : 23,37 '' IL_0000: nop - .line 100001,100001 : 0,0 '' IL_0001: volatile. IL_0003: ldsfld int32 StaticInit_ClassS01/C::init@4 IL_0008: ldc.i4.1 IL_0009: bge.s IL_0014 - .line 100001,100001 : 0,0 '' IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() IL_0010: nop - .line 100001,100001 : 0,0 '' IL_0011: nop IL_0012: br.s IL_0015 - .line 100001,100001 : 0,0 '' IL_0014: nop IL_0015: ldsfld int32 StaticInit_ClassS01/C::x IL_001a: ldstr "2" @@ -105,7 +99,6 @@ { // Code size 13 (0xd) .maxstack 8 - .line 100001,100001 : 0,0 '' IL_0000: ldc.i4.0 IL_0001: stsfld int32 ''.$StaticInit_ClassS01::init@ IL_0006: ldsfld int32 ''.$StaticInit_ClassS01::init@ @@ -124,12 +117,11 @@ .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 ) - .method private specialname rtspecialname static - void .cctor() cil managed + .method public static void main@() cil managed { + .entrypoint // Code size 24 (0x18) .maxstack 8 - .line 6,6 : 12,30 '' IL_0000: ldstr "1" IL_0005: callvirt instance int32 [mscorlib]System.String::get_Length() IL_000a: stsfld int32 StaticInit_ClassS01/C::x @@ -137,7 +129,7 @@ IL_0010: volatile. IL_0012: stsfld int32 StaticInit_ClassS01/C::init@4 IL_0017: ret - } // end of method $StaticInit_ClassS01::.cctor + } // end of method $StaticInit_ClassS01::main@ } // end of class ''.$StaticInit_ClassS01 @@ -145,3 +137,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\StaticInit\StaticInit_Class01_fs\StaticInit_Class01.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Module01.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Module01.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Module01.fs.il.bsl similarity index 85% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Module01.fs.il.bsl index bbe78bc0de612d872de6b2b1397c6ac4fabf22d1..a66c5cc3d89203417c06ad5cb625b0856ee82bde 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Module01.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly StaticInit_Module01 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.StaticInit_Module01 { - // Offset: 0x00000000 Length: 0x000002A3 + // Offset: 0x00000000 Length: 0x000002E2 + // WARNING: managed resource file FSharpSignatureData.StaticInit_Module01 created } .mresource public FSharpOptimizationData.StaticInit_Module01 { - // Offset: 0x000002A8 Length: 0x000000DF + // Offset: 0x000002E8 Length: 0x000000DF + // WARNING: managed resource file FSharpOptimizationData.StaticInit_Module01 created } -.module StaticInit_Module01.dll -// MVID: {60B68B90-705F-DF4F-A745-0383908BB660} +.module StaticInit_Module01.exe +// MVID: {624CC9CC-A09B-51CF-A745-0383CCC94C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x050C0000 +// Image base: 0x04F30000 // =============== CLASS MEMBERS DECLARATION =================== @@ -110,32 +111,29 @@ .class private abstract auto ansi sealed ''.$StaticInit_Module01 extends [mscorlib]System.Object { - .field static assembly initonly int32 x@5 + .field static assembly int32 x@5 .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) - .field static assembly initonly int32 y@7 + .field static assembly int32 y@7 .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) - .field static assembly initonly int32 z@8 + .field static assembly int32 z@8 .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .field static assembly int32 init@ .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 ) - .method private specialname rtspecialname static - void .cctor() cil managed + .method public static void main@() cil managed { + .entrypoint // Code size 64 (0x40) .maxstack 4 - .locals init ([0] int32 x, - [1] int32 y, - [2] int32 z) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 3,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Module01.fs' + .locals init (int32 V_0, + int32 V_1, + int32 V_2) IL_0000: ldstr "1" IL_0005: callvirt instance int32 [mscorlib]System.String::get_Length() IL_000a: dup IL_000b: stsfld int32 ''.$StaticInit_Module01::x@5 IL_0010: stloc.0 - .line 7,7 : 5,27 '' IL_0011: call int32 StaticInit_Module01/M::get_x() IL_0016: ldstr "2" IL_001b: callvirt instance int32 [mscorlib]System.String::get_Length() @@ -143,7 +141,6 @@ IL_0021: dup IL_0022: stsfld int32 ''.$StaticInit_Module01::y@7 IL_0027: stloc.1 - .line 8,8 : 5,27 '' IL_0028: call int32 StaticInit_Module01/M/N::get_y() IL_002d: ldstr "3" IL_0032: callvirt instance int32 [mscorlib]System.String::get_Length() @@ -152,7 +149,7 @@ IL_0039: stsfld int32 ''.$StaticInit_Module01::z@8 IL_003e: stloc.2 IL_003f: ret - } // end of method $StaticInit_Module01::.cctor + } // end of method $StaticInit_Module01::main@ } // end of class ''.$StaticInit_Module01 @@ -160,3 +157,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\StaticInit\StaticInit_Module01_fs\StaticInit_Module01.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.net472.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.net472.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..89018defc65f451c985e7072a29833265b5bb9aa --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.net472.debug.bsl @@ -0,0 +1,362 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern netstandard +{ + .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) // .{...-.Q + .ver 2:0:0:0 +} +.assembly StaticInit_Struct01 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.StaticInit_Struct01 +{ + // Offset: 0x00000000 Length: 0x000007E0 + // WARNING: managed resource file FSharpSignatureData.StaticInit_Struct01 created +} +.mresource public FSharpOptimizationData.StaticInit_Struct01 +{ + // Offset: 0x000007E8 Length: 0x0000021F + // WARNING: managed resource file FSharpOptimizationData.StaticInit_Struct01 created +} +.module StaticInit_Struct01.exe +// MVID: {624CCAB9-1F68-8E9A-A745-0383B9CA4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x034B0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed StaticInit_Struct01 + 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 ) + .class sequential ansi serializable sealed nested public C + extends [mscorlib]System.ValueType + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field static assembly int32 x + .field static assembly int32 init@4 + .field assembly valuetype [mscorlib]System.DateTime s + .method public hidebysig virtual final + instance int32 CompareTo(valuetype StaticInit_Struct01/C obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 34 (0x22) + .maxstack 4 + .locals init (valuetype StaticInit_Struct01/C& V_0, + class [mscorlib]System.Collections.IComparer V_1, + valuetype [mscorlib]System.DateTime V_2, + valuetype [mscorlib]System.DateTime V_3, + class [mscorlib]System.Collections.IComparer V_4) + IL_0000: ldarga.s obj + IL_0002: stloc.0 + IL_0003: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0008: stloc.1 + IL_0009: ldarg.0 + IL_000a: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_000f: stloc.2 + IL_0010: ldloc.0 + IL_0011: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_0016: stloc.3 + IL_0017: ldloc.1 + IL_0018: stloc.s V_4 + IL_001a: ldloc.2 + IL_001b: ldloc.3 + IL_001c: call int32 [netstandard]System.DateTime::Compare(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_0021: ret + } // end of method C::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any StaticInit_Struct01/C + IL_0007: call instance int32 StaticInit_Struct01/C::CompareTo(valuetype StaticInit_Struct01/C) + IL_000c: ret + } // end of method C::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 4 + .locals init (valuetype StaticInit_Struct01/C V_0, + valuetype StaticInit_Struct01/C& V_1, + class [mscorlib]System.Collections.IComparer V_2, + valuetype [mscorlib]System.DateTime V_3, + valuetype [mscorlib]System.DateTime V_4, + class [mscorlib]System.Collections.IComparer V_5) + IL_0000: ldarg.1 + IL_0001: unbox.any StaticInit_Struct01/C + IL_0006: stloc.0 + IL_0007: ldloca.s V_0 + IL_0009: stloc.1 + IL_000a: ldarg.2 + IL_000b: stloc.2 + IL_000c: ldarg.0 + IL_000d: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_0012: stloc.3 + IL_0013: ldloc.1 + IL_0014: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_0019: stloc.s V_4 + IL_001b: ldloc.2 + IL_001c: stloc.s V_5 + IL_001e: ldloc.3 + IL_001f: ldloc.s V_4 + IL_0021: call int32 [netstandard]System.DateTime::Compare(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_0026: ret + } // end of method C::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 31 (0x1f) + .maxstack 7 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: ldc.i4 0x9e3779b9 + IL_0007: ldarg.1 + IL_0008: ldarg.0 + IL_0009: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_000e: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericHashWithComparerIntrinsic(class [mscorlib]System.Collections.IEqualityComparer, + !!0) + IL_0013: ldloc.0 + IL_0014: ldc.i4.6 + IL_0015: shl + IL_0016: ldloc.0 + IL_0017: ldc.i4.2 + IL_0018: shr + IL_0019: add + IL_001a: add + IL_001b: add + IL_001c: stloc.0 + IL_001d: ldloc.0 + IL_001e: ret + } // end of method C::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: call instance int32 StaticInit_Struct01/C::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method C::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0, + valuetype StaticInit_Struct01/C V_1, + valuetype StaticInit_Struct01/C& V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3, + valuetype [mscorlib]System.DateTime V_4, + valuetype [mscorlib]System.DateTime V_5, + class [mscorlib]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.1 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst StaticInit_Struct01/C + IL_0008: ldnull + IL_0009: cgt.un + IL_000b: brfalse.s IL_0036 + + IL_000d: ldarg.1 + IL_000e: unbox.any StaticInit_Struct01/C + IL_0013: stloc.1 + IL_0014: ldloca.s V_1 + IL_0016: stloc.2 + IL_0017: ldarg.2 + IL_0018: stloc.3 + IL_0019: ldarg.0 + IL_001a: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_0027: stloc.s V_5 + IL_0029: ldloc.3 + IL_002a: stloc.s V_6 + IL_002c: ldloc.s V_4 + IL_002e: ldloc.s V_5 + IL_0030: call bool [netstandard]System.DateTime::Equals(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_0035: ret + + IL_0036: ldc.i4.0 + IL_0037: ret + } // end of method C::Equals + + .method public specialname rtspecialname + instance void .ctor(valuetype [mscorlib]System.DateTime s) cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_0007: ret + } // end of method C::.ctor + + .method assembly static int32 f() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 38 (0x26) + .maxstack 8 + IL_0000: nop + IL_0001: volatile. + IL_0003: ldsfld int32 StaticInit_Struct01/C::init@4 + IL_0008: ldc.i4.1 + IL_0009: bge.s IL_0014 + + IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_0010: nop + IL_0011: nop + IL_0012: br.s IL_0015 + + IL_0014: nop + IL_0015: ldsfld int32 StaticInit_Struct01/C::x + IL_001a: ldstr "2" + IL_001f: callvirt instance int32 [mscorlib]System.String::get_Length() + IL_0024: add + IL_0025: ret + } // end of method C::f + + .method public hidebysig virtual final + instance bool Equals(valuetype StaticInit_Struct01/C obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 4 + .locals init (valuetype StaticInit_Struct01/C& V_0) + IL_0000: ldarga.s obj + IL_0002: stloc.0 + IL_0003: ldarg.0 + IL_0004: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_0009: ldloc.0 + IL_000a: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s + IL_000f: call bool [netstandard]System.DateTime::Equals(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_0014: ret + } // end of method C::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 30 (0x1e) + .maxstack 4 + .locals init (object V_0, + valuetype StaticInit_Struct01/C V_1) + IL_0000: ldarg.1 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst StaticInit_Struct01/C + IL_0008: ldnull + IL_0009: cgt.un + IL_000b: brfalse.s IL_001c + + IL_000d: ldarg.1 + IL_000e: unbox.any StaticInit_Struct01/C + IL_0013: stloc.1 + IL_0014: ldarg.0 + IL_0015: ldloc.1 + IL_0016: call instance bool StaticInit_Struct01/C::Equals(valuetype StaticInit_Struct01/C) + IL_001b: ret + + IL_001c: ldc.i4.0 + IL_001d: ret + } // end of method C::Equals + + .method private specialname rtspecialname static + void .cctor() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$StaticInit_Struct01::init@ + IL_0006: ldsfld int32 ''.$StaticInit_Struct01::init@ + IL_000b: pop + IL_000c: ret + } // end of method C::.cctor + + } // end of class C + +} // end of class StaticInit_Struct01 + +.class private abstract auto ansi sealed ''.$StaticInit_Struct01 + extends [mscorlib]System.Object +{ + .field static assembly int32 init@ + .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 ) + .method public static void main@() cil managed + { + .entrypoint + // Code size 24 (0x18) + .maxstack 8 + IL_0000: ldstr "1" + IL_0005: callvirt instance int32 [mscorlib]System.String::get_Length() + IL_000a: stsfld int32 StaticInit_Struct01/C::x + IL_000f: ldc.i4.1 + IL_0010: volatile. + IL_0012: stsfld int32 StaticInit_Struct01/C::init@4 + IL_0017: ret + } // end of method $StaticInit_Struct01::main@ + +} // end of class ''.$StaticInit_Struct01 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\StaticInit\StaticInit_Struct01_fs\StaticInit_Struct01.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.net472.release.bsl similarity index 89% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.net472.release.bsl index 7260c700b86a9d5c91e43326df43e0c32d44da91..c7abcb4d4734a4842628f0e428bb221a7d5d12c2 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.net472.release.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -27,27 +26,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.StaticInit_Struct01 { - // Offset: 0x00000000 Length: 0x000007A1 + // Offset: 0x00000000 Length: 0x000007E4 + // WARNING: managed resource file FSharpSignatureData.StaticInit_Struct01 created } .mresource public FSharpOptimizationData.StaticInit_Struct01 { - // Offset: 0x000007A8 Length: 0x0000021F + // Offset: 0x000007E8 Length: 0x0000021F + // WARNING: managed resource file FSharpOptimizationData.StaticInit_Struct01 created } -.module StaticInit_Struct01.dll -// MVID: {6220CCA3-05F6-D6CB-A745-0383A3CC2062} +.module StaticInit_Struct01.exe +// MVID: {624CD11E-1F68-8E9A-A745-03831ED14C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x066A0000 +// Image base: 0x034B0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -176,12 +177,10 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 45 (0x2d) .maxstack 4 - .locals init ([0] object V_0, - [1] valuetype StaticInit_Struct01/C V_1, - [2] valuetype StaticInit_Struct01/C& V_2, - [3] class [mscorlib]System.Collections.IEqualityComparer V_3) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Struct01.fs' + .locals init (object V_0, + valuetype StaticInit_Struct01/C V_1, + valuetype StaticInit_Struct01/C& V_2, + class [mscorlib]System.Collections.IEqualityComparer V_3) IL_0000: ldarg.1 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -190,7 +189,6 @@ IL_0009: cgt.un IL_000b: brfalse.s IL_002b - .line 100001,100001 : 0,0 '' IL_000d: ldarg.1 IL_000e: unbox.any StaticInit_Struct01/C IL_0013: stloc.1 @@ -206,7 +204,6 @@ valuetype [netstandard]System.DateTime) IL_002a: ret - .line 100001,100001 : 0,0 '' IL_002b: ldc.i4.0 IL_002c: ret } // end of method C::Equals @@ -227,22 +224,17 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 38 (0x26) .maxstack 8 - .line 7,7 : 23,37 '' IL_0000: nop - .line 100001,100001 : 0,0 '' IL_0001: volatile. IL_0003: ldsfld int32 StaticInit_Struct01/C::init@4 IL_0008: ldc.i4.1 IL_0009: bge.s IL_0014 - .line 100001,100001 : 0,0 '' IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() IL_0010: nop - .line 100001,100001 : 0,0 '' IL_0011: nop IL_0012: br.s IL_0015 - .line 100001,100001 : 0,0 '' IL_0014: nop IL_0015: ldsfld int32 StaticInit_Struct01/C::x IL_001a: ldstr "2" @@ -275,9 +267,8 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 30 (0x1e) .maxstack 4 - .locals init ([0] object V_0, - [1] valuetype StaticInit_Struct01/C V_1) - .line 100001,100001 : 0,0 '' + .locals init (object V_0, + valuetype StaticInit_Struct01/C V_1) IL_0000: ldarg.1 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -286,7 +277,6 @@ IL_0009: cgt.un IL_000b: brfalse.s IL_001c - .line 100001,100001 : 0,0 '' IL_000d: ldarg.1 IL_000e: unbox.any StaticInit_Struct01/C IL_0013: stloc.1 @@ -295,7 +285,6 @@ IL_0016: call instance bool StaticInit_Struct01/C::Equals(valuetype StaticInit_Struct01/C) IL_001b: ret - .line 100001,100001 : 0,0 '' IL_001c: ldc.i4.0 IL_001d: ret } // end of method C::Equals @@ -305,7 +294,6 @@ { // Code size 13 (0xd) .maxstack 8 - .line 100001,100001 : 0,0 '' IL_0000: ldc.i4.0 IL_0001: stsfld int32 ''.$StaticInit_Struct01::init@ IL_0006: ldsfld int32 ''.$StaticInit_Struct01::init@ @@ -324,12 +312,11 @@ .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 ) - .method private specialname rtspecialname static - void .cctor() cil managed + .method public static void main@() cil managed { + .entrypoint // Code size 24 (0x18) .maxstack 8 - .line 6,6 : 12,30 '' IL_0000: ldstr "1" IL_0005: callvirt instance int32 [mscorlib]System.String::get_Length() IL_000a: stsfld int32 StaticInit_Struct01/C::x @@ -337,7 +324,7 @@ IL_0010: volatile. IL_0012: stsfld int32 StaticInit_Struct01/C::init@4 IL_0017: ret - } // end of method $StaticInit_Struct01::.cctor + } // end of method $StaticInit_Struct01::main@ } // end of class ''.$StaticInit_Struct01 @@ -345,3 +332,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\StaticInit\StaticInit_Struct01_fs\StaticInit_Struct01.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.netcore.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..12c38b58444e08aafe47fbeabe048d4357f394cf --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.netcore.debug.bsl @@ -0,0 +1,362 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern netstandard +{ + .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) // .{...-.Q + .ver 2:1:0:0 +} +.assembly StaticInit_Struct01 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.StaticInit_Struct01 +{ + // Offset: 0x00000000 Length: 0x000007E6 + // WARNING: managed resource file FSharpSignatureData.StaticInit_Struct01 created +} +.mresource public FSharpOptimizationData.StaticInit_Struct01 +{ + // Offset: 0x000007F0 Length: 0x00000225 + // WARNING: managed resource file FSharpOptimizationData.StaticInit_Struct01 created +} +.module StaticInit_Struct01.exe +// MVID: {624CCF56-BD47-E55D-A745-038356CF4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x00000159C0660000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed StaticInit_Struct01 + extends [System.Runtime]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 ) + .class sequential ansi serializable sealed nested public C + extends [System.Runtime]System.ValueType + implements class [System.Runtime]System.IEquatable`1, + [System.Runtime]System.Collections.IStructuralEquatable, + class [System.Runtime]System.IComparable`1, + [System.Runtime]System.IComparable, + [System.Runtime]System.Collections.IStructuralComparable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field static assembly int32 x + .field static assembly int32 init@4 + .field assembly valuetype [System.Runtime]System.DateTime s + .method public hidebysig virtual final + instance int32 CompareTo(valuetype StaticInit_Struct01/C obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 34 (0x22) + .maxstack 4 + .locals init (valuetype StaticInit_Struct01/C& V_0, + class [System.Runtime]System.Collections.IComparer V_1, + valuetype [System.Runtime]System.DateTime V_2, + valuetype [System.Runtime]System.DateTime V_3, + class [System.Runtime]System.Collections.IComparer V_4) + IL_0000: ldarga.s obj + IL_0002: stloc.0 + IL_0003: call class [System.Runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0008: stloc.1 + IL_0009: ldarg.0 + IL_000a: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_000f: stloc.2 + IL_0010: ldloc.0 + IL_0011: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0016: stloc.3 + IL_0017: ldloc.1 + IL_0018: stloc.s V_4 + IL_001a: ldloc.2 + IL_001b: ldloc.3 + IL_001c: call int32 [netstandard]System.DateTime::Compare(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_0021: ret + } // end of method C::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any StaticInit_Struct01/C + IL_0007: call instance int32 StaticInit_Struct01/C::CompareTo(valuetype StaticInit_Struct01/C) + IL_000c: ret + } // end of method C::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [System.Runtime]System.Collections.IComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 4 + .locals init (valuetype StaticInit_Struct01/C V_0, + valuetype StaticInit_Struct01/C& V_1, + class [System.Runtime]System.Collections.IComparer V_2, + valuetype [System.Runtime]System.DateTime V_3, + valuetype [System.Runtime]System.DateTime V_4, + class [System.Runtime]System.Collections.IComparer V_5) + IL_0000: ldarg.1 + IL_0001: unbox.any StaticInit_Struct01/C + IL_0006: stloc.0 + IL_0007: ldloca.s V_0 + IL_0009: stloc.1 + IL_000a: ldarg.2 + IL_000b: stloc.2 + IL_000c: ldarg.0 + IL_000d: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0012: stloc.3 + IL_0013: ldloc.1 + IL_0014: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0019: stloc.s V_4 + IL_001b: ldloc.2 + IL_001c: stloc.s V_5 + IL_001e: ldloc.3 + IL_001f: ldloc.s V_4 + IL_0021: call int32 [netstandard]System.DateTime::Compare(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_0026: ret + } // end of method C::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 31 (0x1f) + .maxstack 7 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: ldc.i4 0x9e3779b9 + IL_0007: ldarg.1 + IL_0008: ldarg.0 + IL_0009: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_000e: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericHashWithComparerIntrinsic(class [System.Runtime]System.Collections.IEqualityComparer, + !!0) + IL_0013: ldloc.0 + IL_0014: ldc.i4.6 + IL_0015: shl + IL_0016: ldloc.0 + IL_0017: ldc.i4.2 + IL_0018: shr + IL_0019: add + IL_001a: add + IL_001b: add + IL_001c: stloc.0 + IL_001d: ldloc.0 + IL_001e: ret + } // end of method C::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [System.Runtime]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: call instance int32 StaticInit_Struct01/C::GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method C::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (object V_0, + valuetype StaticInit_Struct01/C V_1, + valuetype StaticInit_Struct01/C& V_2, + class [System.Runtime]System.Collections.IEqualityComparer V_3, + valuetype [System.Runtime]System.DateTime V_4, + valuetype [System.Runtime]System.DateTime V_5, + class [System.Runtime]System.Collections.IEqualityComparer V_6) + IL_0000: ldarg.1 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst StaticInit_Struct01/C + IL_0008: ldnull + IL_0009: cgt.un + IL_000b: brfalse.s IL_0036 + + IL_000d: ldarg.1 + IL_000e: unbox.any StaticInit_Struct01/C + IL_0013: stloc.1 + IL_0014: ldloca.s V_1 + IL_0016: stloc.2 + IL_0017: ldarg.2 + IL_0018: stloc.3 + IL_0019: ldarg.0 + IL_001a: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_001f: stloc.s V_4 + IL_0021: ldloc.2 + IL_0022: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0027: stloc.s V_5 + IL_0029: ldloc.3 + IL_002a: stloc.s V_6 + IL_002c: ldloc.s V_4 + IL_002e: ldloc.s V_5 + IL_0030: call bool [netstandard]System.DateTime::Equals(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_0035: ret + + IL_0036: ldc.i4.0 + IL_0037: ret + } // end of method C::Equals + + .method public specialname rtspecialname + instance void .ctor(valuetype [System.Runtime]System.DateTime s) cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0007: ret + } // end of method C::.ctor + + .method assembly static int32 f() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 38 (0x26) + .maxstack 8 + IL_0000: nop + IL_0001: volatile. + IL_0003: ldsfld int32 StaticInit_Struct01/C::init@4 + IL_0008: ldc.i4.1 + IL_0009: bge.s IL_0014 + + IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_0010: nop + IL_0011: nop + IL_0012: br.s IL_0015 + + IL_0014: nop + IL_0015: ldsfld int32 StaticInit_Struct01/C::x + IL_001a: ldstr "2" + IL_001f: callvirt instance int32 [System.Runtime]System.String::get_Length() + IL_0024: add + IL_0025: ret + } // end of method C::f + + .method public hidebysig virtual final + instance bool Equals(valuetype StaticInit_Struct01/C obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 4 + .locals init (valuetype StaticInit_Struct01/C& V_0) + IL_0000: ldarga.s obj + IL_0002: stloc.0 + IL_0003: ldarg.0 + IL_0004: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0009: ldloc.0 + IL_000a: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_000f: call bool [netstandard]System.DateTime::Equals(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_0014: ret + } // end of method C::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 30 (0x1e) + .maxstack 4 + .locals init (object V_0, + valuetype StaticInit_Struct01/C V_1) + IL_0000: ldarg.1 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst StaticInit_Struct01/C + IL_0008: ldnull + IL_0009: cgt.un + IL_000b: brfalse.s IL_001c + + IL_000d: ldarg.1 + IL_000e: unbox.any StaticInit_Struct01/C + IL_0013: stloc.1 + IL_0014: ldarg.0 + IL_0015: ldloc.1 + IL_0016: call instance bool StaticInit_Struct01/C::Equals(valuetype StaticInit_Struct01/C) + IL_001b: ret + + IL_001c: ldc.i4.0 + IL_001d: ret + } // end of method C::Equals + + .method private specialname rtspecialname static + void .cctor() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$StaticInit_Struct01::init@ + IL_0006: ldsfld int32 ''.$StaticInit_Struct01::init@ + IL_000b: pop + IL_000c: ret + } // end of method C::.cctor + + } // end of class C + +} // end of class StaticInit_Struct01 + +.class private abstract auto ansi sealed ''.$StaticInit_Struct01 + extends [System.Runtime]System.Object +{ + .field static assembly int32 init@ + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .method public static void main@() cil managed + { + .entrypoint + // Code size 24 (0x18) + .maxstack 8 + IL_0000: ldstr "1" + IL_0005: callvirt instance int32 [System.Runtime]System.String::get_Length() + IL_000a: stsfld int32 StaticInit_Struct01/C::x + IL_000f: ldc.i4.1 + IL_0010: volatile. + IL_0012: stsfld int32 StaticInit_Struct01/C::init@4 + IL_0017: ret + } // end of method $StaticInit_Struct01::main@ + +} // end of class ''.$StaticInit_Struct01 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net6.0\tests\EmittedIL\StaticInit\StaticInit_Struct01_fs\StaticInit_Struct01.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.netcore.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..a1562b9e8022f5247fd022637b9e99fccfe85e7e --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.il.netcore.release.bsl @@ -0,0 +1,335 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern netstandard +{ + .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) // .{...-.Q + .ver 2:1:0:0 +} +.assembly StaticInit_Struct01 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.StaticInit_Struct01 +{ + // Offset: 0x00000000 Length: 0x000007EA + // WARNING: managed resource file FSharpSignatureData.StaticInit_Struct01 created +} +.mresource public FSharpOptimizationData.StaticInit_Struct01 +{ + // Offset: 0x000007F0 Length: 0x00000225 + // WARNING: managed resource file FSharpOptimizationData.StaticInit_Struct01 created +} +.module StaticInit_Struct01.exe +// MVID: {624CCD3E-86F5-930A-A745-03833ECD4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x00000190B37A0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed StaticInit_Struct01 + extends [System.Runtime]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 ) + .class sequential ansi serializable sealed nested public C + extends [System.Runtime]System.ValueType + implements class [System.Runtime]System.IEquatable`1, + [System.Runtime]System.Collections.IStructuralEquatable, + class [System.Runtime]System.IComparable`1, + [System.Runtime]System.IComparable, + [System.Runtime]System.Collections.IStructuralComparable + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field static assembly int32 x + .field static assembly int32 init@4 + .field assembly valuetype [System.Runtime]System.DateTime s + .method public hidebysig virtual final + instance int32 CompareTo(valuetype StaticInit_Struct01/C obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 27 (0x1b) + .maxstack 4 + .locals init (valuetype StaticInit_Struct01/C& V_0, + class [System.Runtime]System.Collections.IComparer V_1) + IL_0000: ldarga.s obj + IL_0002: stloc.0 + IL_0003: call class [System.Runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0008: stloc.1 + IL_0009: ldarg.0 + IL_000a: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_000f: ldloc.0 + IL_0010: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0015: call int32 [netstandard]System.DateTime::Compare(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_001a: ret + } // end of method C::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any StaticInit_Struct01/C + IL_0007: call instance int32 StaticInit_Struct01/C::CompareTo(valuetype StaticInit_Struct01/C) + IL_000c: ret + } // end of method C::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [System.Runtime]System.Collections.IComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 30 (0x1e) + .maxstack 4 + .locals init (valuetype StaticInit_Struct01/C V_0, + valuetype StaticInit_Struct01/C& V_1, + class [System.Runtime]System.Collections.IComparer V_2) + IL_0000: ldarg.1 + IL_0001: unbox.any StaticInit_Struct01/C + IL_0006: stloc.0 + IL_0007: ldloca.s V_0 + IL_0009: stloc.1 + IL_000a: ldarg.2 + IL_000b: stloc.2 + IL_000c: ldarg.0 + IL_000d: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0012: ldloc.1 + IL_0013: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0018: call int32 [netstandard]System.DateTime::Compare(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_001d: ret + } // end of method C::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 31 (0x1f) + .maxstack 7 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: ldc.i4 0x9e3779b9 + IL_0007: ldarg.1 + IL_0008: ldarg.0 + IL_0009: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_000e: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericHashWithComparerIntrinsic(class [System.Runtime]System.Collections.IEqualityComparer, + !!0) + IL_0013: ldloc.0 + IL_0014: ldc.i4.6 + IL_0015: shl + IL_0016: ldloc.0 + IL_0017: ldc.i4.2 + IL_0018: shr + IL_0019: add + IL_001a: add + IL_001b: add + IL_001c: stloc.0 + IL_001d: ldloc.0 + IL_001e: ret + } // end of method C::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [System.Runtime]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: call instance int32 StaticInit_Struct01/C::GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method C::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 45 (0x2d) + .maxstack 4 + .locals init (object V_0, + valuetype StaticInit_Struct01/C V_1, + valuetype StaticInit_Struct01/C& V_2, + class [System.Runtime]System.Collections.IEqualityComparer V_3) + IL_0000: ldarg.1 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst StaticInit_Struct01/C + IL_0008: ldnull + IL_0009: cgt.un + IL_000b: brfalse.s IL_002b + + IL_000d: ldarg.1 + IL_000e: unbox.any StaticInit_Struct01/C + IL_0013: stloc.1 + IL_0014: ldloca.s V_1 + IL_0016: stloc.2 + IL_0017: ldarg.2 + IL_0018: stloc.3 + IL_0019: ldarg.0 + IL_001a: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_001f: ldloc.2 + IL_0020: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0025: call bool [netstandard]System.DateTime::Equals(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_002a: ret + + IL_002b: ldc.i4.0 + IL_002c: ret + } // end of method C::Equals + + .method public specialname rtspecialname + instance void .ctor(valuetype [System.Runtime]System.DateTime s) cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0007: ret + } // end of method C::.ctor + + .method assembly static int32 f() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 38 (0x26) + .maxstack 8 + IL_0000: nop + IL_0001: volatile. + IL_0003: ldsfld int32 StaticInit_Struct01/C::init@4 + IL_0008: ldc.i4.1 + IL_0009: bge.s IL_0014 + + IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_0010: nop + IL_0011: nop + IL_0012: br.s IL_0015 + + IL_0014: nop + IL_0015: ldsfld int32 StaticInit_Struct01/C::x + IL_001a: ldstr "2" + IL_001f: callvirt instance int32 [System.Runtime]System.String::get_Length() + IL_0024: add + IL_0025: ret + } // end of method C::f + + .method public hidebysig virtual final + instance bool Equals(valuetype StaticInit_Struct01/C obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 4 + .locals init (valuetype StaticInit_Struct01/C& V_0) + IL_0000: ldarga.s obj + IL_0002: stloc.0 + IL_0003: ldarg.0 + IL_0004: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_0009: ldloc.0 + IL_000a: ldfld valuetype [System.Runtime]System.DateTime StaticInit_Struct01/C::s + IL_000f: call bool [netstandard]System.DateTime::Equals(valuetype [netstandard]System.DateTime, + valuetype [netstandard]System.DateTime) + IL_0014: ret + } // end of method C::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 30 (0x1e) + .maxstack 4 + .locals init (object V_0, + valuetype StaticInit_Struct01/C V_1) + IL_0000: ldarg.1 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst StaticInit_Struct01/C + IL_0008: ldnull + IL_0009: cgt.un + IL_000b: brfalse.s IL_001c + + IL_000d: ldarg.1 + IL_000e: unbox.any StaticInit_Struct01/C + IL_0013: stloc.1 + IL_0014: ldarg.0 + IL_0015: ldloc.1 + IL_0016: call instance bool StaticInit_Struct01/C::Equals(valuetype StaticInit_Struct01/C) + IL_001b: ret + + IL_001c: ldc.i4.0 + IL_001d: ret + } // end of method C::Equals + + .method private specialname rtspecialname static + void .cctor() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$StaticInit_Struct01::init@ + IL_0006: ldsfld int32 ''.$StaticInit_Struct01::init@ + IL_000b: pop + IL_000c: ret + } // end of method C::.cctor + + } // end of class C + +} // end of class StaticInit_Struct01 + +.class private abstract auto ansi sealed ''.$StaticInit_Struct01 + extends [System.Runtime]System.Object +{ + .field static assembly int32 init@ + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .method public static void main@() cil managed + { + .entrypoint + // Code size 24 (0x18) + .maxstack 8 + IL_0000: ldstr "1" + IL_0005: callvirt instance int32 [System.Runtime]System.String::get_Length() + IL_000a: stsfld int32 StaticInit_Struct01/C::x + IL_000f: ldc.i4.1 + IL_0010: volatile. + IL_0012: stsfld int32 StaticInit_Struct01/C::init@4 + IL_0017: ret + } // end of method $StaticInit_Struct01::main@ + +} // end of class ''.$StaticInit_Struct01 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\StaticInit\StaticInit_Struct01_fs\StaticInit_Struct01.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/env.lst b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/env.lst similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/env.lst rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/env.lst diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch.fs new file mode 100644 index 0000000000000000000000000000000000000000..bd22ce39faa9526fb52080324e9892ae79de084f --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch.fs @@ -0,0 +1,73 @@ +namespace FSharp.Compiler.ComponentTests.EmittedIL + +open Xunit +open System.IO +open FSharp.Test +open FSharp.Test.Compiler + +module SteppingMatch = + + let verifyCompilation compilation = + compilation + |> withOptions [ "--test:EmitFeeFeeAs100001" ] + |> asExe + |> withNoOptimize + |> withEmbeddedPdb + |> withEmbedAllSource + |> ignoreWarnings + |> verifyILBaseline + + + // SOURCE=SteppingMatch01.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch01.dll" # SteppingMatch01.fs + [] + let ``SteppingMatch01_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=SteppingMatch02.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch02.dll" # SteppingMatch02.fs + [] + let ``SteppingMatch02_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=SteppingMatch03.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch03.dll" # SteppingMatch03.fs + [] + let ``SteppingMatch03_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=SteppingMatch04.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch04.dll" # SteppingMatch04.fs + [] + let ``SteppingMatch04_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=SteppingMatch05.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch05.dll" # SteppingMatch05.fs + [] + let ``SteppingMatch05_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=SteppingMatch06.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch06.dll" # SteppingMatch06.fs - + [] + let ``SteppingMatch06_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=SteppingMatch07.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch07.dll" # SteppingMatch07.fs - + [] + let ``SteppingMatch07_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=SteppingMatch08.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch08.dll" # SteppingMatch08.fs + [] + let ``SteppingMatch08_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=SteppingMatch09.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch09.dll" # SteppingMatch09.fs + [] + let ``SteppingMatch09_fs`` compilation = + compilation + |> verifyCompilation diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch01.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch01.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch01.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.net472.debug.bsl similarity index 71% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch01.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.net472.debug.bsl index 090ace0a0d5d796f7c4e2a6a81ff2bfd04beb755..f914513d1d6137275899a1dcaebb8ce83a18f383 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch01.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.net472.debug.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly SteppingMatch01 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.SteppingMatch01 { - // Offset: 0x00000000 Length: 0x00000210 + // Offset: 0x00000000 Length: 0x00000248 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch01 created } .mresource public FSharpOptimizationData.SteppingMatch01 { - // Offset: 0x00000218 Length: 0x0000007A + // Offset: 0x00000250 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch01 created } -.module SteppingMatch01.dll -// MVID: {611C4D99-ABFD-13F6-A745-0383994D1C61} +.module SteppingMatch01.exe +// MVID: {624CDC8C-9289-5BFF-A745-03838CDC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05320000 +// Image base: 0x03D60000 // =============== CLASS MEMBERS DECLARATION =================== @@ -55,34 +56,27 @@ { // Code size 48 (0x30) .maxstack 3 - .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, - [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_1, - [2] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_2) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch01.fs' + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_2) IL_0000: ldarg.0 IL_0001: stloc.0 - .line 100001,100001 : 0,0 '' IL_0002: ldloc.0 IL_0003: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 IL_0008: brfalse.s IL_000c IL_000a: br.s IL_001e - .line 100001,100001 : 0,0 '' IL_000c: ldloc.0 IL_000d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 IL_0012: stloc.1 - .line 7,7 : 13,35 '' IL_0013: ldstr "A" IL_0018: call void [mscorlib]System.Console::WriteLine(string) IL_001d: ret - .line 100001,100001 : 0,0 '' IL_001e: ldloc.0 IL_001f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 IL_0024: stloc.2 - .line 9,9 : 13,35 '' IL_0025: ldstr "B" IL_002a: call void [mscorlib]System.Console::WriteLine(string) IL_002f: ret @@ -93,9 +87,18 @@ .class private abstract auto ansi sealed ''.$SteppingMatch01 extends [mscorlib]System.Object { + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch01::main@ + } // end of class ''.$SteppingMatch01 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SteppingMatch\SteppingMatch01_fs\SteppingMatch01.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.net472.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.net472.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..e37ed736041371e13c4494ae125c1cf8c24b0c43 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.net472.release.bsl @@ -0,0 +1,104 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch01 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch01 +{ + // Offset: 0x00000000 Length: 0x0000024C + // WARNING: managed resource file FSharpSignatureData.SteppingMatch01 created +} +.mresource public FSharpOptimizationData.SteppingMatch01 +{ + // Offset: 0x00000250 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch01 created +} +.module SteppingMatch01.exe +// MVID: {624CDA9B-9289-5BFF-A745-03839BDA4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x03A50000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch01 + 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 ) + .method public static void funcA(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 n) cil managed + { + // Code size 48 (0x30) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_2) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 + IL_0008: brfalse.s IL_000c + + IL_000a: br.s IL_001e + + IL_000c: ldloc.0 + IL_000d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 + IL_0012: stloc.1 + IL_0013: ldstr "A" + IL_0018: call void [mscorlib]System.Console::WriteLine(string) + IL_001d: ret + + IL_001e: ldloc.0 + IL_001f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 + IL_0024: stloc.2 + IL_0025: ldstr "B" + IL_002a: call void [mscorlib]System.Console::WriteLine(string) + IL_002f: ret + } // end of method SteppingMatch01::funcA + +} // end of class SteppingMatch01 + +.class private abstract auto ansi sealed ''.$SteppingMatch01 + extends [mscorlib]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch01::main@ + +} // end of class ''.$SteppingMatch01 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SteppingMatch\SteppingMatch01_fs\SteppingMatch01.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.netcore.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..3d05457521c42940efd6704a228d342307816a9f --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.netcore.debug.bsl @@ -0,0 +1,109 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch01 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch01 +{ + // Offset: 0x00000000 Length: 0x00000248 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch01 created +} +.mresource public FSharpOptimizationData.SteppingMatch01 +{ + // Offset: 0x00000250 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch01 created +} +.module SteppingMatch01.exe +// MVID: {624CDD14-F1C0-9BD5-A745-038314DD4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x00000142F1BC0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch01 + extends [System.Runtime]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 ) + .method public static void funcA(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 n) cil managed + { + // Code size 48 (0x30) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_2) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 + IL_0008: brfalse.s IL_000c + + IL_000a: br.s IL_001e + + IL_000c: ldloc.0 + IL_000d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 + IL_0012: stloc.1 + IL_0013: ldstr "A" + IL_0018: call void [System.Console]System.Console::WriteLine(string) + IL_001d: ret + + IL_001e: ldloc.0 + IL_001f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 + IL_0024: stloc.2 + IL_0025: ldstr "B" + IL_002a: call void [System.Console]System.Console::WriteLine(string) + IL_002f: ret + } // end of method SteppingMatch01::funcA + +} // end of class SteppingMatch01 + +.class private abstract auto ansi sealed ''.$SteppingMatch01 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch01::main@ + +} // end of class ''.$SteppingMatch01 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch01_fs\SteppingMatch01.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.netcore.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..c031677aedf386907ca7517050f24a9cfceaa05f --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch01.fs.il.netcore.release.bsl @@ -0,0 +1,109 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch01 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch01 +{ + // Offset: 0x00000000 Length: 0x0000024C + // WARNING: managed resource file FSharpSignatureData.SteppingMatch01 created +} +.mresource public FSharpOptimizationData.SteppingMatch01 +{ + // Offset: 0x00000250 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch01 created +} +.module SteppingMatch01.exe +// MVID: {624CDB59-7853-2604-A745-038359DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x000001B4FB060000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch01 + extends [System.Runtime]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 ) + .method public static void funcA(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 n) cil managed + { + // Code size 48 (0x30) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_2) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 + IL_0008: brfalse.s IL_000c + + IL_000a: br.s IL_001e + + IL_000c: ldloc.0 + IL_000d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 + IL_0012: stloc.1 + IL_0013: ldstr "A" + IL_0018: call void [System.Console]System.Console::WriteLine(string) + IL_001d: ret + + IL_001e: ldloc.0 + IL_001f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 + IL_0024: stloc.2 + IL_0025: ldstr "B" + IL_002a: call void [System.Console]System.Console::WriteLine(string) + IL_002f: ret + } // end of method SteppingMatch01::funcA + +} // end of class SteppingMatch01 + +.class private abstract auto ansi sealed ''.$SteppingMatch01 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch01::main@ + +} // end of class ''.$SteppingMatch01 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch01_fs\SteppingMatch01.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch02.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch02.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch02.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.net472.debug.bsl similarity index 71% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch02.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.net472.debug.bsl index d29ae57f6518893de55ebc867279f7c8df4acadc..6f82e3bd30ac3e24a6b6d714e505d7bb2e288fa5 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch02.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.net472.debug.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly SteppingMatch02 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.SteppingMatch02 { - // Offset: 0x00000000 Length: 0x00000210 + // Offset: 0x00000000 Length: 0x00000248 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch02 created } .mresource public FSharpOptimizationData.SteppingMatch02 { - // Offset: 0x00000218 Length: 0x0000007A + // Offset: 0x00000250 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch02 created } -.module SteppingMatch02.dll -// MVID: {611C4D99-CAC2-C63D-A745-0383994D1C61} +.module SteppingMatch02.exe +// MVID: {624CDC8C-9A84-5395-A745-03838CDC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06CD0000 +// Image base: 0x02970000 // =============== CLASS MEMBERS DECLARATION =================== @@ -55,34 +56,27 @@ { // Code size 48 (0x30) .maxstack 3 - .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, - [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_1, - [2] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_2) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch02.fs' + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_2) IL_0000: ldarg.0 IL_0001: stloc.0 - .line 100001,100001 : 0,0 '' IL_0002: ldloc.0 IL_0003: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 IL_0008: brfalse.s IL_000c IL_000a: br.s IL_001e - .line 100001,100001 : 0,0 '' IL_000c: ldloc.0 IL_000d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 IL_0012: stloc.1 - .line 7,7 : 13,35 '' IL_0013: ldstr "B" IL_0018: call void [mscorlib]System.Console::WriteLine(string) IL_001d: ret - .line 100001,100001 : 0,0 '' IL_001e: ldloc.0 IL_001f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 IL_0024: stloc.2 - .line 9,9 : 13,35 '' IL_0025: ldstr "A" IL_002a: call void [mscorlib]System.Console::WriteLine(string) IL_002f: ret @@ -93,9 +87,18 @@ .class private abstract auto ansi sealed ''.$SteppingMatch02 extends [mscorlib]System.Object { + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch02::main@ + } // end of class ''.$SteppingMatch02 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SteppingMatch\SteppingMatch02_fs\SteppingMatch02.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.net472.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.net472.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..77a8d3d64f9883942eda85f8d7a62b879dcbf8d7 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.net472.release.bsl @@ -0,0 +1,104 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch02 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch02 +{ + // Offset: 0x00000000 Length: 0x0000024C + // WARNING: managed resource file FSharpSignatureData.SteppingMatch02 created +} +.mresource public FSharpOptimizationData.SteppingMatch02 +{ + // Offset: 0x00000250 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch02 created +} +.module SteppingMatch02.exe +// MVID: {624CDAC7-9A84-5395-A745-0383C7DA4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x05480000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch02 + 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 ) + .method public static void funcB(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 n) cil managed + { + // Code size 48 (0x30) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_2) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 + IL_0008: brfalse.s IL_000c + + IL_000a: br.s IL_001e + + IL_000c: ldloc.0 + IL_000d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 + IL_0012: stloc.1 + IL_0013: ldstr "B" + IL_0018: call void [mscorlib]System.Console::WriteLine(string) + IL_001d: ret + + IL_001e: ldloc.0 + IL_001f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 + IL_0024: stloc.2 + IL_0025: ldstr "A" + IL_002a: call void [mscorlib]System.Console::WriteLine(string) + IL_002f: ret + } // end of method SteppingMatch02::funcB + +} // end of class SteppingMatch02 + +.class private abstract auto ansi sealed ''.$SteppingMatch02 + extends [mscorlib]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch02::main@ + +} // end of class ''.$SteppingMatch02 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SteppingMatch\SteppingMatch02_fs\SteppingMatch02.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.netcore.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..9aeb82d7a0c08cf8b33abd7033f3204d5063c9cd --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.netcore.debug.bsl @@ -0,0 +1,109 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch02 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch02 +{ + // Offset: 0x00000000 Length: 0x00000248 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch02 created +} +.mresource public FSharpOptimizationData.SteppingMatch02 +{ + // Offset: 0x00000250 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch02 created +} +.module SteppingMatch02.exe +// MVID: {624CDD14-4AE5-CD77-A745-038314DD4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x000002F67A160000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch02 + extends [System.Runtime]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 ) + .method public static void funcB(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 n) cil managed + { + // Code size 48 (0x30) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_2) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 + IL_0008: brfalse.s IL_000c + + IL_000a: br.s IL_001e + + IL_000c: ldloc.0 + IL_000d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 + IL_0012: stloc.1 + IL_0013: ldstr "B" + IL_0018: call void [System.Console]System.Console::WriteLine(string) + IL_001d: ret + + IL_001e: ldloc.0 + IL_001f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 + IL_0024: stloc.2 + IL_0025: ldstr "A" + IL_002a: call void [System.Console]System.Console::WriteLine(string) + IL_002f: ret + } // end of method SteppingMatch02::funcB + +} // end of class SteppingMatch02 + +.class private abstract auto ansi sealed ''.$SteppingMatch02 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch02::main@ + +} // end of class ''.$SteppingMatch02 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch02_fs\SteppingMatch02.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.netcore.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..849da5fd389a070f57685201618c34821b4b4312 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch02.fs.il.netcore.release.bsl @@ -0,0 +1,109 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch02 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch02 +{ + // Offset: 0x00000000 Length: 0x0000024C + // WARNING: managed resource file FSharpSignatureData.SteppingMatch02 created +} +.mresource public FSharpOptimizationData.SteppingMatch02 +{ + // Offset: 0x00000250 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch02 created +} +.module SteppingMatch02.exe +// MVID: {624CDB59-6232-1FC5-A745-038359DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x0000023327060000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch02 + extends [System.Runtime]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 ) + .method public static void funcB(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 n) cil managed + { + // Code size 48 (0x30) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_2) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 + IL_0008: brfalse.s IL_000c + + IL_000a: br.s IL_001e + + IL_000c: ldloc.0 + IL_000d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 + IL_0012: stloc.1 + IL_0013: ldstr "B" + IL_0018: call void [System.Console]System.Console::WriteLine(string) + IL_001d: ret + + IL_001e: ldloc.0 + IL_001f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 + IL_0024: stloc.2 + IL_0025: ldstr "A" + IL_002a: call void [System.Console]System.Console::WriteLine(string) + IL_002f: ret + } // end of method SteppingMatch02::funcB + +} // end of class SteppingMatch02 + +.class private abstract auto ansi sealed ''.$SteppingMatch02 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch02::main@ + +} // end of class ''.$SteppingMatch02 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch02_fs\SteppingMatch02.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch03.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch03.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch03.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.net472.debug.bsl similarity index 71% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch03.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.net472.debug.bsl index 224265a3987c5a74ee6de69f59dd1a1a005c5146..913eb7e74f71656e0c5ed90ea52beecb224e43f5 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch03.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.net472.debug.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly SteppingMatch03 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.SteppingMatch03 { - // Offset: 0x00000000 Length: 0x00000225 + // Offset: 0x00000000 Length: 0x0000025D + // WARNING: managed resource file FSharpSignatureData.SteppingMatch03 created } .mresource public FSharpOptimizationData.SteppingMatch03 { - // Offset: 0x00000230 Length: 0x0000007A + // Offset: 0x00000268 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch03 created } -.module SteppingMatch03.dll -// MVID: {611C4D99-4E87-D110-A745-0383994D1C61} +.module SteppingMatch03.exe +// MVID: {624CDC8C-3513-1919-A745-03838CDC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06F80000 +// Image base: 0x04DF0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -55,16 +56,13 @@ { // Code size 75 (0x4b) .maxstack 3 - .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, - [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, - [2] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_2, - [3] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, - [4] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_4) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch03.fs' + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_4) IL_0000: ldarg.0 IL_0001: stloc.0 - .line 100001,100001 : 0,0 '' IL_0002: ldloc.0 IL_0003: stloc.1 IL_0004: ldloc.1 @@ -75,29 +73,23 @@ IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 IL_0012: brtrue.s IL_0038 - .line 100001,100001 : 0,0 '' IL_0014: ldloc.0 IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 IL_001a: stloc.2 - .line 7,7 : 13,35 '' IL_001b: ldstr "A" IL_0020: call void [mscorlib]System.Console::WriteLine(string) IL_0025: ret - .line 100001,100001 : 0,0 '' IL_0026: ldloc.0 IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 IL_002c: stloc.3 - .line 9,9 : 13,35 '' IL_002d: ldstr "B" IL_0032: call void [mscorlib]System.Console::WriteLine(string) IL_0037: ret - .line 100001,100001 : 0,0 '' IL_0038: ldloc.0 IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 IL_003e: stloc.s V_4 - .line 11,11 : 13,35 '' IL_0040: ldstr "C" IL_0045: call void [mscorlib]System.Console::WriteLine(string) IL_004a: ret @@ -108,9 +100,18 @@ .class private abstract auto ansi sealed ''.$SteppingMatch03 extends [mscorlib]System.Object { + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch03::main@ + } // end of class ''.$SteppingMatch03 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SteppingMatch\SteppingMatch03_fs\SteppingMatch03.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.net472.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.net472.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..55325035dad24da8ce51520e40a4e3c490b11b4c --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.net472.release.bsl @@ -0,0 +1,117 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch03 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch03 +{ + // Offset: 0x00000000 Length: 0x00000261 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch03 created +} +.mresource public FSharpOptimizationData.SteppingMatch03 +{ + // Offset: 0x00000268 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch03 created +} +.module SteppingMatch03.exe +// MVID: {624CDAEC-3513-1919-A745-0383ECDA4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x03140000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch03 + 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 ) + .method public static void funcC(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed + { + // Code size 75 (0x4b) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_4) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: stloc.1 + IL_0004: ldloc.1 + IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_000a: brtrue.s IL_0026 + + IL_000c: ldloc.1 + IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_0012: brtrue.s IL_0038 + + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_001a: stloc.2 + IL_001b: ldstr "A" + IL_0020: call void [mscorlib]System.Console::WriteLine(string) + IL_0025: ret + + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_002c: stloc.3 + IL_002d: ldstr "B" + IL_0032: call void [mscorlib]System.Console::WriteLine(string) + IL_0037: ret + + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_003e: stloc.s V_4 + IL_0040: ldstr "C" + IL_0045: call void [mscorlib]System.Console::WriteLine(string) + IL_004a: ret + } // end of method SteppingMatch03::funcC + +} // end of class SteppingMatch03 + +.class private abstract auto ansi sealed ''.$SteppingMatch03 + extends [mscorlib]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch03::main@ + +} // end of class ''.$SteppingMatch03 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SteppingMatch\SteppingMatch03_fs\SteppingMatch03.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.netcore.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..61dbf81cdae6e74998a8db4f40c129f45758225f --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.netcore.debug.bsl @@ -0,0 +1,122 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch03 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch03 +{ + // Offset: 0x00000000 Length: 0x0000025D + // WARNING: managed resource file FSharpSignatureData.SteppingMatch03 created +} +.mresource public FSharpOptimizationData.SteppingMatch03 +{ + // Offset: 0x00000268 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch03 created +} +.module SteppingMatch03.exe +// MVID: {624CDD14-EAA6-E13B-A745-038314DD4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x00000201B96B0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch03 + extends [System.Runtime]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 ) + .method public static void funcC(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed + { + // Code size 75 (0x4b) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_4) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: stloc.1 + IL_0004: ldloc.1 + IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_000a: brtrue.s IL_0026 + + IL_000c: ldloc.1 + IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_0012: brtrue.s IL_0038 + + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_001a: stloc.2 + IL_001b: ldstr "A" + IL_0020: call void [System.Console]System.Console::WriteLine(string) + IL_0025: ret + + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_002c: stloc.3 + IL_002d: ldstr "B" + IL_0032: call void [System.Console]System.Console::WriteLine(string) + IL_0037: ret + + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_003e: stloc.s V_4 + IL_0040: ldstr "C" + IL_0045: call void [System.Console]System.Console::WriteLine(string) + IL_004a: ret + } // end of method SteppingMatch03::funcC + +} // end of class SteppingMatch03 + +.class private abstract auto ansi sealed ''.$SteppingMatch03 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch03::main@ + +} // end of class ''.$SteppingMatch03 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch03_fs\SteppingMatch03.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.netcore.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..ff5d01dbc74f962354606297ad372ce2aece2f37 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch03.fs.il.netcore.release.bsl @@ -0,0 +1,122 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch03 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch03 +{ + // Offset: 0x00000000 Length: 0x00000261 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch03 created +} +.mresource public FSharpOptimizationData.SteppingMatch03 +{ + // Offset: 0x00000268 Length: 0x0000007A + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch03 created +} +.module SteppingMatch03.exe +// MVID: {624CDB59-F09C-9D0A-A745-038359DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x0000024CBCE00000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch03 + extends [System.Runtime]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 ) + .method public static void funcC(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed + { + // Code size 75 (0x4b) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_4) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: stloc.1 + IL_0004: ldloc.1 + IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_000a: brtrue.s IL_0026 + + IL_000c: ldloc.1 + IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_0012: brtrue.s IL_0038 + + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_001a: stloc.2 + IL_001b: ldstr "A" + IL_0020: call void [System.Console]System.Console::WriteLine(string) + IL_0025: ret + + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_002c: stloc.3 + IL_002d: ldstr "B" + IL_0032: call void [System.Console]System.Console::WriteLine(string) + IL_0037: ret + + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_003e: stloc.s V_4 + IL_0040: ldstr "C" + IL_0045: call void [System.Console]System.Console::WriteLine(string) + IL_004a: ret + } // end of method SteppingMatch03::funcC + +} // end of class SteppingMatch03 + +.class private abstract auto ansi sealed ''.$SteppingMatch03 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch03::main@ + +} // end of class ''.$SteppingMatch03 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch03_fs\SteppingMatch03.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch04.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch04.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch04.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.net472.debug.bsl similarity index 71% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch04.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.net472.debug.bsl index b1afa2fc791ec7d81cfa373d5119d3074ab1ebf2..af91b91f7cc91acef005168822679c0a4f84d66f 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch04.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.net472.debug.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly SteppingMatch04 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.SteppingMatch04 { - // Offset: 0x00000000 Length: 0x00000226 + // Offset: 0x00000000 Length: 0x0000025E + // WARNING: managed resource file FSharpSignatureData.SteppingMatch04 created } .mresource public FSharpOptimizationData.SteppingMatch04 { - // Offset: 0x00000230 Length: 0x0000007B + // Offset: 0x00000268 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch04 created } -.module SteppingMatch04.dll -// MVID: {611C4D99-6D4C-8357-A745-0383994D1C61} +.module SteppingMatch04.exe +// MVID: {624CDC8C-3D0E-10AF-A745-03838CDC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06E30000 +// Image base: 0x031D0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -55,16 +56,13 @@ { // Code size 75 (0x4b) .maxstack 3 - .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, - [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, - [2] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_2, - [3] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_3, - [4] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch04.fs' + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) IL_0000: ldarg.0 IL_0001: stloc.0 - .line 100001,100001 : 0,0 '' IL_0002: ldloc.0 IL_0003: stloc.1 IL_0004: ldloc.1 @@ -75,29 +73,23 @@ IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 IL_0012: brtrue.s IL_0038 - .line 100001,100001 : 0,0 '' IL_0014: ldloc.0 IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 IL_001a: stloc.2 - .line 7,7 : 13,35 '' IL_001b: ldstr "B" IL_0020: call void [mscorlib]System.Console::WriteLine(string) IL_0025: ret - .line 100001,100001 : 0,0 '' IL_0026: ldloc.0 IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 IL_002c: stloc.3 - .line 9,9 : 13,35 '' IL_002d: ldstr "C" IL_0032: call void [mscorlib]System.Console::WriteLine(string) IL_0037: ret - .line 100001,100001 : 0,0 '' IL_0038: ldloc.0 IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 IL_003e: stloc.s V_4 - .line 11,11 : 13,35 '' IL_0040: ldstr "A" IL_0045: call void [mscorlib]System.Console::WriteLine(string) IL_004a: ret @@ -108,9 +100,18 @@ .class private abstract auto ansi sealed ''.$SteppingMatch04 extends [mscorlib]System.Object { + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch04::main@ + } // end of class ''.$SteppingMatch04 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SteppingMatch\SteppingMatch04_fs\SteppingMatch04.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.net472.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.net472.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..930e8fee26682d1336ed7f7b4c32c782244ddb52 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.net472.release.bsl @@ -0,0 +1,117 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch04 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch04 +{ + // Offset: 0x00000000 Length: 0x00000262 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch04 created +} +.mresource public FSharpOptimizationData.SteppingMatch04 +{ + // Offset: 0x00000268 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch04 created +} +.module SteppingMatch04.exe +// MVID: {624CDBC5-3D0E-10AF-A745-0383C5DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x03020000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch04 + 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 ) + .method public static void funcC2(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed + { + // Code size 75 (0x4b) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: stloc.1 + IL_0004: ldloc.1 + IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_000a: brtrue.s IL_0026 + + IL_000c: ldloc.1 + IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_0012: brtrue.s IL_0038 + + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_001a: stloc.2 + IL_001b: ldstr "B" + IL_0020: call void [mscorlib]System.Console::WriteLine(string) + IL_0025: ret + + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_002c: stloc.3 + IL_002d: ldstr "C" + IL_0032: call void [mscorlib]System.Console::WriteLine(string) + IL_0037: ret + + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_003e: stloc.s V_4 + IL_0040: ldstr "A" + IL_0045: call void [mscorlib]System.Console::WriteLine(string) + IL_004a: ret + } // end of method SteppingMatch04::funcC2 + +} // end of class SteppingMatch04 + +.class private abstract auto ansi sealed ''.$SteppingMatch04 + extends [mscorlib]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch04::main@ + +} // end of class ''.$SteppingMatch04 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SteppingMatch\SteppingMatch04_fs\SteppingMatch04.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.netcore.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..0b31f053728749d8e30b44d504728f9062b95503 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.netcore.debug.bsl @@ -0,0 +1,122 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch04 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch04 +{ + // Offset: 0x00000000 Length: 0x0000025E + // WARNING: managed resource file FSharpSignatureData.SteppingMatch04 created +} +.mresource public FSharpOptimizationData.SteppingMatch04 +{ + // Offset: 0x00000268 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch04 created +} +.module SteppingMatch04.exe +// MVID: {624CDD14-12AC-A48A-A745-038314DD4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x0000029B55E50000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch04 + extends [System.Runtime]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 ) + .method public static void funcC2(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed + { + // Code size 75 (0x4b) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: stloc.1 + IL_0004: ldloc.1 + IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_000a: brtrue.s IL_0026 + + IL_000c: ldloc.1 + IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_0012: brtrue.s IL_0038 + + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_001a: stloc.2 + IL_001b: ldstr "B" + IL_0020: call void [System.Console]System.Console::WriteLine(string) + IL_0025: ret + + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_002c: stloc.3 + IL_002d: ldstr "C" + IL_0032: call void [System.Console]System.Console::WriteLine(string) + IL_0037: ret + + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_003e: stloc.s V_4 + IL_0040: ldstr "A" + IL_0045: call void [System.Console]System.Console::WriteLine(string) + IL_004a: ret + } // end of method SteppingMatch04::funcC2 + +} // end of class SteppingMatch04 + +.class private abstract auto ansi sealed ''.$SteppingMatch04 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch04::main@ + +} // end of class ''.$SteppingMatch04 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch04_fs\SteppingMatch04.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.netcore.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..76ed8c726c17b0b920740e1f5767ab28bc74ec98 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch04.fs.il.netcore.release.bsl @@ -0,0 +1,122 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch04 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch04 +{ + // Offset: 0x00000000 Length: 0x00000262 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch04 created +} +.mresource public FSharpOptimizationData.SteppingMatch04 +{ + // Offset: 0x00000268 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch04 created +} +.module SteppingMatch04.exe +// MVID: {624CDB59-43A3-A4A6-A745-038359DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x00000193B4A40000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch04 + extends [System.Runtime]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 ) + .method public static void funcC2(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed + { + // Code size 75 (0x4b) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: stloc.1 + IL_0004: ldloc.1 + IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_000a: brtrue.s IL_0026 + + IL_000c: ldloc.1 + IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_0012: brtrue.s IL_0038 + + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_001a: stloc.2 + IL_001b: ldstr "B" + IL_0020: call void [System.Console]System.Console::WriteLine(string) + IL_0025: ret + + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_002c: stloc.3 + IL_002d: ldstr "C" + IL_0032: call void [System.Console]System.Console::WriteLine(string) + IL_0037: ret + + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_003e: stloc.s V_4 + IL_0040: ldstr "A" + IL_0045: call void [System.Console]System.Console::WriteLine(string) + IL_004a: ret + } // end of method SteppingMatch04::funcC2 + +} // end of class SteppingMatch04 + +.class private abstract auto ansi sealed ''.$SteppingMatch04 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch04::main@ + +} // end of class ''.$SteppingMatch04 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch04_fs\SteppingMatch04.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch05.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch05.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch05.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.net472.debug.bsl similarity index 71% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch05.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.net472.debug.bsl index 948bd3d9f92ad6727383a52f657fe31958df3633..9fe333ea3d7a0ecb1e32b7fad13d8135174078b9 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch05.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.net472.debug.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly SteppingMatch05 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.SteppingMatch05 { - // Offset: 0x00000000 Length: 0x00000226 + // Offset: 0x00000000 Length: 0x0000025E + // WARNING: managed resource file FSharpSignatureData.SteppingMatch05 created } .mresource public FSharpOptimizationData.SteppingMatch05 { - // Offset: 0x00000230 Length: 0x0000007B + // Offset: 0x00000268 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch05 created } -.module SteppingMatch05.dll -// MVID: {611C4D99-30E9-4ADA-A745-0383994D1C61} +.module SteppingMatch05.exe +// MVID: {624CDD76-1775-92E3-A745-038376DD4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x064D0000 +// Image base: 0x03940000 // =============== CLASS MEMBERS DECLARATION =================== @@ -55,16 +56,13 @@ { // Code size 75 (0x4b) .maxstack 3 - .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, - [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, - [2] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_2, - [3] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, - [4] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch05.fs' + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) IL_0000: ldarg.0 IL_0001: stloc.0 - .line 100001,100001 : 0,0 '' IL_0002: ldloc.0 IL_0003: stloc.1 IL_0004: ldloc.1 @@ -75,29 +73,23 @@ IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 IL_0012: brtrue.s IL_0038 - .line 100001,100001 : 0,0 '' IL_0014: ldloc.0 IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 IL_001a: stloc.2 - .line 7,7 : 13,35 '' IL_001b: ldstr "C" IL_0020: call void [mscorlib]System.Console::WriteLine(string) IL_0025: ret - .line 100001,100001 : 0,0 '' IL_0026: ldloc.0 IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 IL_002c: stloc.3 - .line 9,9 : 13,35 '' IL_002d: ldstr "B" IL_0032: call void [mscorlib]System.Console::WriteLine(string) IL_0037: ret - .line 100001,100001 : 0,0 '' IL_0038: ldloc.0 IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 IL_003e: stloc.s V_4 - .line 11,11 : 13,35 '' IL_0040: ldstr "A" IL_0045: call void [mscorlib]System.Console::WriteLine(string) IL_004a: ret @@ -108,9 +100,18 @@ .class private abstract auto ansi sealed ''.$SteppingMatch05 extends [mscorlib]System.Object { + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch05::main@ + } // end of class ''.$SteppingMatch05 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SteppingMatch\SteppingMatch05_fs\SteppingMatch05.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.net472.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.net472.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..7395039bfdd287d173f26df011649b928254ccdc --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.net472.release.bsl @@ -0,0 +1,117 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch05 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch05 +{ + // Offset: 0x00000000 Length: 0x00000262 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch05 created +} +.mresource public FSharpOptimizationData.SteppingMatch05 +{ + // Offset: 0x00000268 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch05 created +} +.module SteppingMatch05.exe +// MVID: {624CDB11-1775-92E3-A745-038311DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x03380000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch05 + 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 ) + .method public static void funcC3(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed + { + // Code size 75 (0x4b) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: stloc.1 + IL_0004: ldloc.1 + IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_000a: brtrue.s IL_0026 + + IL_000c: ldloc.1 + IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_0012: brtrue.s IL_0038 + + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_001a: stloc.2 + IL_001b: ldstr "C" + IL_0020: call void [mscorlib]System.Console::WriteLine(string) + IL_0025: ret + + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_002c: stloc.3 + IL_002d: ldstr "B" + IL_0032: call void [mscorlib]System.Console::WriteLine(string) + IL_0037: ret + + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_003e: stloc.s V_4 + IL_0040: ldstr "A" + IL_0045: call void [mscorlib]System.Console::WriteLine(string) + IL_004a: ret + } // end of method SteppingMatch05::funcC3 + +} // end of class SteppingMatch05 + +.class private abstract auto ansi sealed ''.$SteppingMatch05 + extends [mscorlib]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch05::main@ + +} // end of class ''.$SteppingMatch05 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SteppingMatch\SteppingMatch05_fs\SteppingMatch05.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.netcore.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..17a24496f2c87c8c393bcc6ef3ea7d035085adc2 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.netcore.debug.bsl @@ -0,0 +1,122 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch05 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch05 +{ + // Offset: 0x00000000 Length: 0x0000025E + // WARNING: managed resource file FSharpSignatureData.SteppingMatch05 created +} +.mresource public FSharpOptimizationData.SteppingMatch05 +{ + // Offset: 0x00000268 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch05 created +} +.module SteppingMatch05.exe +// MVID: {624CDD14-5EE6-B2C2-A745-038314DD4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x000002ACBFE30000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch05 + extends [System.Runtime]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 ) + .method public static void funcC3(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed + { + // Code size 75 (0x4b) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: stloc.1 + IL_0004: ldloc.1 + IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_000a: brtrue.s IL_0026 + + IL_000c: ldloc.1 + IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_0012: brtrue.s IL_0038 + + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_001a: stloc.2 + IL_001b: ldstr "C" + IL_0020: call void [System.Console]System.Console::WriteLine(string) + IL_0025: ret + + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_002c: stloc.3 + IL_002d: ldstr "B" + IL_0032: call void [System.Console]System.Console::WriteLine(string) + IL_0037: ret + + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_003e: stloc.s V_4 + IL_0040: ldstr "A" + IL_0045: call void [System.Console]System.Console::WriteLine(string) + IL_004a: ret + } // end of method SteppingMatch05::funcC3 + +} // end of class SteppingMatch05 + +.class private abstract auto ansi sealed ''.$SteppingMatch05 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch05::main@ + +} // end of class ''.$SteppingMatch05 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch05_fs\SteppingMatch05.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.netcore.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..76138b29c5ade8811afe392d165d9130160adf18 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch05.fs.il.netcore.release.bsl @@ -0,0 +1,122 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch05 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch05 +{ + // Offset: 0x00000000 Length: 0x00000262 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch05 created +} +.mresource public FSharpOptimizationData.SteppingMatch05 +{ + // Offset: 0x00000268 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch05 created +} +.module SteppingMatch05.exe +// MVID: {624CDB59-0DE3-23D3-A745-038359DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x000001F9A5AE0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch05 + extends [System.Runtime]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 ) + .method public static void funcC3(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed + { + // Code size 75 (0x4b) + .maxstack 3 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: stloc.1 + IL_0004: ldloc.1 + IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_000a: brtrue.s IL_0026 + + IL_000c: ldloc.1 + IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_0012: brtrue.s IL_0038 + + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_001a: stloc.2 + IL_001b: ldstr "C" + IL_0020: call void [System.Console]System.Console::WriteLine(string) + IL_0025: ret + + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_002c: stloc.3 + IL_002d: ldstr "B" + IL_0032: call void [System.Console]System.Console::WriteLine(string) + IL_0037: ret + + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_003e: stloc.s V_4 + IL_0040: ldstr "A" + IL_0045: call void [System.Console]System.Console::WriteLine(string) + IL_004a: ret + } // end of method SteppingMatch05::funcC3 + +} // end of class SteppingMatch05 + +.class private abstract auto ansi sealed ''.$SteppingMatch05 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch05::main@ + +} // end of class ''.$SteppingMatch05 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch05_fs\SteppingMatch05.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch06.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch06.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch06.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.debug.bsl similarity index 89% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch06.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.debug.bsl index 7787966afd74b31166b63e6013ae7cafda666947..e42c7b6235105daf14b87b130f2aad4e65550c34 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch06.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.debug.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.SteppingMatch06 { - // Offset: 0x00000000 Length: 0x00000675 + // Offset: 0x00000000 Length: 0x000006AD + // WARNING: managed resource file FSharpSignatureData.SteppingMatch06 created } .mresource public FSharpOptimizationData.SteppingMatch06 { - // Offset: 0x00000680 Length: 0x000001D9 + // Offset: 0x000006B8 Length: 0x000001D9 + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch06 created } -.module SteppingMatch06.dll -// MVID: {6220E156-4FAE-FD21-A745-038356E12062} +.module SteppingMatch06.exe +// MVID: {624CDC8C-1F70-8A79-A745-03838CDC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06930000 +// Image base: 0x053D0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -207,52 +208,41 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 39 (0x27) .maxstack 4 - .locals init ([0] int32 V_0, - [1] int32 V_1) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch06.fs' + .locals init (int32 V_0, + int32 V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0020 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: ldfld int32 SteppingMatch06/Discr::_tag IL_000c: stloc.0 IL_000d: ldarg.1 IL_000e: ldfld int32 SteppingMatch06/Discr::_tag IL_0013: stloc.1 - .line 100001,100001 : 0,0 '' IL_0014: ldloc.0 IL_0015: ldloc.1 IL_0016: bne.un.s IL_001a - .line 100001,100001 : 0,0 '' IL_0018: ldc.i4.0 IL_0019: ret - .line 100001,100001 : 0,0 '' IL_001a: ldloc.0 IL_001b: ldloc.1 IL_001c: sub IL_001d: ret - .line 100001,100001 : 0,0 '' IL_001e: ldc.i4.1 IL_001f: ret - .line 100001,100001 : 0,0 '' IL_0020: ldarg.1 IL_0021: brfalse.s IL_0025 - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.m1 IL_0024: ret - .line 100001,100001 : 0,0 '' IL_0025: ldc.i4.0 IL_0026: ret } // end of method Discr::CompareTo @@ -277,58 +267,47 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] class SteppingMatch06/Discr V_0, - [1] int32 V_1, - [2] int32 V_2) - .line 100001,100001 : 0,0 '' + .locals init (class SteppingMatch06/Discr V_0, + int32 V_1, + int32 V_2) IL_0000: ldarg.1 IL_0001: unbox.any SteppingMatch06/Discr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any SteppingMatch06/Discr IL_0010: brfalse.s IL_002a - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: ldfld int32 SteppingMatch06/Discr::_tag IL_0018: stloc.1 IL_0019: ldloc.0 IL_001a: ldfld int32 SteppingMatch06/Discr::_tag IL_001f: stloc.2 - .line 100001,100001 : 0,0 '' IL_0020: ldloc.1 IL_0021: ldloc.2 IL_0022: bne.un.s IL_0026 - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret - .line 100001,100001 : 0,0 '' IL_0026: ldloc.1 IL_0027: ldloc.2 IL_0028: sub IL_0029: ret - .line 100001,100001 : 0,0 '' IL_002a: ldc.i4.1 IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldarg.1 IL_002d: unbox.any SteppingMatch06/Discr IL_0032: brfalse.s IL_0036 - .line 100001,100001 : 0,0 '' IL_0034: ldc.i4.m1 IL_0035: ret - .line 100001,100001 : 0,0 '' IL_0036: ldc.i4.0 IL_0037: ret } // end of method Discr::CompareTo @@ -339,19 +318,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 14 (0xe) .maxstack 3 - .locals init ([0] int32 V_0) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_000c - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldarg.0 IL_0006: ldfld int32 SteppingMatch06/Discr::_tag IL_000b: ret - .line 100001,100001 : 0,0 '' IL_000c: ldc.i4.0 IL_000d: ret } // end of method Discr::GetHashCode @@ -375,23 +351,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 44 (0x2c) .maxstack 4 - .locals init ([0] class SteppingMatch06/Discr V_0, - [1] class SteppingMatch06/Discr V_1, - [2] int32 V_2, - [3] int32 V_3) - .line 100001,100001 : 0,0 '' + .locals init (class SteppingMatch06/Discr V_0, + class SteppingMatch06/Discr V_1, + int32 V_2, + int32 V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst SteppingMatch06/Discr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0022 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 IL_000f: ldarg.0 @@ -400,17 +372,14 @@ IL_0016: ldloc.1 IL_0017: ldfld int32 SteppingMatch06/Discr::_tag IL_001c: stloc.3 - .line 100001,100001 : 0,0 '' IL_001d: ldloc.2 IL_001e: ldloc.3 IL_001f: ceq IL_0021: ret - .line 100001,100001 : 0,0 '' IL_0022: ldc.i4.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldarg.1 IL_0025: ldnull IL_0026: cgt.un @@ -425,34 +394,28 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 35 (0x23) .maxstack 4 - .locals init ([0] int32 V_0, - [1] int32 V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + int32 V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_0019 - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: ldfld int32 SteppingMatch06/Discr::_tag IL_000c: stloc.0 IL_000d: ldarg.1 IL_000e: ldfld int32 SteppingMatch06/Discr::_tag IL_0013: stloc.1 - .line 100001,100001 : 0,0 '' IL_0014: ldloc.0 IL_0015: ldloc.1 IL_0016: ceq IL_0018: ret - .line 100001,100001 : 0,0 '' IL_0019: ldc.i4.0 IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldarg.1 IL_001c: ldnull IL_001d: cgt.un @@ -467,22 +430,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class SteppingMatch06/Discr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class SteppingMatch06/Discr V_0) IL_0000: ldarg.1 IL_0001: isinst SteppingMatch06/Discr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool SteppingMatch06/Discr::Equals(class SteppingMatch06/Discr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Discr::Equals @@ -530,9 +489,7 @@ { // Code size 34 (0x22) .maxstack 8 - .line 6,6 : 9,21 '' IL_0000: nop - .line 100001,100001 : 0,0 '' IL_0001: ldarg.0 IL_0002: call instance int32 SteppingMatch06/Discr::get_Tag() IL_0007: ldc.i4.0 @@ -540,12 +497,10 @@ IL_000a: br.s IL_0017 - .line 8,8 : 13,35 '' IL_000c: ldstr "B" IL_0011: call void [mscorlib]System.Console::WriteLine(string) IL_0016: ret - .line 10,10 : 13,35 '' IL_0017: ldstr "A" IL_001c: call void [mscorlib]System.Console::WriteLine(string) IL_0021: ret @@ -556,9 +511,18 @@ .class private abstract auto ansi sealed ''.$SteppingMatch06 extends [mscorlib]System.Object { + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch06::main@ + } // end of class ''.$SteppingMatch06 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SteppingMatch\SteppingMatch06_fs\SteppingMatch06.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..5ffc41a960c07d7cb5c4042cfe3d499bcc2a0cb1 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.release.bsl @@ -0,0 +1,528 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch06 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch06 +{ + // Offset: 0x00000000 Length: 0x000006B1 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch06 created +} +.mresource public FSharpOptimizationData.SteppingMatch06 +{ + // Offset: 0x000006B8 Length: 0x000001D9 + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch06 created +} +.module SteppingMatch06.exe +// MVID: {624CDB11-1F70-8A79-A745-038311DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x03770000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch06 + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Discr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .class abstract auto ansi sealed nested public Tags + extends [mscorlib]System.Object + { + .field public static literal int32 CaseA = int32(0x00000000) + .field public static literal int32 CaseB = int32(0x00000001) + } // end of class Tags + + .field assembly initonly int32 _tag + .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 static assembly initonly class SteppingMatch06/Discr _unique_CaseA + .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 static assembly initonly class SteppingMatch06/Discr _unique_CaseB + .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 ) + .method private specialname rtspecialname static + void .cctor() cil managed + { + // Code size 23 (0x17) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void SteppingMatch06/Discr::.ctor(int32) + IL_0006: stsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseA + IL_000b: ldc.i4.1 + IL_000c: newobj instance void SteppingMatch06/Discr::.ctor(int32) + IL_0011: stsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseB + IL_0016: ret + } // end of method Discr::.cctor + + .method assembly specialname rtspecialname + instance void .ctor(int32 _tag) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 SteppingMatch06/Discr::_tag + IL_000d: ret + } // end of method Discr::.ctor + + .method public static class SteppingMatch06/Discr + get_CaseA() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseA + IL_0005: ret + } // end of method Discr::get_CaseA + + .method public hidebysig instance bool + get_IsCaseA() 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 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch06/Discr::get_Tag() + IL_0006: ldc.i4.0 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseA + + .method public static class SteppingMatch06/Discr + get_CaseB() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 01 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseB + IL_0005: ret + } // end of method Discr::get_CaseB + + .method public hidebysig instance bool + get_IsCaseB() 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 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch06/Discr::get_Tag() + IL_0006: ldc.i4.1 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseB + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 SteppingMatch06/Discr::_tag + IL_0006: ret + } // end of method Discr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class SteppingMatch06/Discr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class SteppingMatch06/Discr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0020 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001e + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch06/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch06/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: bne.un.s IL_001a + + IL_0018: ldc.i4.0 + IL_0019: ret + + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: sub + IL_001d: ret + + IL_001e: ldc.i4.1 + IL_001f: ret + + IL_0020: ldarg.1 + IL_0021: brfalse.s IL_0025 + + IL_0023: ldc.i4.m1 + IL_0024: ret + + IL_0025: ldc.i4.0 + IL_0026: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any SteppingMatch06/Discr + IL_0007: callvirt instance int32 SteppingMatch06/Discr::CompareTo(class SteppingMatch06/Discr) + IL_000c: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (class SteppingMatch06/Discr V_0, + int32 V_1, + int32 V_2) + IL_0000: ldarg.1 + IL_0001: unbox.any SteppingMatch06/Discr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_002c + + IL_000a: ldarg.1 + IL_000b: unbox.any SteppingMatch06/Discr + IL_0010: brfalse.s IL_002a + + IL_0012: ldarg.0 + IL_0013: ldfld int32 SteppingMatch06/Discr::_tag + IL_0018: stloc.1 + IL_0019: ldloc.0 + IL_001a: ldfld int32 SteppingMatch06/Discr::_tag + IL_001f: stloc.2 + IL_0020: ldloc.1 + IL_0021: ldloc.2 + IL_0022: bne.un.s IL_0026 + + IL_0024: ldc.i4.0 + IL_0025: ret + + IL_0026: ldloc.1 + IL_0027: ldloc.2 + IL_0028: sub + IL_0029: ret + + IL_002a: ldc.i4.1 + IL_002b: ret + + IL_002c: ldarg.1 + IL_002d: unbox.any SteppingMatch06/Discr + IL_0032: brfalse.s IL_0036 + + IL_0034: ldc.i4.m1 + IL_0035: ret + + IL_0036: ldc.i4.0 + IL_0037: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000c + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: ldfld int32 SteppingMatch06/Discr::_tag + IL_000b: ret + + IL_000c: ldc.i4.0 + IL_000d: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 SteppingMatch06/Discr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 44 (0x2c) + .maxstack 4 + .locals init (class SteppingMatch06/Discr V_0, + class SteppingMatch06/Discr V_1, + int32 V_2, + int32 V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0024 + + IL_0003: ldarg.1 + IL_0004: isinst SteppingMatch06/Discr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0022 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: ldfld int32 SteppingMatch06/Discr::_tag + IL_0015: stloc.2 + IL_0016: ldloc.1 + IL_0017: ldfld int32 SteppingMatch06/Discr::_tag + IL_001c: stloc.3 + IL_001d: ldloc.2 + IL_001e: ldloc.3 + IL_001f: ceq + IL_0021: ret + + IL_0022: ldc.i4.0 + IL_0023: ret + + IL_0024: ldarg.1 + IL_0025: ldnull + IL_0026: cgt.un + IL_0028: ldc.i4.0 + IL_0029: ceq + IL_002b: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(class SteppingMatch06/Discr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 35 (0x23) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001b + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_0019 + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch06/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch06/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: ceq + IL_0018: ret + + IL_0019: ldc.i4.0 + IL_001a: ret + + IL_001b: ldarg.1 + IL_001c: ldnull + IL_001d: cgt.un + IL_001f: ldc.i4.0 + IL_0020: ceq + IL_0022: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class SteppingMatch06/Discr V_0) + IL_0000: ldarg.1 + IL_0001: isinst SteppingMatch06/Discr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool SteppingMatch06/Discr::Equals(class SteppingMatch06/Discr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Discr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 SteppingMatch06/Discr::get_Tag() + } // end of property Discr::Tag + .property class SteppingMatch06/Discr + CaseA() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch06/Discr SteppingMatch06/Discr::get_CaseA() + } // end of property Discr::CaseA + .property instance bool IsCaseA() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch06/Discr::get_IsCaseA() + } // end of property Discr::IsCaseA + .property class SteppingMatch06/Discr + CaseB() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch06/Discr SteppingMatch06/Discr::get_CaseB() + } // end of property Discr::CaseB + .property instance bool IsCaseB() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch06/Discr::get_IsCaseB() + } // end of property Discr::IsCaseB + } // end of class Discr + + .method public static void funcD(class SteppingMatch06/Discr n) cil managed + { + // Code size 34 (0x22) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance int32 SteppingMatch06/Discr::get_Tag() + IL_0007: ldc.i4.0 + IL_0008: bne.un.s IL_000c + + IL_000a: br.s IL_0017 + + IL_000c: ldstr "B" + IL_0011: call void [mscorlib]System.Console::WriteLine(string) + IL_0016: ret + + IL_0017: ldstr "A" + IL_001c: call void [mscorlib]System.Console::WriteLine(string) + IL_0021: ret + } // end of method SteppingMatch06::funcD + +} // end of class SteppingMatch06 + +.class private abstract auto ansi sealed ''.$SteppingMatch06 + extends [mscorlib]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch06::main@ + +} // end of class ''.$SteppingMatch06 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SteppingMatch\SteppingMatch06_fs\SteppingMatch06.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..b8d7892bda54acb90483074633ebbfd7f425fca5 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.debug.bsl @@ -0,0 +1,533 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch06 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch06 +{ + // Offset: 0x00000000 Length: 0x000006B3 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch06 created +} +.mresource public FSharpOptimizationData.SteppingMatch06 +{ + // Offset: 0x000006B8 Length: 0x000001DF + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch06 created +} +.module SteppingMatch06.exe +// MVID: {624CDD14-B96B-6A0F-A745-038314DD4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x000001FACE210000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch06 + extends [System.Runtime]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 ) + .class auto autochar serializable sealed nested public beforefieldinit Discr + extends [System.Runtime]System.Object + implements class [System.Runtime]System.IEquatable`1, + [System.Runtime]System.Collections.IStructuralEquatable, + class [System.Runtime]System.IComparable`1, + [System.Runtime]System.IComparable, + [System.Runtime]System.Collections.IStructuralComparable + { + .custom instance void [System.Runtime]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .class abstract auto ansi sealed nested public Tags + extends [System.Runtime]System.Object + { + .field public static literal int32 CaseA = int32(0x00000000) + .field public static literal int32 CaseB = int32(0x00000001) + } // end of class Tags + + .field assembly initonly int32 _tag + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .field static assembly initonly class SteppingMatch06/Discr _unique_CaseA + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .field static assembly initonly class SteppingMatch06/Discr _unique_CaseB + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .method private specialname rtspecialname static + void .cctor() cil managed + { + // Code size 23 (0x17) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void SteppingMatch06/Discr::.ctor(int32) + IL_0006: stsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseA + IL_000b: ldc.i4.1 + IL_000c: newobj instance void SteppingMatch06/Discr::.ctor(int32) + IL_0011: stsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseB + IL_0016: ret + } // end of method Discr::.cctor + + .method assembly specialname rtspecialname + instance void .ctor(int32 _tag) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [System.Runtime]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 SteppingMatch06/Discr::_tag + IL_000d: ret + } // end of method Discr::.ctor + + .method public static class SteppingMatch06/Discr + get_CaseA() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseA + IL_0005: ret + } // end of method Discr::get_CaseA + + .method public hidebysig instance bool + get_IsCaseA() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch06/Discr::get_Tag() + IL_0006: ldc.i4.0 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseA + + .method public static class SteppingMatch06/Discr + get_CaseB() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 01 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseB + IL_0005: ret + } // end of method Discr::get_CaseB + + .method public hidebysig instance bool + get_IsCaseB() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch06/Discr::get_Tag() + IL_0006: ldc.i4.1 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseB + + .method public hidebysig instance int32 + get_Tag() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 SteppingMatch06/Discr::_tag + IL_0006: ret + } // end of method Discr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class SteppingMatch06/Discr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class SteppingMatch06/Discr obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0020 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001e + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch06/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch06/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: bne.un.s IL_001a + + IL_0018: ldc.i4.0 + IL_0019: ret + + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: sub + IL_001d: ret + + IL_001e: ldc.i4.1 + IL_001f: ret + + IL_0020: ldarg.1 + IL_0021: brfalse.s IL_0025 + + IL_0023: ldc.i4.m1 + IL_0024: ret + + IL_0025: ldc.i4.0 + IL_0026: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any SteppingMatch06/Discr + IL_0007: callvirt instance int32 SteppingMatch06/Discr::CompareTo(class SteppingMatch06/Discr) + IL_000c: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [System.Runtime]System.Collections.IComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (class SteppingMatch06/Discr V_0, + int32 V_1, + int32 V_2) + IL_0000: ldarg.1 + IL_0001: unbox.any SteppingMatch06/Discr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_002c + + IL_000a: ldarg.1 + IL_000b: unbox.any SteppingMatch06/Discr + IL_0010: brfalse.s IL_002a + + IL_0012: ldarg.0 + IL_0013: ldfld int32 SteppingMatch06/Discr::_tag + IL_0018: stloc.1 + IL_0019: ldloc.0 + IL_001a: ldfld int32 SteppingMatch06/Discr::_tag + IL_001f: stloc.2 + IL_0020: ldloc.1 + IL_0021: ldloc.2 + IL_0022: bne.un.s IL_0026 + + IL_0024: ldc.i4.0 + IL_0025: ret + + IL_0026: ldloc.1 + IL_0027: ldloc.2 + IL_0028: sub + IL_0029: ret + + IL_002a: ldc.i4.1 + IL_002b: ret + + IL_002c: ldarg.1 + IL_002d: unbox.any SteppingMatch06/Discr + IL_0032: brfalse.s IL_0036 + + IL_0034: ldc.i4.m1 + IL_0035: ret + + IL_0036: ldc.i4.0 + IL_0037: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000c + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: ldfld int32 SteppingMatch06/Discr::_tag + IL_000b: ret + + IL_000c: ldc.i4.0 + IL_000d: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [System.Runtime]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 SteppingMatch06/Discr::GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 44 (0x2c) + .maxstack 4 + .locals init (class SteppingMatch06/Discr V_0, + class SteppingMatch06/Discr V_1, + int32 V_2, + int32 V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0024 + + IL_0003: ldarg.1 + IL_0004: isinst SteppingMatch06/Discr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0022 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: ldfld int32 SteppingMatch06/Discr::_tag + IL_0015: stloc.2 + IL_0016: ldloc.1 + IL_0017: ldfld int32 SteppingMatch06/Discr::_tag + IL_001c: stloc.3 + IL_001d: ldloc.2 + IL_001e: ldloc.3 + IL_001f: ceq + IL_0021: ret + + IL_0022: ldc.i4.0 + IL_0023: ret + + IL_0024: ldarg.1 + IL_0025: ldnull + IL_0026: cgt.un + IL_0028: ldc.i4.0 + IL_0029: ceq + IL_002b: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(class SteppingMatch06/Discr obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 35 (0x23) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001b + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_0019 + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch06/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch06/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: ceq + IL_0018: ret + + IL_0019: ldc.i4.0 + IL_001a: ret + + IL_001b: ldarg.1 + IL_001c: ldnull + IL_001d: cgt.un + IL_001f: ldc.i4.0 + IL_0020: ceq + IL_0022: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class SteppingMatch06/Discr V_0) + IL_0000: ldarg.1 + IL_0001: isinst SteppingMatch06/Discr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool SteppingMatch06/Discr::Equals(class SteppingMatch06/Discr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Discr::Equals + + .property instance int32 Tag() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 SteppingMatch06/Discr::get_Tag() + } // end of property Discr::Tag + .property class SteppingMatch06/Discr + CaseA() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch06/Discr SteppingMatch06/Discr::get_CaseA() + } // end of property Discr::CaseA + .property instance bool IsCaseA() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch06/Discr::get_IsCaseA() + } // end of property Discr::IsCaseA + .property class SteppingMatch06/Discr + CaseB() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch06/Discr SteppingMatch06/Discr::get_CaseB() + } // end of property Discr::CaseB + .property instance bool IsCaseB() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch06/Discr::get_IsCaseB() + } // end of property Discr::IsCaseB + } // end of class Discr + + .method public static void funcD(class SteppingMatch06/Discr n) cil managed + { + // Code size 34 (0x22) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance int32 SteppingMatch06/Discr::get_Tag() + IL_0007: ldc.i4.0 + IL_0008: bne.un.s IL_000c + + IL_000a: br.s IL_0017 + + IL_000c: ldstr "B" + IL_0011: call void [System.Console]System.Console::WriteLine(string) + IL_0016: ret + + IL_0017: ldstr "A" + IL_001c: call void [System.Console]System.Console::WriteLine(string) + IL_0021: ret + } // end of method SteppingMatch06::funcD + +} // end of class SteppingMatch06 + +.class private abstract auto ansi sealed ''.$SteppingMatch06 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch06::main@ + +} // end of class ''.$SteppingMatch06 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch06_fs\SteppingMatch06.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..7ce83c40b7aca390f2bf1b1764b3d93d46e7a6b2 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.release.bsl @@ -0,0 +1,533 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch06 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch06 +{ + // Offset: 0x00000000 Length: 0x000006B7 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch06 created +} +.mresource public FSharpOptimizationData.SteppingMatch06 +{ + // Offset: 0x000006C0 Length: 0x000001DF + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch06 created +} +.module SteppingMatch06.exe +// MVID: {624CDB59-FA41-309E-A745-038359DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x00000233862B0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch06 + extends [System.Runtime]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 ) + .class auto autochar serializable sealed nested public beforefieldinit Discr + extends [System.Runtime]System.Object + implements class [System.Runtime]System.IEquatable`1, + [System.Runtime]System.Collections.IStructuralEquatable, + class [System.Runtime]System.IComparable`1, + [System.Runtime]System.IComparable, + [System.Runtime]System.Collections.IStructuralComparable + { + .custom instance void [System.Runtime]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .class abstract auto ansi sealed nested public Tags + extends [System.Runtime]System.Object + { + .field public static literal int32 CaseA = int32(0x00000000) + .field public static literal int32 CaseB = int32(0x00000001) + } // end of class Tags + + .field assembly initonly int32 _tag + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .field static assembly initonly class SteppingMatch06/Discr _unique_CaseA + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .field static assembly initonly class SteppingMatch06/Discr _unique_CaseB + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .method private specialname rtspecialname static + void .cctor() cil managed + { + // Code size 23 (0x17) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void SteppingMatch06/Discr::.ctor(int32) + IL_0006: stsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseA + IL_000b: ldc.i4.1 + IL_000c: newobj instance void SteppingMatch06/Discr::.ctor(int32) + IL_0011: stsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseB + IL_0016: ret + } // end of method Discr::.cctor + + .method assembly specialname rtspecialname + instance void .ctor(int32 _tag) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [System.Runtime]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 SteppingMatch06/Discr::_tag + IL_000d: ret + } // end of method Discr::.ctor + + .method public static class SteppingMatch06/Discr + get_CaseA() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseA + IL_0005: ret + } // end of method Discr::get_CaseA + + .method public hidebysig instance bool + get_IsCaseA() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch06/Discr::get_Tag() + IL_0006: ldc.i4.0 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseA + + .method public static class SteppingMatch06/Discr + get_CaseB() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 01 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch06/Discr SteppingMatch06/Discr::_unique_CaseB + IL_0005: ret + } // end of method Discr::get_CaseB + + .method public hidebysig instance bool + get_IsCaseB() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch06/Discr::get_Tag() + IL_0006: ldc.i4.1 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseB + + .method public hidebysig instance int32 + get_Tag() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 SteppingMatch06/Discr::_tag + IL_0006: ret + } // end of method Discr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class SteppingMatch06/Discr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class SteppingMatch06/Discr obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0020 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001e + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch06/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch06/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: bne.un.s IL_001a + + IL_0018: ldc.i4.0 + IL_0019: ret + + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: sub + IL_001d: ret + + IL_001e: ldc.i4.1 + IL_001f: ret + + IL_0020: ldarg.1 + IL_0021: brfalse.s IL_0025 + + IL_0023: ldc.i4.m1 + IL_0024: ret + + IL_0025: ldc.i4.0 + IL_0026: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any SteppingMatch06/Discr + IL_0007: callvirt instance int32 SteppingMatch06/Discr::CompareTo(class SteppingMatch06/Discr) + IL_000c: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [System.Runtime]System.Collections.IComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (class SteppingMatch06/Discr V_0, + int32 V_1, + int32 V_2) + IL_0000: ldarg.1 + IL_0001: unbox.any SteppingMatch06/Discr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_002c + + IL_000a: ldarg.1 + IL_000b: unbox.any SteppingMatch06/Discr + IL_0010: brfalse.s IL_002a + + IL_0012: ldarg.0 + IL_0013: ldfld int32 SteppingMatch06/Discr::_tag + IL_0018: stloc.1 + IL_0019: ldloc.0 + IL_001a: ldfld int32 SteppingMatch06/Discr::_tag + IL_001f: stloc.2 + IL_0020: ldloc.1 + IL_0021: ldloc.2 + IL_0022: bne.un.s IL_0026 + + IL_0024: ldc.i4.0 + IL_0025: ret + + IL_0026: ldloc.1 + IL_0027: ldloc.2 + IL_0028: sub + IL_0029: ret + + IL_002a: ldc.i4.1 + IL_002b: ret + + IL_002c: ldarg.1 + IL_002d: unbox.any SteppingMatch06/Discr + IL_0032: brfalse.s IL_0036 + + IL_0034: ldc.i4.m1 + IL_0035: ret + + IL_0036: ldc.i4.0 + IL_0037: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000c + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: ldfld int32 SteppingMatch06/Discr::_tag + IL_000b: ret + + IL_000c: ldc.i4.0 + IL_000d: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [System.Runtime]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 SteppingMatch06/Discr::GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 44 (0x2c) + .maxstack 4 + .locals init (class SteppingMatch06/Discr V_0, + class SteppingMatch06/Discr V_1, + int32 V_2, + int32 V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0024 + + IL_0003: ldarg.1 + IL_0004: isinst SteppingMatch06/Discr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0022 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: ldfld int32 SteppingMatch06/Discr::_tag + IL_0015: stloc.2 + IL_0016: ldloc.1 + IL_0017: ldfld int32 SteppingMatch06/Discr::_tag + IL_001c: stloc.3 + IL_001d: ldloc.2 + IL_001e: ldloc.3 + IL_001f: ceq + IL_0021: ret + + IL_0022: ldc.i4.0 + IL_0023: ret + + IL_0024: ldarg.1 + IL_0025: ldnull + IL_0026: cgt.un + IL_0028: ldc.i4.0 + IL_0029: ceq + IL_002b: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(class SteppingMatch06/Discr obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 35 (0x23) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001b + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_0019 + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch06/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch06/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: ceq + IL_0018: ret + + IL_0019: ldc.i4.0 + IL_001a: ret + + IL_001b: ldarg.1 + IL_001c: ldnull + IL_001d: cgt.un + IL_001f: ldc.i4.0 + IL_0020: ceq + IL_0022: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class SteppingMatch06/Discr V_0) + IL_0000: ldarg.1 + IL_0001: isinst SteppingMatch06/Discr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool SteppingMatch06/Discr::Equals(class SteppingMatch06/Discr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Discr::Equals + + .property instance int32 Tag() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 SteppingMatch06/Discr::get_Tag() + } // end of property Discr::Tag + .property class SteppingMatch06/Discr + CaseA() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch06/Discr SteppingMatch06/Discr::get_CaseA() + } // end of property Discr::CaseA + .property instance bool IsCaseA() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch06/Discr::get_IsCaseA() + } // end of property Discr::IsCaseA + .property class SteppingMatch06/Discr + CaseB() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch06/Discr SteppingMatch06/Discr::get_CaseB() + } // end of property Discr::CaseB + .property instance bool IsCaseB() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch06/Discr::get_IsCaseB() + } // end of property Discr::IsCaseB + } // end of class Discr + + .method public static void funcD(class SteppingMatch06/Discr n) cil managed + { + // Code size 34 (0x22) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance int32 SteppingMatch06/Discr::get_Tag() + IL_0007: ldc.i4.0 + IL_0008: bne.un.s IL_000c + + IL_000a: br.s IL_0017 + + IL_000c: ldstr "B" + IL_0011: call void [System.Console]System.Console::WriteLine(string) + IL_0016: ret + + IL_0017: ldstr "A" + IL_001c: call void [System.Console]System.Console::WriteLine(string) + IL_0021: ret + } // end of method SteppingMatch06::funcD + +} // end of class SteppingMatch06 + +.class private abstract auto ansi sealed ''.$SteppingMatch06 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch06::main@ + +} // end of class ''.$SteppingMatch06 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch06_fs\SteppingMatch06.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch07.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch07.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch07.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.debug.bsl similarity index 89% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch07.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.debug.bsl index 14ce575bea5903d80fed8aaf63b25b257ae1e9e9..d6b3c82987d308dd91a3deb3c84f19b86bfea82b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch07.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.debug.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.SteppingMatch07 { - // Offset: 0x00000000 Length: 0x00000675 + // Offset: 0x00000000 Length: 0x000006AD + // WARNING: managed resource file FSharpSignatureData.SteppingMatch07 created } .mresource public FSharpOptimizationData.SteppingMatch07 { - // Offset: 0x00000680 Length: 0x000001D9 + // Offset: 0x000006B8 Length: 0x000001D9 + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch07 created } -.module SteppingMatch07.dll -// MVID: {6220E156-D373-07F3-A745-038356E12062} +.module SteppingMatch07.exe +// MVID: {624CDC8C-B9FF-4FFC-A745-03838CDC4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05420000 +// Image base: 0x053D0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -207,52 +208,41 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 39 (0x27) .maxstack 4 - .locals init ([0] int32 V_0, - [1] int32 V_1) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch07.fs' + .locals init (int32 V_0, + int32 V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0020 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_001e - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: ldfld int32 SteppingMatch07/Discr::_tag IL_000c: stloc.0 IL_000d: ldarg.1 IL_000e: ldfld int32 SteppingMatch07/Discr::_tag IL_0013: stloc.1 - .line 100001,100001 : 0,0 '' IL_0014: ldloc.0 IL_0015: ldloc.1 IL_0016: bne.un.s IL_001a - .line 100001,100001 : 0,0 '' IL_0018: ldc.i4.0 IL_0019: ret - .line 100001,100001 : 0,0 '' IL_001a: ldloc.0 IL_001b: ldloc.1 IL_001c: sub IL_001d: ret - .line 100001,100001 : 0,0 '' IL_001e: ldc.i4.1 IL_001f: ret - .line 100001,100001 : 0,0 '' IL_0020: ldarg.1 IL_0021: brfalse.s IL_0025 - .line 100001,100001 : 0,0 '' IL_0023: ldc.i4.m1 IL_0024: ret - .line 100001,100001 : 0,0 '' IL_0025: ldc.i4.0 IL_0026: ret } // end of method Discr::CompareTo @@ -277,58 +267,47 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 56 (0x38) .maxstack 4 - .locals init ([0] class SteppingMatch07/Discr V_0, - [1] int32 V_1, - [2] int32 V_2) - .line 100001,100001 : 0,0 '' + .locals init (class SteppingMatch07/Discr V_0, + int32 V_1, + int32 V_2) IL_0000: ldarg.1 IL_0001: unbox.any SteppingMatch07/Discr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldarg.0 IL_0008: brfalse.s IL_002c - .line 100001,100001 : 0,0 '' IL_000a: ldarg.1 IL_000b: unbox.any SteppingMatch07/Discr IL_0010: brfalse.s IL_002a - .line 100001,100001 : 0,0 '' IL_0012: ldarg.0 IL_0013: ldfld int32 SteppingMatch07/Discr::_tag IL_0018: stloc.1 IL_0019: ldloc.0 IL_001a: ldfld int32 SteppingMatch07/Discr::_tag IL_001f: stloc.2 - .line 100001,100001 : 0,0 '' IL_0020: ldloc.1 IL_0021: ldloc.2 IL_0022: bne.un.s IL_0026 - .line 100001,100001 : 0,0 '' IL_0024: ldc.i4.0 IL_0025: ret - .line 100001,100001 : 0,0 '' IL_0026: ldloc.1 IL_0027: ldloc.2 IL_0028: sub IL_0029: ret - .line 100001,100001 : 0,0 '' IL_002a: ldc.i4.1 IL_002b: ret - .line 100001,100001 : 0,0 '' IL_002c: ldarg.1 IL_002d: unbox.any SteppingMatch07/Discr IL_0032: brfalse.s IL_0036 - .line 100001,100001 : 0,0 '' IL_0034: ldc.i4.m1 IL_0035: ret - .line 100001,100001 : 0,0 '' IL_0036: ldc.i4.0 IL_0037: ret } // end of method Discr::CompareTo @@ -339,19 +318,16 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 14 (0xe) .maxstack 3 - .locals init ([0] int32 V_0) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0) IL_0000: ldarg.0 IL_0001: brfalse.s IL_000c - .line 100001,100001 : 0,0 '' IL_0003: ldc.i4.0 IL_0004: stloc.0 IL_0005: ldarg.0 IL_0006: ldfld int32 SteppingMatch07/Discr::_tag IL_000b: ret - .line 100001,100001 : 0,0 '' IL_000c: ldc.i4.0 IL_000d: ret } // end of method Discr::GetHashCode @@ -375,23 +351,19 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 44 (0x2c) .maxstack 4 - .locals init ([0] class SteppingMatch07/Discr V_0, - [1] class SteppingMatch07/Discr V_1, - [2] int32 V_2, - [3] int32 V_3) - .line 100001,100001 : 0,0 '' + .locals init (class SteppingMatch07/Discr V_0, + class SteppingMatch07/Discr V_1, + int32 V_2, + int32 V_3) IL_0000: ldarg.0 IL_0001: brfalse.s IL_0024 - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: isinst SteppingMatch07/Discr IL_0009: stloc.0 - .line 100001,100001 : 0,0 '' IL_000a: ldloc.0 IL_000b: brfalse.s IL_0022 - .line 100001,100001 : 0,0 '' IL_000d: ldloc.0 IL_000e: stloc.1 IL_000f: ldarg.0 @@ -400,17 +372,14 @@ IL_0016: ldloc.1 IL_0017: ldfld int32 SteppingMatch07/Discr::_tag IL_001c: stloc.3 - .line 100001,100001 : 0,0 '' IL_001d: ldloc.2 IL_001e: ldloc.3 IL_001f: ceq IL_0021: ret - .line 100001,100001 : 0,0 '' IL_0022: ldc.i4.0 IL_0023: ret - .line 100001,100001 : 0,0 '' IL_0024: ldarg.1 IL_0025: ldnull IL_0026: cgt.un @@ -425,34 +394,28 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 35 (0x23) .maxstack 4 - .locals init ([0] int32 V_0, - [1] int32 V_1) - .line 100001,100001 : 0,0 '' + .locals init (int32 V_0, + int32 V_1) IL_0000: ldarg.0 IL_0001: brfalse.s IL_001b - .line 100001,100001 : 0,0 '' IL_0003: ldarg.1 IL_0004: brfalse.s IL_0019 - .line 100001,100001 : 0,0 '' IL_0006: ldarg.0 IL_0007: ldfld int32 SteppingMatch07/Discr::_tag IL_000c: stloc.0 IL_000d: ldarg.1 IL_000e: ldfld int32 SteppingMatch07/Discr::_tag IL_0013: stloc.1 - .line 100001,100001 : 0,0 '' IL_0014: ldloc.0 IL_0015: ldloc.1 IL_0016: ceq IL_0018: ret - .line 100001,100001 : 0,0 '' IL_0019: ldc.i4.0 IL_001a: ret - .line 100001,100001 : 0,0 '' IL_001b: ldarg.1 IL_001c: ldnull IL_001d: cgt.un @@ -467,22 +430,18 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 20 (0x14) .maxstack 4 - .locals init ([0] class SteppingMatch07/Discr V_0) - .line 100001,100001 : 0,0 '' + .locals init (class SteppingMatch07/Discr V_0) IL_0000: ldarg.1 IL_0001: isinst SteppingMatch07/Discr IL_0006: stloc.0 - .line 100001,100001 : 0,0 '' IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 - .line 100001,100001 : 0,0 '' IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: callvirt instance bool SteppingMatch07/Discr::Equals(class SteppingMatch07/Discr) IL_0011: ret - .line 100001,100001 : 0,0 '' IL_0012: ldc.i4.0 IL_0013: ret } // end of method Discr::Equals @@ -530,9 +489,7 @@ { // Code size 34 (0x22) .maxstack 8 - .line 6,6 : 9,21 '' IL_0000: nop - .line 100001,100001 : 0,0 '' IL_0001: ldarg.0 IL_0002: call instance int32 SteppingMatch07/Discr::get_Tag() IL_0007: ldc.i4.1 @@ -540,12 +497,10 @@ IL_000a: br.s IL_0017 - .line 8,8 : 13,35 '' IL_000c: ldstr "A" IL_0011: call void [mscorlib]System.Console::WriteLine(string) IL_0016: ret - .line 10,10 : 13,35 '' IL_0017: ldstr "B" IL_001c: call void [mscorlib]System.Console::WriteLine(string) IL_0021: ret @@ -556,9 +511,18 @@ .class private abstract auto ansi sealed ''.$SteppingMatch07 extends [mscorlib]System.Object { + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch07::main@ + } // end of class ''.$SteppingMatch07 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SteppingMatch\SteppingMatch07_fs\SteppingMatch07.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..7bf9ed58e077e78deac7f7196aacc6a9aecb2f9f --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.release.bsl @@ -0,0 +1,528 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch07 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch07 +{ + // Offset: 0x00000000 Length: 0x000006B1 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch07 created +} +.mresource public FSharpOptimizationData.SteppingMatch07 +{ + // Offset: 0x000006B8 Length: 0x000001D9 + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch07 created +} +.module SteppingMatch07.exe +// MVID: {624CDB11-B9FF-4FFC-A745-038311DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x03560000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch07 + 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 ) + .class auto autochar serializable sealed nested public beforefieldinit Discr + extends [mscorlib]System.Object + implements class [mscorlib]System.IEquatable`1, + [mscorlib]System.Collections.IStructuralEquatable, + class [mscorlib]System.IComparable`1, + [mscorlib]System.IComparable, + [mscorlib]System.Collections.IStructuralComparable + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .class abstract auto ansi sealed nested public Tags + extends [mscorlib]System.Object + { + .field public static literal int32 CaseA = int32(0x00000000) + .field public static literal int32 CaseB = int32(0x00000001) + } // end of class Tags + + .field assembly initonly int32 _tag + .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 static assembly initonly class SteppingMatch07/Discr _unique_CaseA + .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 static assembly initonly class SteppingMatch07/Discr _unique_CaseB + .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 ) + .method private specialname rtspecialname static + void .cctor() cil managed + { + // Code size 23 (0x17) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void SteppingMatch07/Discr::.ctor(int32) + IL_0006: stsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseA + IL_000b: ldc.i4.1 + IL_000c: newobj instance void SteppingMatch07/Discr::.ctor(int32) + IL_0011: stsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseB + IL_0016: ret + } // end of method Discr::.cctor + + .method assembly specialname rtspecialname + instance void .ctor(int32 _tag) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 SteppingMatch07/Discr::_tag + IL_000d: ret + } // end of method Discr::.ctor + + .method public static class SteppingMatch07/Discr + get_CaseA() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseA + IL_0005: ret + } // end of method Discr::get_CaseA + + .method public hidebysig instance bool + get_IsCaseA() 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 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch07/Discr::get_Tag() + IL_0006: ldc.i4.0 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseA + + .method public static class SteppingMatch07/Discr + get_CaseB() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 01 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseB + IL_0005: ret + } // end of method Discr::get_CaseB + + .method public hidebysig instance bool + get_IsCaseB() 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 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch07/Discr::get_Tag() + IL_0006: ldc.i4.1 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseB + + .method public hidebysig instance int32 + get_Tag() 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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 SteppingMatch07/Discr::_tag + IL_0006: ret + } // end of method Discr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() 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 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class SteppingMatch07/Discr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class SteppingMatch07/Discr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0020 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001e + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch07/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch07/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: bne.un.s IL_001a + + IL_0018: ldc.i4.0 + IL_0019: ret + + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: sub + IL_001d: ret + + IL_001e: ldc.i4.1 + IL_001f: ret + + IL_0020: ldarg.1 + IL_0021: brfalse.s IL_0025 + + IL_0023: ldc.i4.m1 + IL_0024: ret + + IL_0025: ldc.i4.0 + IL_0026: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any SteppingMatch07/Discr + IL_0007: callvirt instance int32 SteppingMatch07/Discr::CompareTo(class SteppingMatch07/Discr) + IL_000c: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [mscorlib]System.Collections.IComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (class SteppingMatch07/Discr V_0, + int32 V_1, + int32 V_2) + IL_0000: ldarg.1 + IL_0001: unbox.any SteppingMatch07/Discr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_002c + + IL_000a: ldarg.1 + IL_000b: unbox.any SteppingMatch07/Discr + IL_0010: brfalse.s IL_002a + + IL_0012: ldarg.0 + IL_0013: ldfld int32 SteppingMatch07/Discr::_tag + IL_0018: stloc.1 + IL_0019: ldloc.0 + IL_001a: ldfld int32 SteppingMatch07/Discr::_tag + IL_001f: stloc.2 + IL_0020: ldloc.1 + IL_0021: ldloc.2 + IL_0022: bne.un.s IL_0026 + + IL_0024: ldc.i4.0 + IL_0025: ret + + IL_0026: ldloc.1 + IL_0027: ldloc.2 + IL_0028: sub + IL_0029: ret + + IL_002a: ldc.i4.1 + IL_002b: ret + + IL_002c: ldarg.1 + IL_002d: unbox.any SteppingMatch07/Discr + IL_0032: brfalse.s IL_0036 + + IL_0034: ldc.i4.m1 + IL_0035: ret + + IL_0036: ldc.i4.0 + IL_0037: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000c + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: ldfld int32 SteppingMatch07/Discr::_tag + IL_000b: ret + + IL_000c: ldc.i4.0 + IL_000d: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 SteppingMatch07/Discr::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [mscorlib]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 44 (0x2c) + .maxstack 4 + .locals init (class SteppingMatch07/Discr V_0, + class SteppingMatch07/Discr V_1, + int32 V_2, + int32 V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0024 + + IL_0003: ldarg.1 + IL_0004: isinst SteppingMatch07/Discr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0022 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: ldfld int32 SteppingMatch07/Discr::_tag + IL_0015: stloc.2 + IL_0016: ldloc.1 + IL_0017: ldfld int32 SteppingMatch07/Discr::_tag + IL_001c: stloc.3 + IL_001d: ldloc.2 + IL_001e: ldloc.3 + IL_001f: ceq + IL_0021: ret + + IL_0022: ldc.i4.0 + IL_0023: ret + + IL_0024: ldarg.1 + IL_0025: ldnull + IL_0026: cgt.un + IL_0028: ldc.i4.0 + IL_0029: ceq + IL_002b: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(class SteppingMatch07/Discr obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 35 (0x23) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001b + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_0019 + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch07/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch07/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: ceq + IL_0018: ret + + IL_0019: ldc.i4.0 + IL_001a: ret + + IL_001b: ldarg.1 + IL_001c: ldnull + IL_001d: cgt.un + IL_001f: ldc.i4.0 + IL_0020: ceq + IL_0022: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class SteppingMatch07/Discr V_0) + IL_0000: ldarg.1 + IL_0001: isinst SteppingMatch07/Discr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool SteppingMatch07/Discr::Equals(class SteppingMatch07/Discr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Discr::Equals + + .property instance int32 Tag() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 SteppingMatch07/Discr::get_Tag() + } // end of property Discr::Tag + .property class SteppingMatch07/Discr + CaseA() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch07/Discr SteppingMatch07/Discr::get_CaseA() + } // end of property Discr::CaseA + .property instance bool IsCaseA() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch07/Discr::get_IsCaseA() + } // end of property Discr::IsCaseA + .property class SteppingMatch07/Discr + CaseB() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch07/Discr SteppingMatch07/Discr::get_CaseB() + } // end of property Discr::CaseB + .property instance bool IsCaseB() + { + .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 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch07/Discr::get_IsCaseB() + } // end of property Discr::IsCaseB + } // end of class Discr + + .method public static void funcE(class SteppingMatch07/Discr n) cil managed + { + // Code size 34 (0x22) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance int32 SteppingMatch07/Discr::get_Tag() + IL_0007: ldc.i4.1 + IL_0008: bne.un.s IL_000c + + IL_000a: br.s IL_0017 + + IL_000c: ldstr "A" + IL_0011: call void [mscorlib]System.Console::WriteLine(string) + IL_0016: ret + + IL_0017: ldstr "B" + IL_001c: call void [mscorlib]System.Console::WriteLine(string) + IL_0021: ret + } // end of method SteppingMatch07::funcE + +} // end of class SteppingMatch07 + +.class private abstract auto ansi sealed ''.$SteppingMatch07 + extends [mscorlib]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch07::main@ + +} // end of class ''.$SteppingMatch07 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\SteppingMatch\SteppingMatch07_fs\SteppingMatch07.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.debug.bsl new file mode 100644 index 0000000000000000000000000000000000000000..516cc8f4b325850c891fac7321d027f739a0d37a --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.debug.bsl @@ -0,0 +1,533 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch07 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch07 +{ + // Offset: 0x00000000 Length: 0x000006B3 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch07 created +} +.mresource public FSharpOptimizationData.SteppingMatch07 +{ + // Offset: 0x000006B8 Length: 0x000001DF + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch07 created +} +.module SteppingMatch07.exe +// MVID: {624CDD14-9CCD-48CC-A745-038314DD4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x000002870BC60000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch07 + extends [System.Runtime]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 ) + .class auto autochar serializable sealed nested public beforefieldinit Discr + extends [System.Runtime]System.Object + implements class [System.Runtime]System.IEquatable`1, + [System.Runtime]System.Collections.IStructuralEquatable, + class [System.Runtime]System.IComparable`1, + [System.Runtime]System.IComparable, + [System.Runtime]System.Collections.IStructuralComparable + { + .custom instance void [System.Runtime]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .class abstract auto ansi sealed nested public Tags + extends [System.Runtime]System.Object + { + .field public static literal int32 CaseA = int32(0x00000000) + .field public static literal int32 CaseB = int32(0x00000001) + } // end of class Tags + + .field assembly initonly int32 _tag + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .field static assembly initonly class SteppingMatch07/Discr _unique_CaseA + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .field static assembly initonly class SteppingMatch07/Discr _unique_CaseB + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .method private specialname rtspecialname static + void .cctor() cil managed + { + // Code size 23 (0x17) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void SteppingMatch07/Discr::.ctor(int32) + IL_0006: stsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseA + IL_000b: ldc.i4.1 + IL_000c: newobj instance void SteppingMatch07/Discr::.ctor(int32) + IL_0011: stsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseB + IL_0016: ret + } // end of method Discr::.cctor + + .method assembly specialname rtspecialname + instance void .ctor(int32 _tag) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [System.Runtime]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 SteppingMatch07/Discr::_tag + IL_000d: ret + } // end of method Discr::.ctor + + .method public static class SteppingMatch07/Discr + get_CaseA() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseA + IL_0005: ret + } // end of method Discr::get_CaseA + + .method public hidebysig instance bool + get_IsCaseA() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch07/Discr::get_Tag() + IL_0006: ldc.i4.0 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseA + + .method public static class SteppingMatch07/Discr + get_CaseB() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 01 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseB + IL_0005: ret + } // end of method Discr::get_CaseB + + .method public hidebysig instance bool + get_IsCaseB() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch07/Discr::get_Tag() + IL_0006: ldc.i4.1 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseB + + .method public hidebysig instance int32 + get_Tag() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 SteppingMatch07/Discr::_tag + IL_0006: ret + } // end of method Discr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class SteppingMatch07/Discr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class SteppingMatch07/Discr obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0020 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001e + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch07/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch07/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: bne.un.s IL_001a + + IL_0018: ldc.i4.0 + IL_0019: ret + + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: sub + IL_001d: ret + + IL_001e: ldc.i4.1 + IL_001f: ret + + IL_0020: ldarg.1 + IL_0021: brfalse.s IL_0025 + + IL_0023: ldc.i4.m1 + IL_0024: ret + + IL_0025: ldc.i4.0 + IL_0026: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any SteppingMatch07/Discr + IL_0007: callvirt instance int32 SteppingMatch07/Discr::CompareTo(class SteppingMatch07/Discr) + IL_000c: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [System.Runtime]System.Collections.IComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (class SteppingMatch07/Discr V_0, + int32 V_1, + int32 V_2) + IL_0000: ldarg.1 + IL_0001: unbox.any SteppingMatch07/Discr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_002c + + IL_000a: ldarg.1 + IL_000b: unbox.any SteppingMatch07/Discr + IL_0010: brfalse.s IL_002a + + IL_0012: ldarg.0 + IL_0013: ldfld int32 SteppingMatch07/Discr::_tag + IL_0018: stloc.1 + IL_0019: ldloc.0 + IL_001a: ldfld int32 SteppingMatch07/Discr::_tag + IL_001f: stloc.2 + IL_0020: ldloc.1 + IL_0021: ldloc.2 + IL_0022: bne.un.s IL_0026 + + IL_0024: ldc.i4.0 + IL_0025: ret + + IL_0026: ldloc.1 + IL_0027: ldloc.2 + IL_0028: sub + IL_0029: ret + + IL_002a: ldc.i4.1 + IL_002b: ret + + IL_002c: ldarg.1 + IL_002d: unbox.any SteppingMatch07/Discr + IL_0032: brfalse.s IL_0036 + + IL_0034: ldc.i4.m1 + IL_0035: ret + + IL_0036: ldc.i4.0 + IL_0037: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000c + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: ldfld int32 SteppingMatch07/Discr::_tag + IL_000b: ret + + IL_000c: ldc.i4.0 + IL_000d: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [System.Runtime]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 SteppingMatch07/Discr::GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 44 (0x2c) + .maxstack 4 + .locals init (class SteppingMatch07/Discr V_0, + class SteppingMatch07/Discr V_1, + int32 V_2, + int32 V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0024 + + IL_0003: ldarg.1 + IL_0004: isinst SteppingMatch07/Discr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0022 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: ldfld int32 SteppingMatch07/Discr::_tag + IL_0015: stloc.2 + IL_0016: ldloc.1 + IL_0017: ldfld int32 SteppingMatch07/Discr::_tag + IL_001c: stloc.3 + IL_001d: ldloc.2 + IL_001e: ldloc.3 + IL_001f: ceq + IL_0021: ret + + IL_0022: ldc.i4.0 + IL_0023: ret + + IL_0024: ldarg.1 + IL_0025: ldnull + IL_0026: cgt.un + IL_0028: ldc.i4.0 + IL_0029: ceq + IL_002b: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(class SteppingMatch07/Discr obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 35 (0x23) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001b + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_0019 + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch07/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch07/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: ceq + IL_0018: ret + + IL_0019: ldc.i4.0 + IL_001a: ret + + IL_001b: ldarg.1 + IL_001c: ldnull + IL_001d: cgt.un + IL_001f: ldc.i4.0 + IL_0020: ceq + IL_0022: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class SteppingMatch07/Discr V_0) + IL_0000: ldarg.1 + IL_0001: isinst SteppingMatch07/Discr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool SteppingMatch07/Discr::Equals(class SteppingMatch07/Discr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Discr::Equals + + .property instance int32 Tag() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 SteppingMatch07/Discr::get_Tag() + } // end of property Discr::Tag + .property class SteppingMatch07/Discr + CaseA() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch07/Discr SteppingMatch07/Discr::get_CaseA() + } // end of property Discr::CaseA + .property instance bool IsCaseA() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch07/Discr::get_IsCaseA() + } // end of property Discr::IsCaseA + .property class SteppingMatch07/Discr + CaseB() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch07/Discr SteppingMatch07/Discr::get_CaseB() + } // end of property Discr::CaseB + .property instance bool IsCaseB() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch07/Discr::get_IsCaseB() + } // end of property Discr::IsCaseB + } // end of class Discr + + .method public static void funcE(class SteppingMatch07/Discr n) cil managed + { + // Code size 34 (0x22) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance int32 SteppingMatch07/Discr::get_Tag() + IL_0007: ldc.i4.1 + IL_0008: bne.un.s IL_000c + + IL_000a: br.s IL_0017 + + IL_000c: ldstr "A" + IL_0011: call void [System.Console]System.Console::WriteLine(string) + IL_0016: ret + + IL_0017: ldstr "B" + IL_001c: call void [System.Console]System.Console::WriteLine(string) + IL_0021: ret + } // end of method SteppingMatch07::funcE + +} // end of class SteppingMatch07 + +.class private abstract auto ansi sealed ''.$SteppingMatch07 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch07::main@ + +} // end of class ''.$SteppingMatch07 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch07_fs\SteppingMatch07.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.release.bsl new file mode 100644 index 0000000000000000000000000000000000000000..cff1286f862aee77a8ffab4ccf8cc534ea80b650 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.release.bsl @@ -0,0 +1,533 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Console +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly SteppingMatch07 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.SteppingMatch07 +{ + // Offset: 0x00000000 Length: 0x000006B7 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch07 created +} +.mresource public FSharpOptimizationData.SteppingMatch07 +{ + // Offset: 0x000006C0 Length: 0x000001DF + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch07 created +} +.module SteppingMatch07.exe +// MVID: {624CDB59-C8E5-7397-A745-038359DB4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x000001F2A7130000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed SteppingMatch07 + extends [System.Runtime]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 ) + .class auto autochar serializable sealed nested public beforefieldinit Discr + extends [System.Runtime]System.Object + implements class [System.Runtime]System.IEquatable`1, + [System.Runtime]System.Collections.IStructuralEquatable, + class [System.Runtime]System.IComparable`1, + [System.Runtime]System.IComparable, + [System.Runtime]System.Collections.IStructuralComparable + { + .custom instance void [System.Runtime]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C // ...{__DebugDispl + 61 79 28 29 2C 6E 71 7D 00 00 ) // ay(),nq}.. + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) + .class abstract auto ansi sealed nested public Tags + extends [System.Runtime]System.Object + { + .field public static literal int32 CaseA = int32(0x00000000) + .field public static literal int32 CaseB = int32(0x00000001) + } // end of class Tags + + .field assembly initonly int32 _tag + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .field static assembly initonly class SteppingMatch07/Discr _unique_CaseA + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .field static assembly initonly class SteppingMatch07/Discr _unique_CaseB + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .method private specialname rtspecialname static + void .cctor() cil managed + { + // Code size 23 (0x17) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void SteppingMatch07/Discr::.ctor(int32) + IL_0006: stsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseA + IL_000b: ldc.i4.1 + IL_000c: newobj instance void SteppingMatch07/Discr::.ctor(int32) + IL_0011: stsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseB + IL_0016: ret + } // end of method Discr::.cctor + + .method assembly specialname rtspecialname + instance void .ctor(int32 _tag) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [System.Runtime]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 SteppingMatch07/Discr::_tag + IL_000d: ret + } // end of method Discr::.ctor + + .method public static class SteppingMatch07/Discr + get_CaseA() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseA + IL_0005: ret + } // end of method Discr::get_CaseA + + .method public hidebysig instance bool + get_IsCaseA() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch07/Discr::get_Tag() + IL_0006: ldc.i4.0 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseA + + .method public static class SteppingMatch07/Discr + get_CaseB() cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, + int32) = ( 01 00 08 00 00 00 01 00 00 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldsfld class SteppingMatch07/Discr SteppingMatch07/Discr::_unique_CaseB + IL_0005: ret + } // end of method Discr::get_CaseB + + .method public hidebysig instance bool + get_IsCaseB() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 10 (0xa) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 SteppingMatch07/Discr::get_Tag() + IL_0006: ldc.i4.1 + IL_0007: ceq + IL_0009: ret + } // end of method Discr::get_IsCaseB + + .method public hidebysig instance int32 + get_Tag() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 SteppingMatch07/Discr::_tag + IL_0006: ret + } // end of method Discr::get_Tag + + .method assembly hidebysig specialname + instance object __DebugDisplay() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+0.8A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::__DebugDisplay + + .method public strict virtual instance string + ToString() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldstr "%+A" + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class SteppingMatch07/Discr>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_000f: ldarg.0 + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0015: ret + } // end of method Discr::ToString + + .method public hidebysig virtual final + instance int32 CompareTo(class SteppingMatch07/Discr obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0020 + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_001e + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch07/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch07/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: bne.un.s IL_001a + + IL_0018: ldc.i4.0 + IL_0019: ret + + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: sub + IL_001d: ret + + IL_001e: ldc.i4.1 + IL_001f: ret + + IL_0020: ldarg.1 + IL_0021: brfalse.s IL_0025 + + IL_0023: ldc.i4.m1 + IL_0024: ret + + IL_0025: ldc.i4.0 + IL_0026: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: unbox.any SteppingMatch07/Discr + IL_0007: callvirt instance int32 SteppingMatch07/Discr::CompareTo(class SteppingMatch07/Discr) + IL_000c: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 CompareTo(object obj, + class [System.Runtime]System.Collections.IComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 56 (0x38) + .maxstack 4 + .locals init (class SteppingMatch07/Discr V_0, + int32 V_1, + int32 V_2) + IL_0000: ldarg.1 + IL_0001: unbox.any SteppingMatch07/Discr + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: brfalse.s IL_002c + + IL_000a: ldarg.1 + IL_000b: unbox.any SteppingMatch07/Discr + IL_0010: brfalse.s IL_002a + + IL_0012: ldarg.0 + IL_0013: ldfld int32 SteppingMatch07/Discr::_tag + IL_0018: stloc.1 + IL_0019: ldloc.0 + IL_001a: ldfld int32 SteppingMatch07/Discr::_tag + IL_001f: stloc.2 + IL_0020: ldloc.1 + IL_0021: ldloc.2 + IL_0022: bne.un.s IL_0026 + + IL_0024: ldc.i4.0 + IL_0025: ret + + IL_0026: ldloc.1 + IL_0027: ldloc.2 + IL_0028: sub + IL_0029: ret + + IL_002a: ldc.i4.1 + IL_002b: ret + + IL_002c: ldarg.1 + IL_002d: unbox.any SteppingMatch07/Discr + IL_0032: brfalse.s IL_0036 + + IL_0034: ldc.i4.m1 + IL_0035: ret + + IL_0036: ldc.i4.0 + IL_0037: ret + } // end of method Discr::CompareTo + + .method public hidebysig virtual final + instance int32 GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000c + + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: ldarg.0 + IL_0006: ldfld int32 SteppingMatch07/Discr::_tag + IL_000b: ret + + IL_000c: ldc.i4.0 + IL_000d: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance int32 GetHashCode() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call class [System.Runtime]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() + IL_0006: callvirt instance int32 SteppingMatch07/Discr::GetHashCode(class [System.Runtime]System.Collections.IEqualityComparer) + IL_000b: ret + } // end of method Discr::GetHashCode + + .method public hidebysig virtual final + instance bool Equals(object obj, + class [System.Runtime]System.Collections.IEqualityComparer comp) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 44 (0x2c) + .maxstack 4 + .locals init (class SteppingMatch07/Discr V_0, + class SteppingMatch07/Discr V_1, + int32 V_2, + int32 V_3) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0024 + + IL_0003: ldarg.1 + IL_0004: isinst SteppingMatch07/Discr + IL_0009: stloc.0 + IL_000a: ldloc.0 + IL_000b: brfalse.s IL_0022 + + IL_000d: ldloc.0 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: ldfld int32 SteppingMatch07/Discr::_tag + IL_0015: stloc.2 + IL_0016: ldloc.1 + IL_0017: ldfld int32 SteppingMatch07/Discr::_tag + IL_001c: stloc.3 + IL_001d: ldloc.2 + IL_001e: ldloc.3 + IL_001f: ceq + IL_0021: ret + + IL_0022: ldc.i4.0 + IL_0023: ret + + IL_0024: ldarg.1 + IL_0025: ldnull + IL_0026: cgt.un + IL_0028: ldc.i4.0 + IL_0029: ceq + IL_002b: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(class SteppingMatch07/Discr obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 35 (0x23) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_001b + + IL_0003: ldarg.1 + IL_0004: brfalse.s IL_0019 + + IL_0006: ldarg.0 + IL_0007: ldfld int32 SteppingMatch07/Discr::_tag + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: ldfld int32 SteppingMatch07/Discr::_tag + IL_0013: stloc.1 + IL_0014: ldloc.0 + IL_0015: ldloc.1 + IL_0016: ceq + IL_0018: ret + + IL_0019: ldc.i4.0 + IL_001a: ret + + IL_001b: ldarg.1 + IL_001c: ldnull + IL_001d: cgt.un + IL_001f: ldc.i4.0 + IL_0020: ceq + IL_0022: ret + } // end of method Discr::Equals + + .method public hidebysig virtual final + instance bool Equals(object obj) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 20 (0x14) + .maxstack 4 + .locals init (class SteppingMatch07/Discr V_0) + IL_0000: ldarg.1 + IL_0001: isinst SteppingMatch07/Discr + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool SteppingMatch07/Discr::Equals(class SteppingMatch07/Discr) + IL_0011: ret + + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method Discr::Equals + + .property instance int32 Tag() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance int32 SteppingMatch07/Discr::get_Tag() + } // end of property Discr::Tag + .property class SteppingMatch07/Discr + CaseA() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch07/Discr SteppingMatch07/Discr::get_CaseA() + } // end of property Discr::CaseA + .property instance bool IsCaseA() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch07/Discr::get_IsCaseA() + } // end of property Discr::IsCaseA + .property class SteppingMatch07/Discr + CaseB() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get class SteppingMatch07/Discr SteppingMatch07/Discr::get_CaseB() + } // end of property Discr::CaseB + .property instance bool IsCaseB() + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .get instance bool SteppingMatch07/Discr::get_IsCaseB() + } // end of property Discr::IsCaseB + } // end of class Discr + + .method public static void funcE(class SteppingMatch07/Discr n) cil managed + { + // Code size 34 (0x22) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance int32 SteppingMatch07/Discr::get_Tag() + IL_0007: ldc.i4.1 + IL_0008: bne.un.s IL_000c + + IL_000a: br.s IL_0017 + + IL_000c: ldstr "A" + IL_0011: call void [System.Console]System.Console::WriteLine(string) + IL_0016: ret + + IL_0017: ldstr "B" + IL_001c: call void [System.Console]System.Console::WriteLine(string) + IL_0021: ret + } // end of method SteppingMatch07::funcE + +} // end of class SteppingMatch07 + +.class private abstract auto ansi sealed ''.$SteppingMatch07 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch07::main@ + +} // end of class ''.$SteppingMatch07 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\SteppingMatch\SteppingMatch07_fs\SteppingMatch07.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch08.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch08.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch08.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch08.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch08.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch08.fs.il.bsl similarity index 72% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch08.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch08.fs.il.bsl index 53a1dcd156f1ec8c199ab4e70de38287f0dbb872..1288147e3726d7de65f9e126d2d3a09153357bc2 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch08.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch08.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly SteppingMatch08 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.SteppingMatch08 { - // Offset: 0x00000000 Length: 0x000001DB + // Offset: 0x00000000 Length: 0x00000213 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch08 created } .mresource public FSharpOptimizationData.SteppingMatch08 { - // Offset: 0x000001E0 Length: 0x00000079 + // Offset: 0x00000218 Length: 0x00000079 + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch08 created } -.module SteppingMatch08.dll -// MVID: {611C4D99-F238-BA3A-A745-0383994D1C61} +.module SteppingMatch08.exe +// MVID: {624CD660-C1FA-4792-A745-038360D64C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05A00000 +// Image base: 0x03590000 // =============== CLASS MEMBERS DECLARATION =================== @@ -55,29 +56,20 @@ { // Code size 21 (0x15) .maxstack 3 - .locals init ([0] int32 b) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch08.fs' + .locals init (int32 V_0) IL_0000: nop - .line 100001,100001 : 0,0 '' IL_0001: ldarg.0 IL_0002: switch ( IL_000d) IL_000b: br.s IL_0011 - .line 6,6 : 16,17 '' IL_000d: ldc.i4.2 - .line 100001,100001 : 0,0 '' IL_000e: nop IL_000f: br.s IL_0013 - .line 7,7 : 18,19 '' IL_0011: ldc.i4.0 - .line 100001,100001 : 0,0 '' IL_0012: nop - .line 100001,100001 : 0,0 '' IL_0013: stloc.0 - .line 10,10 : 5,38 '' IL_0014: ret } // end of method SteppingMatch08::test @@ -86,9 +78,18 @@ .class private abstract auto ansi sealed ''.$SteppingMatch08 extends [mscorlib]System.Object { + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch08::main@ + } // end of class ''.$SteppingMatch08 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SteppingMatch\SteppingMatch08_fs\SteppingMatch08.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch09.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch09.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch09.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch09.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch09.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch09.fs.il.bsl similarity index 88% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch09.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch09.fs.il.bsl index 0a66e6643853f9672eef05fe61a04630d587fe4f..9a6883f3bd316f31f4a03f8542805d0567640ea7 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch09.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch09.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly SteppingMatch09 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.SteppingMatch09 { - // Offset: 0x00000000 Length: 0x0000030C + // Offset: 0x00000000 Length: 0x00000344 + // WARNING: managed resource file FSharpSignatureData.SteppingMatch09 created } .mresource public FSharpOptimizationData.SteppingMatch09 { - // Offset: 0x00000310 Length: 0x000000EB + // Offset: 0x00000348 Length: 0x000000EB + // WARNING: managed resource file FSharpOptimizationData.SteppingMatch09 created } -.module SteppingMatch09.dll -// MVID: {611C4D99-4935-D6AC-A745-0383994D1C61} +.module SteppingMatch09.exe +// MVID: {624CD660-7971-492C-A745-038360D64C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x07080000 +// Image base: 0x03130000 // =============== CLASS MEMBERS DECLARATION =================== @@ -123,23 +124,18 @@ { // Code size 20 (0x14) .maxstack 6 - .locals init ([0] class SteppingMatch09/GenericInner@15 V_0) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 16,16 : 6,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch09.fs' + .locals init (class SteppingMatch09/GenericInner@15 V_0) IL_0000: ldarg.0 IL_0001: ldfld class SteppingMatch09/GenericInner@15 class SteppingMatch09/GenericInner@15T::self0@ IL_0006: stloc.0 IL_0007: nop - .line 100001,100001 : 0,0 '' IL_0008: ldarg.1 IL_0009: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_000e: brtrue.s IL_0012 - .line 17,17 : 14,15 '' IL_0010: ldc.i4.1 IL_0011: ret - .line 18,18 : 13,14 '' IL_0012: ldc.i4.2 IL_0013: ret } // end of method GenericInner@15T::Invoke @@ -167,18 +163,14 @@ { // Code size 13 (0xd) .maxstack 8 - .line 25,25 : 6,21 '' IL_0000: nop - .line 100001,100001 : 0,0 '' IL_0001: ldarg.1 IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_0007: brtrue.s IL_000b - .line 26,26 : 14,15 '' IL_0009: ldc.i4.1 IL_000a: ret - .line 27,27 : 13,14 '' IL_000b: ldc.i4.2 IL_000c: ret } // end of method NonGenericInner@25::Invoke @@ -219,18 +211,14 @@ { // Code size 18 (0x12) .maxstack 8 - .line 34,34 : 6,21 '' IL_0000: nop - .line 100001,100001 : 0,0 '' IL_0001: ldarg.1 IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_0007: brtrue.s IL_000b - .line 35,35 : 14,15 '' IL_0009: ldc.i4.1 IL_000a: ret - .line 36,36 : 13,14 '' IL_000b: ldarg.0 IL_000c: ldfld int32 SteppingMatch09/NonGenericInnerWithCapture@34::x IL_0011: ret @@ -243,9 +231,7 @@ { // Code size 37 (0x25) .maxstack 8 - .line 5,5 : 9,21 '' IL_0000: nop - .line 100001,100001 : 0,0 '' IL_0001: ldarg.0 IL_0002: ldc.i4.1 IL_0003: sub @@ -254,16 +240,13 @@ IL_001b) IL_0011: br.s IL_001d - .line 7,7 : 13,21 '' IL_0013: ldc.i4.s 10 IL_0015: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) IL_001a: ret - .line 9,9 : 13,17 '' IL_001b: ldnull IL_001c: ret - .line 11,11 : 20,34 '' IL_001d: ldc.i4.s 22 IL_001f: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) IL_0024: ret @@ -273,12 +256,10 @@ { // Code size 28 (0x1c) .maxstack 4 - .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc GenericInner, - [1] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1) - .line 100001,100001 : 0,0 '' + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc V_0, + class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1) IL_0000: ldsfld class SteppingMatch09/GenericInner@15 SteppingMatch09/GenericInner@15::@_instance IL_0005: stloc.0 - .line 20,20 : 3,20 '' IL_0006: ldloc.0 IL_0007: ldarg.0 IL_0008: stloc.1 @@ -294,11 +275,9 @@ { // Code size 16 (0x10) .maxstack 4 - .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,int32> NonGenericInner) - .line 100001,100001 : 0,0 '' + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,int32> V_0) IL_0000: ldsfld class SteppingMatch09/NonGenericInner@25 SteppingMatch09/NonGenericInner@25::@_instance IL_0005: stloc.0 - .line 29,29 : 3,23 '' IL_0006: ldloc.0 IL_0007: ldarg.0 IL_0008: tail. @@ -312,12 +291,10 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) // Code size 17 (0x11) .maxstack 4 - .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,int32> NonGenericInnerWithCapture) - .line 100001,100001 : 0,0 '' + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,int32> V_0) IL_0000: ldarg.0 IL_0001: newobj instance void SteppingMatch09/NonGenericInnerWithCapture@34::.ctor(int32) IL_0006: stloc.0 - .line 38,38 : 3,34 '' IL_0007: ldloc.0 IL_0008: ldarg.1 IL_0009: tail. @@ -330,9 +307,18 @@ .class private abstract auto ansi sealed ''.$SteppingMatch09 extends [mscorlib]System.Object { + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $SteppingMatch09::main@ + } // end of class ''.$SteppingMatch09 // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Debug\net472\tests\EmittedIL\SteppingMatch\SteppingMatch09_fs\SteppingMatch09.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/OptionalArg01.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/OptionalArg01.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.bsl new file mode 100644 index 0000000000000000000000000000000000000000..189051d08b9eb231345205ddb8e60b47c29c21d1 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.bsl @@ -0,0 +1,631 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly OptionalArg01 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.OptionalArg01 +{ + // Offset: 0x00000000 Length: 0x0000049B + // WARNING: managed resource file FSharpSignatureData.OptionalArg01 created +} +.mresource public FSharpOptimizationData.OptionalArg01 +{ + // Offset: 0x000004A0 Length: 0x0000051C + // WARNING: managed resource file FSharpOptimizationData.OptionalArg01 created +} +.module OptionalArg01.exe +// MVID: {624CF085-4F48-B5AF-A745-038385F04C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x052E0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed OptionalArg01 + 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 ) + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // 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 A::.ctor + + } // end of class A + + .class auto ansi serializable nested public C + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // 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 C::.ctor + + .method public static class [mscorlib]System.Collections.Generic.List`1 + F(class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x2) cil managed + { + .param [1] + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) + .param [2] + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 127 (0x7f) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_3, + int32 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_6, + class [mscorlib]System.Collections.Generic.List`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_9, + class OptionalArg01/A V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class OptionalArg01/A V_13) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: ldarg.0 + IL_0003: stloc.2 + IL_0004: ldloc.2 + IL_0005: brfalse.s IL_0009 + + IL_0007: br.s IL_000d + + IL_0009: ldloc.0 + IL_000a: nop + IL_000b: br.s IL_0013 + + IL_000d: ldloc.2 + IL_000e: stloc.3 + IL_000f: ldloc.0 + IL_0010: ldc.i4.1 + IL_0011: add + IL_0012: nop + IL_0013: stloc.1 + IL_0014: ldarg.1 + IL_0015: stloc.s V_5 + IL_0017: ldloc.s V_5 + IL_0019: brfalse.s IL_001d + + IL_001b: br.s IL_0021 + + IL_001d: ldloc.1 + IL_001e: nop + IL_001f: br.s IL_0029 + + IL_0021: ldloc.s V_5 + IL_0023: stloc.s V_6 + IL_0025: ldloc.1 + IL_0026: ldc.i4.1 + IL_0027: add + IL_0028: nop + IL_0029: stloc.s V_4 + IL_002b: ldloc.s V_4 + IL_002d: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_0032: stloc.s V_7 + IL_0034: ldarg.0 + IL_0035: stloc.s V_8 + IL_0037: ldloc.s V_8 + IL_0039: brfalse.s IL_003d + + IL_003b: br.s IL_0041 + + IL_003d: nop + IL_003e: nop + IL_003f: br.s IL_0058 + + IL_0041: ldloc.s V_8 + IL_0043: stloc.s V_9 + IL_0045: ldloc.s V_9 + IL_0047: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_004c: stloc.s V_10 + IL_004e: ldloc.s V_7 + IL_0050: ldloc.s V_10 + IL_0052: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0057: nop + IL_0058: ldarg.1 + IL_0059: stloc.s V_11 + IL_005b: ldloc.s V_11 + IL_005d: brfalse.s IL_0061 + + IL_005f: br.s IL_0065 + + IL_0061: nop + IL_0062: nop + IL_0063: br.s IL_007c + + IL_0065: ldloc.s V_11 + IL_0067: stloc.s V_12 + IL_0069: ldloc.s V_12 + IL_006b: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0070: stloc.s V_13 + IL_0072: ldloc.s V_7 + IL_0074: ldloc.s V_13 + IL_0076: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_007b: nop + IL_007c: ldloc.s V_7 + IL_007e: ret + } // end of method C::F + + } // end of class C + + .method public static class [mscorlib]System.Collections.Generic.List`1 + test() cil managed + { + // Code size 125 (0x7d) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [mscorlib]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: ldnull + IL_0001: stloc.0 + IL_0002: ldnull + IL_0003: stloc.1 + IL_0004: ldc.i4.0 + IL_0005: stloc.2 + IL_0006: ldloc.0 + IL_0007: stloc.s V_4 + IL_0009: ldloc.s V_4 + IL_000b: brfalse.s IL_000f + + IL_000d: br.s IL_0013 + + IL_000f: ldloc.2 + IL_0010: nop + IL_0011: br.s IL_001b + + IL_0013: ldloc.s V_4 + IL_0015: stloc.s V_5 + IL_0017: ldloc.2 + IL_0018: ldc.i4.1 + IL_0019: add + IL_001a: nop + IL_001b: stloc.3 + IL_001c: ldloc.1 + IL_001d: stloc.s V_7 + IL_001f: ldloc.s V_7 + IL_0021: brfalse.s IL_0025 + + IL_0023: br.s IL_0029 + + IL_0025: ldloc.3 + IL_0026: nop + IL_0027: br.s IL_0031 + + IL_0029: ldloc.s V_7 + IL_002b: stloc.s V_8 + IL_002d: ldloc.3 + IL_002e: ldc.i4.1 + IL_002f: add + IL_0030: nop + IL_0031: stloc.s V_6 + IL_0033: ldloc.s V_6 + IL_0035: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_003a: stloc.s V_9 + IL_003c: ldloc.0 + IL_003d: stloc.s V_10 + IL_003f: ldloc.s V_10 + IL_0041: brfalse.s IL_0045 + + IL_0043: br.s IL_0048 + + IL_0045: nop + IL_0046: br.s IL_005b + + IL_0048: ldloc.s V_10 + IL_004a: stloc.s V_11 + IL_004c: ldloc.s V_9 + IL_004e: ldloc.s V_11 + IL_0050: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0055: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_005a: nop + IL_005b: ldloc.1 + IL_005c: stloc.s V_12 + IL_005e: ldloc.s V_12 + IL_0060: brfalse.s IL_0064 + + IL_0062: br.s IL_0067 + + IL_0064: nop + IL_0065: br.s IL_007a + + IL_0067: ldloc.s V_12 + IL_0069: stloc.s V_13 + IL_006b: ldloc.s V_9 + IL_006d: ldloc.s V_13 + IL_006f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0074: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0079: nop + IL_007a: ldloc.s V_9 + IL_007c: ret + } // end of method OptionalArg01::test + + .method public static class [mscorlib]System.Collections.Generic.List`1 + test2() cil managed + { + // Code size 134 (0x86) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [mscorlib]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: newobj instance void OptionalArg01/A::.ctor() + IL_0005: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000a: stloc.0 + IL_000b: ldnull + IL_000c: stloc.1 + IL_000d: ldc.i4.0 + IL_000e: stloc.2 + IL_000f: ldloc.0 + IL_0010: stloc.s V_4 + IL_0012: ldloc.s V_4 + IL_0014: brfalse.s IL_0018 + + IL_0016: br.s IL_001c + + IL_0018: ldloc.2 + IL_0019: nop + IL_001a: br.s IL_0024 + + IL_001c: ldloc.s V_4 + IL_001e: stloc.s V_5 + IL_0020: ldloc.2 + IL_0021: ldc.i4.1 + IL_0022: add + IL_0023: nop + IL_0024: stloc.3 + IL_0025: ldloc.1 + IL_0026: stloc.s V_7 + IL_0028: ldloc.s V_7 + IL_002a: brfalse.s IL_002e + + IL_002c: br.s IL_0032 + + IL_002e: ldloc.3 + IL_002f: nop + IL_0030: br.s IL_003a + + IL_0032: ldloc.s V_7 + IL_0034: stloc.s V_8 + IL_0036: ldloc.3 + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: nop + IL_003a: stloc.s V_6 + IL_003c: ldloc.s V_6 + IL_003e: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_0043: stloc.s V_9 + IL_0045: ldloc.0 + IL_0046: stloc.s V_10 + IL_0048: ldloc.s V_10 + IL_004a: brfalse.s IL_004e + + IL_004c: br.s IL_0051 + + IL_004e: nop + IL_004f: br.s IL_0064 + + IL_0051: ldloc.s V_10 + IL_0053: stloc.s V_11 + IL_0055: ldloc.s V_9 + IL_0057: ldloc.s V_11 + IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_005e: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0063: nop + IL_0064: ldloc.1 + IL_0065: stloc.s V_12 + IL_0067: ldloc.s V_12 + IL_0069: brfalse.s IL_006d + + IL_006b: br.s IL_0070 + + IL_006d: nop + IL_006e: br.s IL_0083 + + IL_0070: ldloc.s V_12 + IL_0072: stloc.s V_13 + IL_0074: ldloc.s V_9 + IL_0076: ldloc.s V_13 + IL_0078: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_007d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0082: nop + IL_0083: ldloc.s V_9 + IL_0085: ret + } // end of method OptionalArg01::test2 + + .method public static class [mscorlib]System.Collections.Generic.List`1 + test3() cil managed + { + // Code size 134 (0x86) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [mscorlib]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: ldnull + IL_0001: stloc.0 + IL_0002: newobj instance void OptionalArg01/A::.ctor() + IL_0007: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000c: stloc.1 + IL_000d: ldc.i4.0 + IL_000e: stloc.2 + IL_000f: ldloc.0 + IL_0010: stloc.s V_4 + IL_0012: ldloc.s V_4 + IL_0014: brfalse.s IL_0018 + + IL_0016: br.s IL_001c + + IL_0018: ldloc.2 + IL_0019: nop + IL_001a: br.s IL_0024 + + IL_001c: ldloc.s V_4 + IL_001e: stloc.s V_5 + IL_0020: ldloc.2 + IL_0021: ldc.i4.1 + IL_0022: add + IL_0023: nop + IL_0024: stloc.3 + IL_0025: ldloc.1 + IL_0026: stloc.s V_7 + IL_0028: ldloc.s V_7 + IL_002a: brfalse.s IL_002e + + IL_002c: br.s IL_0032 + + IL_002e: ldloc.3 + IL_002f: nop + IL_0030: br.s IL_003a + + IL_0032: ldloc.s V_7 + IL_0034: stloc.s V_8 + IL_0036: ldloc.3 + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: nop + IL_003a: stloc.s V_6 + IL_003c: ldloc.s V_6 + IL_003e: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_0043: stloc.s V_9 + IL_0045: ldloc.0 + IL_0046: stloc.s V_10 + IL_0048: ldloc.s V_10 + IL_004a: brfalse.s IL_004e + + IL_004c: br.s IL_0051 + + IL_004e: nop + IL_004f: br.s IL_0064 + + IL_0051: ldloc.s V_10 + IL_0053: stloc.s V_11 + IL_0055: ldloc.s V_9 + IL_0057: ldloc.s V_11 + IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_005e: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0063: nop + IL_0064: ldloc.1 + IL_0065: stloc.s V_12 + IL_0067: ldloc.s V_12 + IL_0069: brfalse.s IL_006d + + IL_006b: br.s IL_0070 + + IL_006d: nop + IL_006e: br.s IL_0083 + + IL_0070: ldloc.s V_12 + IL_0072: stloc.s V_13 + IL_0074: ldloc.s V_9 + IL_0076: ldloc.s V_13 + IL_0078: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_007d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0082: nop + IL_0083: ldloc.s V_9 + IL_0085: ret + } // end of method OptionalArg01::test3 + + .method public static class [mscorlib]System.Collections.Generic.List`1 + test4() cil managed + { + // Code size 143 (0x8f) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [mscorlib]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: newobj instance void OptionalArg01/A::.ctor() + IL_0005: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000a: stloc.0 + IL_000b: newobj instance void OptionalArg01/A::.ctor() + IL_0010: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_0015: stloc.1 + IL_0016: ldc.i4.0 + IL_0017: stloc.2 + IL_0018: ldloc.0 + IL_0019: stloc.s V_4 + IL_001b: ldloc.s V_4 + IL_001d: brfalse.s IL_0021 + + IL_001f: br.s IL_0025 + + IL_0021: ldloc.2 + IL_0022: nop + IL_0023: br.s IL_002d + + IL_0025: ldloc.s V_4 + IL_0027: stloc.s V_5 + IL_0029: ldloc.2 + IL_002a: ldc.i4.1 + IL_002b: add + IL_002c: nop + IL_002d: stloc.3 + IL_002e: ldloc.1 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_7 + IL_0033: brfalse.s IL_0037 + + IL_0035: br.s IL_003b + + IL_0037: ldloc.3 + IL_0038: nop + IL_0039: br.s IL_0043 + + IL_003b: ldloc.s V_7 + IL_003d: stloc.s V_8 + IL_003f: ldloc.3 + IL_0040: ldc.i4.1 + IL_0041: add + IL_0042: nop + IL_0043: stloc.s V_6 + IL_0045: ldloc.s V_6 + IL_0047: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_004c: stloc.s V_9 + IL_004e: ldloc.0 + IL_004f: stloc.s V_10 + IL_0051: ldloc.s V_10 + IL_0053: brfalse.s IL_0057 + + IL_0055: br.s IL_005a + + IL_0057: nop + IL_0058: br.s IL_006d + + IL_005a: ldloc.s V_10 + IL_005c: stloc.s V_11 + IL_005e: ldloc.s V_9 + IL_0060: ldloc.s V_11 + IL_0062: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0067: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_006c: nop + IL_006d: ldloc.1 + IL_006e: stloc.s V_12 + IL_0070: ldloc.s V_12 + IL_0072: brfalse.s IL_0076 + + IL_0074: br.s IL_0079 + + IL_0076: nop + IL_0077: br.s IL_008c + + IL_0079: ldloc.s V_12 + IL_007b: stloc.s V_13 + IL_007d: ldloc.s V_9 + IL_007f: ldloc.s V_13 + IL_0081: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0086: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_008b: nop + IL_008c: ldloc.s V_9 + IL_008e: ret + } // end of method OptionalArg01::test4 + +} // end of class OptionalArg01 + +.class private abstract auto ansi sealed ''.$OptionalArg01 + extends [mscorlib]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $OptionalArg01::main@ + +} // end of class ''.$OptionalArg01 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\OptionalArg01_fs\OptionalArg01.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.net472.bsl new file mode 100644 index 0000000000000000000000000000000000000000..5bb2c2c6e6f1fc2c64a59f3a7b862a799a0ec0a5 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.net472.bsl @@ -0,0 +1,631 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly OptionalArg01 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.OptionalArg01 +{ + // Offset: 0x00000000 Length: 0x0000049B + // WARNING: managed resource file FSharpSignatureData.OptionalArg01 created +} +.mresource public FSharpOptimizationData.OptionalArg01 +{ + // Offset: 0x000004A0 Length: 0x0000051C + // WARNING: managed resource file FSharpOptimizationData.OptionalArg01 created +} +.module OptionalArg01.exe +// MVID: {624CF02A-4F48-B5AF-A745-03832AF04C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x03D60000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed OptionalArg01 + 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 ) + .class auto ansi serializable nested public A + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // 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 A::.ctor + + } // end of class A + + .class auto ansi serializable nested public C + extends [mscorlib]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // 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 C::.ctor + + .method public static class [mscorlib]System.Collections.Generic.List`1 + F(class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x2) cil managed + { + .param [1] + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) + .param [2] + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 127 (0x7f) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_3, + int32 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_6, + class [mscorlib]System.Collections.Generic.List`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_9, + class OptionalArg01/A V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class OptionalArg01/A V_13) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: ldarg.0 + IL_0003: stloc.2 + IL_0004: ldloc.2 + IL_0005: brfalse.s IL_0009 + + IL_0007: br.s IL_000d + + IL_0009: ldloc.0 + IL_000a: nop + IL_000b: br.s IL_0013 + + IL_000d: ldloc.2 + IL_000e: stloc.3 + IL_000f: ldloc.0 + IL_0010: ldc.i4.1 + IL_0011: add + IL_0012: nop + IL_0013: stloc.1 + IL_0014: ldarg.1 + IL_0015: stloc.s V_5 + IL_0017: ldloc.s V_5 + IL_0019: brfalse.s IL_001d + + IL_001b: br.s IL_0021 + + IL_001d: ldloc.1 + IL_001e: nop + IL_001f: br.s IL_0029 + + IL_0021: ldloc.s V_5 + IL_0023: stloc.s V_6 + IL_0025: ldloc.1 + IL_0026: ldc.i4.1 + IL_0027: add + IL_0028: nop + IL_0029: stloc.s V_4 + IL_002b: ldloc.s V_4 + IL_002d: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_0032: stloc.s V_7 + IL_0034: ldarg.0 + IL_0035: stloc.s V_8 + IL_0037: ldloc.s V_8 + IL_0039: brfalse.s IL_003d + + IL_003b: br.s IL_0041 + + IL_003d: nop + IL_003e: nop + IL_003f: br.s IL_0058 + + IL_0041: ldloc.s V_8 + IL_0043: stloc.s V_9 + IL_0045: ldloc.s V_9 + IL_0047: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_004c: stloc.s V_10 + IL_004e: ldloc.s V_7 + IL_0050: ldloc.s V_10 + IL_0052: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0057: nop + IL_0058: ldarg.1 + IL_0059: stloc.s V_11 + IL_005b: ldloc.s V_11 + IL_005d: brfalse.s IL_0061 + + IL_005f: br.s IL_0065 + + IL_0061: nop + IL_0062: nop + IL_0063: br.s IL_007c + + IL_0065: ldloc.s V_11 + IL_0067: stloc.s V_12 + IL_0069: ldloc.s V_12 + IL_006b: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0070: stloc.s V_13 + IL_0072: ldloc.s V_7 + IL_0074: ldloc.s V_13 + IL_0076: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_007b: nop + IL_007c: ldloc.s V_7 + IL_007e: ret + } // end of method C::F + + } // end of class C + + .method public static class [mscorlib]System.Collections.Generic.List`1 + test() cil managed + { + // Code size 125 (0x7d) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [mscorlib]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: ldnull + IL_0001: stloc.0 + IL_0002: ldnull + IL_0003: stloc.1 + IL_0004: ldc.i4.0 + IL_0005: stloc.2 + IL_0006: ldloc.0 + IL_0007: stloc.s V_4 + IL_0009: ldloc.s V_4 + IL_000b: brfalse.s IL_000f + + IL_000d: br.s IL_0013 + + IL_000f: ldloc.2 + IL_0010: nop + IL_0011: br.s IL_001b + + IL_0013: ldloc.s V_4 + IL_0015: stloc.s V_5 + IL_0017: ldloc.2 + IL_0018: ldc.i4.1 + IL_0019: add + IL_001a: nop + IL_001b: stloc.3 + IL_001c: ldloc.1 + IL_001d: stloc.s V_7 + IL_001f: ldloc.s V_7 + IL_0021: brfalse.s IL_0025 + + IL_0023: br.s IL_0029 + + IL_0025: ldloc.3 + IL_0026: nop + IL_0027: br.s IL_0031 + + IL_0029: ldloc.s V_7 + IL_002b: stloc.s V_8 + IL_002d: ldloc.3 + IL_002e: ldc.i4.1 + IL_002f: add + IL_0030: nop + IL_0031: stloc.s V_6 + IL_0033: ldloc.s V_6 + IL_0035: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_003a: stloc.s V_9 + IL_003c: ldloc.0 + IL_003d: stloc.s V_10 + IL_003f: ldloc.s V_10 + IL_0041: brfalse.s IL_0045 + + IL_0043: br.s IL_0048 + + IL_0045: nop + IL_0046: br.s IL_005b + + IL_0048: ldloc.s V_10 + IL_004a: stloc.s V_11 + IL_004c: ldloc.s V_9 + IL_004e: ldloc.s V_11 + IL_0050: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0055: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_005a: nop + IL_005b: ldloc.1 + IL_005c: stloc.s V_12 + IL_005e: ldloc.s V_12 + IL_0060: brfalse.s IL_0064 + + IL_0062: br.s IL_0067 + + IL_0064: nop + IL_0065: br.s IL_007a + + IL_0067: ldloc.s V_12 + IL_0069: stloc.s V_13 + IL_006b: ldloc.s V_9 + IL_006d: ldloc.s V_13 + IL_006f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0074: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0079: nop + IL_007a: ldloc.s V_9 + IL_007c: ret + } // end of method OptionalArg01::test + + .method public static class [mscorlib]System.Collections.Generic.List`1 + test2() cil managed + { + // Code size 134 (0x86) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [mscorlib]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: newobj instance void OptionalArg01/A::.ctor() + IL_0005: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000a: stloc.0 + IL_000b: ldnull + IL_000c: stloc.1 + IL_000d: ldc.i4.0 + IL_000e: stloc.2 + IL_000f: ldloc.0 + IL_0010: stloc.s V_4 + IL_0012: ldloc.s V_4 + IL_0014: brfalse.s IL_0018 + + IL_0016: br.s IL_001c + + IL_0018: ldloc.2 + IL_0019: nop + IL_001a: br.s IL_0024 + + IL_001c: ldloc.s V_4 + IL_001e: stloc.s V_5 + IL_0020: ldloc.2 + IL_0021: ldc.i4.1 + IL_0022: add + IL_0023: nop + IL_0024: stloc.3 + IL_0025: ldloc.1 + IL_0026: stloc.s V_7 + IL_0028: ldloc.s V_7 + IL_002a: brfalse.s IL_002e + + IL_002c: br.s IL_0032 + + IL_002e: ldloc.3 + IL_002f: nop + IL_0030: br.s IL_003a + + IL_0032: ldloc.s V_7 + IL_0034: stloc.s V_8 + IL_0036: ldloc.3 + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: nop + IL_003a: stloc.s V_6 + IL_003c: ldloc.s V_6 + IL_003e: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_0043: stloc.s V_9 + IL_0045: ldloc.0 + IL_0046: stloc.s V_10 + IL_0048: ldloc.s V_10 + IL_004a: brfalse.s IL_004e + + IL_004c: br.s IL_0051 + + IL_004e: nop + IL_004f: br.s IL_0064 + + IL_0051: ldloc.s V_10 + IL_0053: stloc.s V_11 + IL_0055: ldloc.s V_9 + IL_0057: ldloc.s V_11 + IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_005e: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0063: nop + IL_0064: ldloc.1 + IL_0065: stloc.s V_12 + IL_0067: ldloc.s V_12 + IL_0069: brfalse.s IL_006d + + IL_006b: br.s IL_0070 + + IL_006d: nop + IL_006e: br.s IL_0083 + + IL_0070: ldloc.s V_12 + IL_0072: stloc.s V_13 + IL_0074: ldloc.s V_9 + IL_0076: ldloc.s V_13 + IL_0078: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_007d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0082: nop + IL_0083: ldloc.s V_9 + IL_0085: ret + } // end of method OptionalArg01::test2 + + .method public static class [mscorlib]System.Collections.Generic.List`1 + test3() cil managed + { + // Code size 134 (0x86) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [mscorlib]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: ldnull + IL_0001: stloc.0 + IL_0002: newobj instance void OptionalArg01/A::.ctor() + IL_0007: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000c: stloc.1 + IL_000d: ldc.i4.0 + IL_000e: stloc.2 + IL_000f: ldloc.0 + IL_0010: stloc.s V_4 + IL_0012: ldloc.s V_4 + IL_0014: brfalse.s IL_0018 + + IL_0016: br.s IL_001c + + IL_0018: ldloc.2 + IL_0019: nop + IL_001a: br.s IL_0024 + + IL_001c: ldloc.s V_4 + IL_001e: stloc.s V_5 + IL_0020: ldloc.2 + IL_0021: ldc.i4.1 + IL_0022: add + IL_0023: nop + IL_0024: stloc.3 + IL_0025: ldloc.1 + IL_0026: stloc.s V_7 + IL_0028: ldloc.s V_7 + IL_002a: brfalse.s IL_002e + + IL_002c: br.s IL_0032 + + IL_002e: ldloc.3 + IL_002f: nop + IL_0030: br.s IL_003a + + IL_0032: ldloc.s V_7 + IL_0034: stloc.s V_8 + IL_0036: ldloc.3 + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: nop + IL_003a: stloc.s V_6 + IL_003c: ldloc.s V_6 + IL_003e: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_0043: stloc.s V_9 + IL_0045: ldloc.0 + IL_0046: stloc.s V_10 + IL_0048: ldloc.s V_10 + IL_004a: brfalse.s IL_004e + + IL_004c: br.s IL_0051 + + IL_004e: nop + IL_004f: br.s IL_0064 + + IL_0051: ldloc.s V_10 + IL_0053: stloc.s V_11 + IL_0055: ldloc.s V_9 + IL_0057: ldloc.s V_11 + IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_005e: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0063: nop + IL_0064: ldloc.1 + IL_0065: stloc.s V_12 + IL_0067: ldloc.s V_12 + IL_0069: brfalse.s IL_006d + + IL_006b: br.s IL_0070 + + IL_006d: nop + IL_006e: br.s IL_0083 + + IL_0070: ldloc.s V_12 + IL_0072: stloc.s V_13 + IL_0074: ldloc.s V_9 + IL_0076: ldloc.s V_13 + IL_0078: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_007d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0082: nop + IL_0083: ldloc.s V_9 + IL_0085: ret + } // end of method OptionalArg01::test3 + + .method public static class [mscorlib]System.Collections.Generic.List`1 + test4() cil managed + { + // Code size 143 (0x8f) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [mscorlib]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: newobj instance void OptionalArg01/A::.ctor() + IL_0005: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000a: stloc.0 + IL_000b: newobj instance void OptionalArg01/A::.ctor() + IL_0010: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_0015: stloc.1 + IL_0016: ldc.i4.0 + IL_0017: stloc.2 + IL_0018: ldloc.0 + IL_0019: stloc.s V_4 + IL_001b: ldloc.s V_4 + IL_001d: brfalse.s IL_0021 + + IL_001f: br.s IL_0025 + + IL_0021: ldloc.2 + IL_0022: nop + IL_0023: br.s IL_002d + + IL_0025: ldloc.s V_4 + IL_0027: stloc.s V_5 + IL_0029: ldloc.2 + IL_002a: ldc.i4.1 + IL_002b: add + IL_002c: nop + IL_002d: stloc.3 + IL_002e: ldloc.1 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_7 + IL_0033: brfalse.s IL_0037 + + IL_0035: br.s IL_003b + + IL_0037: ldloc.3 + IL_0038: nop + IL_0039: br.s IL_0043 + + IL_003b: ldloc.s V_7 + IL_003d: stloc.s V_8 + IL_003f: ldloc.3 + IL_0040: ldc.i4.1 + IL_0041: add + IL_0042: nop + IL_0043: stloc.s V_6 + IL_0045: ldloc.s V_6 + IL_0047: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_004c: stloc.s V_9 + IL_004e: ldloc.0 + IL_004f: stloc.s V_10 + IL_0051: ldloc.s V_10 + IL_0053: brfalse.s IL_0057 + + IL_0055: br.s IL_005a + + IL_0057: nop + IL_0058: br.s IL_006d + + IL_005a: ldloc.s V_10 + IL_005c: stloc.s V_11 + IL_005e: ldloc.s V_9 + IL_0060: ldloc.s V_11 + IL_0062: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0067: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_006c: nop + IL_006d: ldloc.1 + IL_006e: stloc.s V_12 + IL_0070: ldloc.s V_12 + IL_0072: brfalse.s IL_0076 + + IL_0074: br.s IL_0079 + + IL_0076: nop + IL_0077: br.s IL_008c + + IL_0079: ldloc.s V_12 + IL_007b: stloc.s V_13 + IL_007d: ldloc.s V_9 + IL_007f: ldloc.s V_13 + IL_0081: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0086: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_008b: nop + IL_008c: ldloc.s V_9 + IL_008e: ret + } // end of method OptionalArg01::test4 + +} // end of class OptionalArg01 + +.class private abstract auto ansi sealed ''.$OptionalArg01 + extends [mscorlib]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $OptionalArg01::main@ + +} // end of class ''.$OptionalArg01 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\OptionalArg01_fs\OptionalArg01.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.netcore.bsl new file mode 100644 index 0000000000000000000000000000000000000000..14424e4be85cac13c2eb13d518003c9fdd033888 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.netcore.bsl @@ -0,0 +1,636 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Collections +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly OptionalArg01 +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.OptionalArg01 +{ + // Offset: 0x00000000 Length: 0x0000049B + // WARNING: managed resource file FSharpSignatureData.OptionalArg01 created +} +.mresource public FSharpOptimizationData.OptionalArg01 +{ + // Offset: 0x000004A0 Length: 0x00000535 + // WARNING: managed resource file FSharpOptimizationData.OptionalArg01 created +} +.module OptionalArg01.exe +// MVID: {624CEE83-1E6F-95CC-A745-038383EE4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x000002154A2E0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed OptionalArg01 + extends [System.Runtime]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 ) + .class auto ansi serializable nested public A + extends [System.Runtime]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [System.Runtime]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ret + } // end of method A::.ctor + + } // end of class A + + .class auto ansi serializable nested public C + extends [System.Runtime]System.Object + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .method public specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [System.Runtime]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ret + } // end of method C::.ctor + + .method public static class [System.Collections]System.Collections.Generic.List`1 + F(class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x2) cil managed + { + .param [1] + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) + .param [2] + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 127 (0x7f) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_3, + int32 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_6, + class [System.Collections]System.Collections.Generic.List`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_9, + class OptionalArg01/A V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class OptionalArg01/A V_13) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: ldarg.0 + IL_0003: stloc.2 + IL_0004: ldloc.2 + IL_0005: brfalse.s IL_0009 + + IL_0007: br.s IL_000d + + IL_0009: ldloc.0 + IL_000a: nop + IL_000b: br.s IL_0013 + + IL_000d: ldloc.2 + IL_000e: stloc.3 + IL_000f: ldloc.0 + IL_0010: ldc.i4.1 + IL_0011: add + IL_0012: nop + IL_0013: stloc.1 + IL_0014: ldarg.1 + IL_0015: stloc.s V_5 + IL_0017: ldloc.s V_5 + IL_0019: brfalse.s IL_001d + + IL_001b: br.s IL_0021 + + IL_001d: ldloc.1 + IL_001e: nop + IL_001f: br.s IL_0029 + + IL_0021: ldloc.s V_5 + IL_0023: stloc.s V_6 + IL_0025: ldloc.1 + IL_0026: ldc.i4.1 + IL_0027: add + IL_0028: nop + IL_0029: stloc.s V_4 + IL_002b: ldloc.s V_4 + IL_002d: newobj instance void class [System.Collections]System.Collections.Generic.List`1::.ctor(int32) + IL_0032: stloc.s V_7 + IL_0034: ldarg.0 + IL_0035: stloc.s V_8 + IL_0037: ldloc.s V_8 + IL_0039: brfalse.s IL_003d + + IL_003b: br.s IL_0041 + + IL_003d: nop + IL_003e: nop + IL_003f: br.s IL_0058 + + IL_0041: ldloc.s V_8 + IL_0043: stloc.s V_9 + IL_0045: ldloc.s V_9 + IL_0047: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_004c: stloc.s V_10 + IL_004e: ldloc.s V_7 + IL_0050: ldloc.s V_10 + IL_0052: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_0057: nop + IL_0058: ldarg.1 + IL_0059: stloc.s V_11 + IL_005b: ldloc.s V_11 + IL_005d: brfalse.s IL_0061 + + IL_005f: br.s IL_0065 + + IL_0061: nop + IL_0062: nop + IL_0063: br.s IL_007c + + IL_0065: ldloc.s V_11 + IL_0067: stloc.s V_12 + IL_0069: ldloc.s V_12 + IL_006b: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0070: stloc.s V_13 + IL_0072: ldloc.s V_7 + IL_0074: ldloc.s V_13 + IL_0076: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_007b: nop + IL_007c: ldloc.s V_7 + IL_007e: ret + } // end of method C::F + + } // end of class C + + .method public static class [System.Collections]System.Collections.Generic.List`1 + test() cil managed + { + // Code size 125 (0x7d) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [System.Collections]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: ldnull + IL_0001: stloc.0 + IL_0002: ldnull + IL_0003: stloc.1 + IL_0004: ldc.i4.0 + IL_0005: stloc.2 + IL_0006: ldloc.0 + IL_0007: stloc.s V_4 + IL_0009: ldloc.s V_4 + IL_000b: brfalse.s IL_000f + + IL_000d: br.s IL_0013 + + IL_000f: ldloc.2 + IL_0010: nop + IL_0011: br.s IL_001b + + IL_0013: ldloc.s V_4 + IL_0015: stloc.s V_5 + IL_0017: ldloc.2 + IL_0018: ldc.i4.1 + IL_0019: add + IL_001a: nop + IL_001b: stloc.3 + IL_001c: ldloc.1 + IL_001d: stloc.s V_7 + IL_001f: ldloc.s V_7 + IL_0021: brfalse.s IL_0025 + + IL_0023: br.s IL_0029 + + IL_0025: ldloc.3 + IL_0026: nop + IL_0027: br.s IL_0031 + + IL_0029: ldloc.s V_7 + IL_002b: stloc.s V_8 + IL_002d: ldloc.3 + IL_002e: ldc.i4.1 + IL_002f: add + IL_0030: nop + IL_0031: stloc.s V_6 + IL_0033: ldloc.s V_6 + IL_0035: newobj instance void class [System.Collections]System.Collections.Generic.List`1::.ctor(int32) + IL_003a: stloc.s V_9 + IL_003c: ldloc.0 + IL_003d: stloc.s V_10 + IL_003f: ldloc.s V_10 + IL_0041: brfalse.s IL_0045 + + IL_0043: br.s IL_0048 + + IL_0045: nop + IL_0046: br.s IL_005b + + IL_0048: ldloc.s V_10 + IL_004a: stloc.s V_11 + IL_004c: ldloc.s V_9 + IL_004e: ldloc.s V_11 + IL_0050: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0055: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_005a: nop + IL_005b: ldloc.1 + IL_005c: stloc.s V_12 + IL_005e: ldloc.s V_12 + IL_0060: brfalse.s IL_0064 + + IL_0062: br.s IL_0067 + + IL_0064: nop + IL_0065: br.s IL_007a + + IL_0067: ldloc.s V_12 + IL_0069: stloc.s V_13 + IL_006b: ldloc.s V_9 + IL_006d: ldloc.s V_13 + IL_006f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0074: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_0079: nop + IL_007a: ldloc.s V_9 + IL_007c: ret + } // end of method OptionalArg01::test + + .method public static class [System.Collections]System.Collections.Generic.List`1 + test2() cil managed + { + // Code size 134 (0x86) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [System.Collections]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: newobj instance void OptionalArg01/A::.ctor() + IL_0005: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000a: stloc.0 + IL_000b: ldnull + IL_000c: stloc.1 + IL_000d: ldc.i4.0 + IL_000e: stloc.2 + IL_000f: ldloc.0 + IL_0010: stloc.s V_4 + IL_0012: ldloc.s V_4 + IL_0014: brfalse.s IL_0018 + + IL_0016: br.s IL_001c + + IL_0018: ldloc.2 + IL_0019: nop + IL_001a: br.s IL_0024 + + IL_001c: ldloc.s V_4 + IL_001e: stloc.s V_5 + IL_0020: ldloc.2 + IL_0021: ldc.i4.1 + IL_0022: add + IL_0023: nop + IL_0024: stloc.3 + IL_0025: ldloc.1 + IL_0026: stloc.s V_7 + IL_0028: ldloc.s V_7 + IL_002a: brfalse.s IL_002e + + IL_002c: br.s IL_0032 + + IL_002e: ldloc.3 + IL_002f: nop + IL_0030: br.s IL_003a + + IL_0032: ldloc.s V_7 + IL_0034: stloc.s V_8 + IL_0036: ldloc.3 + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: nop + IL_003a: stloc.s V_6 + IL_003c: ldloc.s V_6 + IL_003e: newobj instance void class [System.Collections]System.Collections.Generic.List`1::.ctor(int32) + IL_0043: stloc.s V_9 + IL_0045: ldloc.0 + IL_0046: stloc.s V_10 + IL_0048: ldloc.s V_10 + IL_004a: brfalse.s IL_004e + + IL_004c: br.s IL_0051 + + IL_004e: nop + IL_004f: br.s IL_0064 + + IL_0051: ldloc.s V_10 + IL_0053: stloc.s V_11 + IL_0055: ldloc.s V_9 + IL_0057: ldloc.s V_11 + IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_005e: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_0063: nop + IL_0064: ldloc.1 + IL_0065: stloc.s V_12 + IL_0067: ldloc.s V_12 + IL_0069: brfalse.s IL_006d + + IL_006b: br.s IL_0070 + + IL_006d: nop + IL_006e: br.s IL_0083 + + IL_0070: ldloc.s V_12 + IL_0072: stloc.s V_13 + IL_0074: ldloc.s V_9 + IL_0076: ldloc.s V_13 + IL_0078: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_007d: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_0082: nop + IL_0083: ldloc.s V_9 + IL_0085: ret + } // end of method OptionalArg01::test2 + + .method public static class [System.Collections]System.Collections.Generic.List`1 + test3() cil managed + { + // Code size 134 (0x86) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [System.Collections]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: ldnull + IL_0001: stloc.0 + IL_0002: newobj instance void OptionalArg01/A::.ctor() + IL_0007: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000c: stloc.1 + IL_000d: ldc.i4.0 + IL_000e: stloc.2 + IL_000f: ldloc.0 + IL_0010: stloc.s V_4 + IL_0012: ldloc.s V_4 + IL_0014: brfalse.s IL_0018 + + IL_0016: br.s IL_001c + + IL_0018: ldloc.2 + IL_0019: nop + IL_001a: br.s IL_0024 + + IL_001c: ldloc.s V_4 + IL_001e: stloc.s V_5 + IL_0020: ldloc.2 + IL_0021: ldc.i4.1 + IL_0022: add + IL_0023: nop + IL_0024: stloc.3 + IL_0025: ldloc.1 + IL_0026: stloc.s V_7 + IL_0028: ldloc.s V_7 + IL_002a: brfalse.s IL_002e + + IL_002c: br.s IL_0032 + + IL_002e: ldloc.3 + IL_002f: nop + IL_0030: br.s IL_003a + + IL_0032: ldloc.s V_7 + IL_0034: stloc.s V_8 + IL_0036: ldloc.3 + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: nop + IL_003a: stloc.s V_6 + IL_003c: ldloc.s V_6 + IL_003e: newobj instance void class [System.Collections]System.Collections.Generic.List`1::.ctor(int32) + IL_0043: stloc.s V_9 + IL_0045: ldloc.0 + IL_0046: stloc.s V_10 + IL_0048: ldloc.s V_10 + IL_004a: brfalse.s IL_004e + + IL_004c: br.s IL_0051 + + IL_004e: nop + IL_004f: br.s IL_0064 + + IL_0051: ldloc.s V_10 + IL_0053: stloc.s V_11 + IL_0055: ldloc.s V_9 + IL_0057: ldloc.s V_11 + IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_005e: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_0063: nop + IL_0064: ldloc.1 + IL_0065: stloc.s V_12 + IL_0067: ldloc.s V_12 + IL_0069: brfalse.s IL_006d + + IL_006b: br.s IL_0070 + + IL_006d: nop + IL_006e: br.s IL_0083 + + IL_0070: ldloc.s V_12 + IL_0072: stloc.s V_13 + IL_0074: ldloc.s V_9 + IL_0076: ldloc.s V_13 + IL_0078: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_007d: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_0082: nop + IL_0083: ldloc.s V_9 + IL_0085: ret + } // end of method OptionalArg01::test3 + + .method public static class [System.Collections]System.Collections.Generic.List`1 + test4() cil managed + { + // Code size 143 (0x8f) + .maxstack 4 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_0, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_1, + int32 V_2, + int32 V_3, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_4, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_5, + int32 V_6, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_7, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_8, + class [System.Collections]System.Collections.Generic.List`1 V_9, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_10, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_11, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_12, + class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_13) + IL_0000: newobj instance void OptionalArg01/A::.ctor() + IL_0005: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000a: stloc.0 + IL_000b: newobj instance void OptionalArg01/A::.ctor() + IL_0010: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_0015: stloc.1 + IL_0016: ldc.i4.0 + IL_0017: stloc.2 + IL_0018: ldloc.0 + IL_0019: stloc.s V_4 + IL_001b: ldloc.s V_4 + IL_001d: brfalse.s IL_0021 + + IL_001f: br.s IL_0025 + + IL_0021: ldloc.2 + IL_0022: nop + IL_0023: br.s IL_002d + + IL_0025: ldloc.s V_4 + IL_0027: stloc.s V_5 + IL_0029: ldloc.2 + IL_002a: ldc.i4.1 + IL_002b: add + IL_002c: nop + IL_002d: stloc.3 + IL_002e: ldloc.1 + IL_002f: stloc.s V_7 + IL_0031: ldloc.s V_7 + IL_0033: brfalse.s IL_0037 + + IL_0035: br.s IL_003b + + IL_0037: ldloc.3 + IL_0038: nop + IL_0039: br.s IL_0043 + + IL_003b: ldloc.s V_7 + IL_003d: stloc.s V_8 + IL_003f: ldloc.3 + IL_0040: ldc.i4.1 + IL_0041: add + IL_0042: nop + IL_0043: stloc.s V_6 + IL_0045: ldloc.s V_6 + IL_0047: newobj instance void class [System.Collections]System.Collections.Generic.List`1::.ctor(int32) + IL_004c: stloc.s V_9 + IL_004e: ldloc.0 + IL_004f: stloc.s V_10 + IL_0051: ldloc.s V_10 + IL_0053: brfalse.s IL_0057 + + IL_0055: br.s IL_005a + + IL_0057: nop + IL_0058: br.s IL_006d + + IL_005a: ldloc.s V_10 + IL_005c: stloc.s V_11 + IL_005e: ldloc.s V_9 + IL_0060: ldloc.s V_11 + IL_0062: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0067: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_006c: nop + IL_006d: ldloc.1 + IL_006e: stloc.s V_12 + IL_0070: ldloc.s V_12 + IL_0072: brfalse.s IL_0076 + + IL_0074: br.s IL_0079 + + IL_0076: nop + IL_0077: br.s IL_008c + + IL_0079: ldloc.s V_12 + IL_007b: stloc.s V_13 + IL_007d: ldloc.s V_9 + IL_007f: ldloc.s V_13 + IL_0081: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0086: callvirt instance void class [System.Collections]System.Collections.Generic.List`1::Add(!0) + IL_008b: nop + IL_008c: ldloc.s V_9 + IL_008e: ret + } // end of method OptionalArg01::test4 + +} // end of class OptionalArg01 + +.class private abstract auto ansi sealed ''.$OptionalArg01 + extends [System.Runtime]System.Object +{ + .method public static void main@() cil managed + { + .entrypoint + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method $OptionalArg01::main@ + +} // end of class ''.$OptionalArg01 + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\Tuples\OptionalArg01_fs\OptionalArg01.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple01.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple01.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple01.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.il.bsl similarity index 76% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple01.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.il.bsl index 6b7cc9c8d49f3c6cb6878f0f4b3df15c4d29d3c1..f1e082bf031a2401781aa8715031b8bd38d77af9 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple01.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly Tuple01 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.Tuple01 { - // Offset: 0x00000000 Length: 0x0000013B + // Offset: 0x00000000 Length: 0x00000175 + // WARNING: managed resource file FSharpSignatureData.Tuple01 created } .mresource public FSharpOptimizationData.Tuple01 { - // Offset: 0x00000140 Length: 0x0000004E + // Offset: 0x00000180 Length: 0x0000004E + // WARNING: managed resource file FSharpOptimizationData.Tuple01 created } .module Tuple01.exe -// MVID: {60B68B97-6FDB-3E0B-A745-0383978BB660} +// MVID: {624CEE4C-6FDB-3E0B-A745-03834CEE4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x07270000 +// Image base: 0x03D40000 // =============== CLASS MEMBERS DECLARATION =================== @@ -61,8 +62,6 @@ .entrypoint // Code size 1 (0x1) .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,10 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple01.fs' IL_0000: ret } // end of method $Tuple01::main@ @@ -72,3 +71,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\Tuple01_fs\Tuple01.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple02.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple02.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple02.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple02.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple02.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple02.fs.il.bsl similarity index 81% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple02.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple02.fs.il.bsl index 3f0835a20bc2afc27462439a34b426b1185abfb4..558e8492f76cb438a239eca92532b4f7624c9f8c 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple02.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple02.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly Tuple02 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.Tuple02 { - // Offset: 0x00000000 Length: 0x0000013B + // Offset: 0x00000000 Length: 0x00000175 + // WARNING: managed resource file FSharpSignatureData.Tuple02 created } .mresource public FSharpOptimizationData.Tuple02 { - // Offset: 0x00000140 Length: 0x0000004E + // Offset: 0x00000180 Length: 0x0000004E + // WARNING: managed resource file FSharpOptimizationData.Tuple02 created } .module Tuple02.exe -// MVID: {60B68B97-ECCC-7D58-A745-0383978BB660} +// MVID: {624CEE4C-ECCC-7D58-A745-03834CEE4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x070F0000 +// Image base: 0x03090000 // =============== CLASS MEMBERS DECLARATION =================== @@ -65,8 +66,6 @@ .entrypoint // Code size 9 (0x9) .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,12 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple02.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, @@ -81,3 +80,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\Tuple02_fs\Tuple02.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple03.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple03.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple03.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple03.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple03.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple03.fs.il.bsl similarity index 82% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple03.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple03.fs.il.bsl index 694e959cf2143bf943e59643423a1fc55bf12d16..5eb89c53edab8f3370b98dda47b02034450883d3 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple03.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple03.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly Tuple03 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.Tuple03 { - // Offset: 0x00000000 Length: 0x0000013B + // Offset: 0x00000000 Length: 0x00000175 + // WARNING: managed resource file FSharpSignatureData.Tuple03 created } .mresource public FSharpOptimizationData.Tuple03 { - // Offset: 0x00000140 Length: 0x0000004E + // Offset: 0x00000180 Length: 0x0000004E + // WARNING: managed resource file FSharpOptimizationData.Tuple03 created } .module Tuple03.exe -// MVID: {60B68B97-AD65-A299-A745-0383978BB660} +// MVID: {624CEE4C-AD65-A299-A745-03834CEE4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05690000 +// Image base: 0x03B20000 // =============== CLASS MEMBERS DECLARATION =================== @@ -65,8 +66,6 @@ .entrypoint // Code size 10 (0xa) .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,14 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple03.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 @@ -83,3 +82,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\Tuple03_fs\Tuple03.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple04.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple04.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple04.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple04.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple04.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple04.fs.il.bsl similarity index 82% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple04.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple04.fs.il.bsl index 67ffcf00724067fe8428d08593c4eea3dcb32b49..c211c7fe7550b4aa79422685c7038252396f2a89 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple04.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple04.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly Tuple04 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.Tuple04 { - // Offset: 0x00000000 Length: 0x0000013B + // Offset: 0x00000000 Length: 0x00000175 + // WARNING: managed resource file FSharpSignatureData.Tuple04 created } .mresource public FSharpOptimizationData.Tuple04 { - // Offset: 0x00000140 Length: 0x0000004E + // Offset: 0x00000180 Length: 0x0000004E + // WARNING: managed resource file FSharpOptimizationData.Tuple04 created } .module Tuple04.exe -// MVID: {60B68B97-6A2E-9E97-A745-0383978BB660} +// MVID: {624CEE4C-6A2E-9E97-A745-03834CEE4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06E90000 +// Image base: 0x03720000 // =============== CLASS MEMBERS DECLARATION =================== @@ -65,8 +66,6 @@ .entrypoint // Code size 11 (0xb) .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,16 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple04.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 @@ -85,3 +84,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\Tuple04_fs\Tuple04.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple05.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple05.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple05.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple05.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple05.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple05.fs.il.bsl similarity index 83% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple05.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple05.fs.il.bsl index 0626f63d7bebe5a5a35ff09bb75089bfd68a7877..5f42423558e0b905a39bcaa837cdf4d35a4e9508 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple05.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple05.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly Tuple05 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.Tuple05 { - // Offset: 0x00000000 Length: 0x0000013B + // Offset: 0x00000000 Length: 0x00000175 + // WARNING: managed resource file FSharpSignatureData.Tuple05 created } .mresource public FSharpOptimizationData.Tuple05 { - // Offset: 0x00000140 Length: 0x0000004E + // Offset: 0x00000180 Length: 0x0000004E + // WARNING: managed resource file FSharpOptimizationData.Tuple05 created } .module Tuple05.exe -// MVID: {60B68B97-349F-319F-A745-0383978BB660} +// MVID: {624CEE4C-349F-319F-A745-03834CEE4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06BA0000 +// Image base: 0x03170000 // =============== CLASS MEMBERS DECLARATION =================== @@ -65,8 +66,6 @@ .entrypoint // Code size 12 (0xc) .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,18 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple05.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 @@ -87,3 +86,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\Tuple05_fs\Tuple05.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple06.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple06.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple06.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple06.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple06.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple06.fs.il.bsl similarity index 84% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple06.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple06.fs.il.bsl index 26e99d88dcad9512bf333849cded943877983ed1..4ee336872cd46cbda2e335726dfc0ac7bec7186a 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple06.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple06.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly Tuple06 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.Tuple06 { - // Offset: 0x00000000 Length: 0x0000013B + // Offset: 0x00000000 Length: 0x00000175 + // WARNING: managed resource file FSharpSignatureData.Tuple06 created } .mresource public FSharpOptimizationData.Tuple06 { - // Offset: 0x00000140 Length: 0x0000004E + // Offset: 0x00000180 Length: 0x0000004E + // WARNING: managed resource file FSharpOptimizationData.Tuple06 created } .module Tuple06.exe -// MVID: {60B68B97-67E0-4675-A745-0383978BB660} +// MVID: {624CEE4C-67E0-4675-A745-03834CEE4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06A80000 +// Image base: 0x03630000 // =============== CLASS MEMBERS DECLARATION =================== @@ -65,8 +66,6 @@ .entrypoint // Code size 13 (0xd) .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple06.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 @@ -89,3 +88,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\Tuple06_fs\Tuple06.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple07.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple07.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple07.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple07.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple07.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple07.fs.il.bsl similarity index 85% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple07.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple07.fs.il.bsl index c4d97daf2ef0860886a54fda23b32e70eb94faf5..9fc8b996404c62c917410b2ad168127bffc9d948 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple07.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple07.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly Tuple07 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.Tuple07 { - // Offset: 0x00000000 Length: 0x0000013B + // Offset: 0x00000000 Length: 0x00000175 + // WARNING: managed resource file FSharpSignatureData.Tuple07 created } .mresource public FSharpOptimizationData.Tuple07 { - // Offset: 0x00000140 Length: 0x0000004E + // Offset: 0x00000180 Length: 0x0000004E + // WARNING: managed resource file FSharpOptimizationData.Tuple07 created } .module Tuple07.exe -// MVID: {60B68B97-7229-962D-A745-0383978BB660} +// MVID: {624CEE4C-7229-962D-A745-03834CEE4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00F10000 +// Image base: 0x03C20000 // =============== CLASS MEMBERS DECLARATION =================== @@ -65,8 +66,6 @@ .entrypoint // Code size 14 (0xe) .maxstack 9 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,22 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple07.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 @@ -91,3 +90,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\Tuple07_fs\Tuple07.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple08.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple08.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple08.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple08.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple08.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple08.fs.il.bsl similarity index 86% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple08.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple08.fs.il.bsl index 72e7d3feed7896b2514b27d4972d239ede8e854b..06414853a3375a2de4a790e1d6eae3255f3aacd2 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple08.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple08.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -13,7 +12,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 5:0:0:0 + .ver 6:0:0:0 } .assembly Tuple08 { @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.Tuple08 { - // Offset: 0x00000000 Length: 0x0000013B + // Offset: 0x00000000 Length: 0x00000175 + // WARNING: managed resource file FSharpSignatureData.Tuple08 created } .mresource public FSharpOptimizationData.Tuple08 { - // Offset: 0x00000140 Length: 0x0000004E + // Offset: 0x00000180 Length: 0x0000004E + // WARNING: managed resource file FSharpOptimizationData.Tuple08 created } .module Tuple08.exe -// MVID: {60B68B97-E542-67B3-A745-0383978BB660} +// MVID: {624CEE4C-E542-67B3-A745-03834CEE4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00E80000 +// Image base: 0x034B0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -65,8 +66,6 @@ .entrypoint // Code size 20 (0x14) .maxstack 10 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,24 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple08.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 @@ -94,3 +93,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\Tuple08_fs\Tuple08.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleElimination.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleElimination.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.bsl new file mode 100644 index 0000000000000000000000000000000000000000..4b910bc1b62e4fe28c0dbce89f6b408302bd10d6 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.bsl @@ -0,0 +1,259 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Collections +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly TupleElimination +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.TupleElimination +{ + // Offset: 0x00000000 Length: 0x0000026E + // WARNING: managed resource file FSharpSignatureData.TupleElimination created +} +.mresource public FSharpOptimizationData.TupleElimination +{ + // Offset: 0x00000278 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.TupleElimination created +} +.module TupleElimination.exe +// MVID: {624CEF87-D6AF-0A2D-A745-038387EF4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x000001A684140000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed TupleElimination + extends [System.Runtime]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 ) + .class auto ansi serializable sealed nested assembly beforefieldinit p@5 + extends [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc + { + .field static assembly initonly class TupleElimination/p@5 @_instance + .method assembly specialname rtspecialname + instance void .ctor() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::.ctor() + IL_0006: ret + } // end of method p@5::.ctor + + .method public strict virtual instance object + Specialize() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void class TupleElimination/p@5T::.ctor(class TupleElimination/p@5) + IL_0006: box class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_000b: ret + } // end of method p@5::Specialize + + .method private specialname rtspecialname static + void .cctor() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 11 (0xb) + .maxstack 10 + IL_0000: newobj instance void TupleElimination/p@5::.ctor() + IL_0005: stsfld class TupleElimination/p@5 TupleElimination/p@5::@_instance + IL_000a: ret + } // end of method p@5::.cctor + + } // end of class p@5 + + .class auto ansi serializable sealed nested assembly beforefieldinit p@5T + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field public class TupleElimination/p@5 self0@ + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .method assembly specialname rtspecialname + instance void .ctor(class TupleElimination/p@5 self0@) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld class TupleElimination/p@5 class TupleElimination/p@5T::self0@ + IL_000d: ret + } // end of method p@5T::.ctor + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit + Invoke(!a v) cil managed + { + // Code size 31 (0x1f) + .maxstack 7 + .locals init (class TupleElimination/p@5 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld class TupleElimination/p@5 class TupleElimination/p@5T::self0@ + IL_0006: stloc.0 + IL_0007: ldstr "%A" + IL_000c: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [System.Runtime]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,!a>::.ctor(string) + IL_0011: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0016: ldarg.1 + IL_0017: tail. + IL_0019: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_001e: ret + } // end of method p@5T::Invoke + + } // end of class p@5T + + .method public static int32 main(string[] argv) cil managed + { + .entrypoint + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.EntryPointAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 204 (0xcc) + .maxstack 5 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc V_0, + class [System.Collections]System.Collections.Generic.Dictionary`2 V_1, + class [System.Runtime]System.Tuple`2 V_2, + int32 V_3, + int32 V_4, + bool V_5, + bool V_6, + int32 V_7, + class [System.Runtime]System.Tuple`2 V_8, + int64 V_9, + int64 V_10, + bool V_11, + bool V_12, + int64 V_13, + class [System.Runtime]System.Tuple`2 V_14, + class [System.Runtime]System.Tuple`2 V_15) + IL_0000: ldsfld class TupleElimination/p@5 TupleElimination/p@5::@_instance + IL_0005: stloc.0 + IL_0006: newobj instance void class [System.Collections]System.Collections.Generic.Dictionary`2::.ctor() + IL_000b: stloc.1 + IL_000c: ldloc.1 + IL_000d: ldc.i4.1 + IL_000e: ldloca.s V_3 + IL_0010: callvirt instance bool class [System.Collections]System.Collections.Generic.Dictionary`2::TryGetValue(!0, + !1&) + IL_0015: ldloc.3 + IL_0016: newobj instance void class [System.Runtime]System.Tuple`2::.ctor(!0, + !1) + IL_001b: stloc.2 + IL_001c: ldloc.2 + IL_001d: call instance !1 class [System.Runtime]System.Tuple`2::get_Item2() + IL_0022: stloc.s V_4 + IL_0024: ldloc.2 + IL_0025: call instance !0 class [System.Runtime]System.Tuple`2::get_Item1() + IL_002a: stloc.s V_5 + IL_002c: ldloc.0 + IL_002d: ldloc.s V_5 + IL_002f: stloc.s V_6 + IL_0031: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_0036: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_003b: ldloc.s V_6 + IL_003d: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0042: pop + IL_0043: ldloc.0 + IL_0044: ldloc.s V_4 + IL_0046: stloc.s V_7 + IL_0048: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_004d: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_0052: ldloc.s V_7 + IL_0054: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0059: pop + IL_005a: ldstr "123" + IL_005f: ldloca.s V_9 + IL_0061: call bool [System.Runtime]System.Int64::TryParse(string, + int64&) + IL_0066: ldloc.s V_9 + IL_0068: newobj instance void class [System.Runtime]System.Tuple`2::.ctor(!0, + !1) + IL_006d: stloc.s V_8 + IL_006f: ldloc.s V_8 + IL_0071: call instance !1 class [System.Runtime]System.Tuple`2::get_Item2() + IL_0076: stloc.s V_10 + IL_0078: ldloc.s V_8 + IL_007a: call instance !0 class [System.Runtime]System.Tuple`2::get_Item1() + IL_007f: stloc.s V_11 + IL_0081: ldloc.0 + IL_0082: ldloc.s V_11 + IL_0084: stloc.s V_12 + IL_0086: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_008b: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_0090: ldloc.s V_12 + IL_0092: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0097: pop + IL_0098: ldloc.0 + IL_0099: ldloc.s V_10 + IL_009b: stloc.s V_13 + IL_009d: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_00a2: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_00a7: ldloc.s V_13 + IL_00a9: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_00ae: pop + IL_00af: ldloc.s V_8 + IL_00b1: stloc.s V_14 + IL_00b3: ldloc.0 + IL_00b4: ldloc.s V_14 + IL_00b6: stloc.s V_15 + IL_00b8: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize>() + IL_00bd: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit> + IL_00c2: ldloc.s V_15 + IL_00c4: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::Invoke(!0) + IL_00c9: pop + IL_00ca: ldc.i4.0 + IL_00cb: ret + } // end of method TupleElimination::main + +} // end of class TupleElimination + +.class private abstract auto ansi sealed ''.$TupleElimination + extends [System.Runtime]System.Object +{ +} // end of class ''.$TupleElimination + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\Tuples\TupleElimination_fs\TupleElimination.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.net472.bsl new file mode 100644 index 0000000000000000000000000000000000000000..cd9200575936e0898b4cb99313fcc28ab452f05b --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.net472.bsl @@ -0,0 +1,254 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly TupleElimination +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.TupleElimination +{ + // Offset: 0x00000000 Length: 0x0000026E + // WARNING: managed resource file FSharpSignatureData.TupleElimination created +} +.mresource public FSharpOptimizationData.TupleElimination +{ + // Offset: 0x00000278 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.TupleElimination created +} +.module TupleElimination.exe +// MVID: {624CF392-DFDD-92DF-A745-038392F34C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x034B0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed TupleElimination + 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 ) + .class auto ansi serializable sealed nested assembly beforefieldinit p@5 + extends [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc + { + .field static assembly initonly class TupleElimination/p@5 @_instance + .method assembly specialname rtspecialname + instance void .ctor() 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 ) + .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 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::.ctor() + IL_0006: ret + } // end of method p@5::.ctor + + .method public strict virtual instance object + Specialize() 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 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void class TupleElimination/p@5T::.ctor(class TupleElimination/p@5) + IL_0006: box class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_000b: ret + } // end of method p@5::Specialize + + .method private specialname rtspecialname static + void .cctor() 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 ) + // Code size 11 (0xb) + .maxstack 10 + IL_0000: newobj instance void TupleElimination/p@5::.ctor() + IL_0005: stsfld class TupleElimination/p@5 TupleElimination/p@5::@_instance + IL_000a: ret + } // end of method p@5::.cctor + + } // end of class p@5 + + .class auto ansi serializable sealed nested assembly beforefieldinit p@5T + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field public class TupleElimination/p@5 self0@ + .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 ) + .method assembly specialname rtspecialname + instance void .ctor(class TupleElimination/p@5 self0@) 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 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld class TupleElimination/p@5 class TupleElimination/p@5T::self0@ + IL_000d: ret + } // end of method p@5T::.ctor + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit + Invoke(!a v) cil managed + { + // Code size 31 (0x1f) + .maxstack 7 + .locals init (class TupleElimination/p@5 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld class TupleElimination/p@5 class TupleElimination/p@5T::self0@ + IL_0006: stloc.0 + IL_0007: ldstr "%A" + IL_000c: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,!a>::.ctor(string) + IL_0011: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0016: ldarg.1 + IL_0017: tail. + IL_0019: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_001e: ret + } // end of method p@5T::Invoke + + } // end of class p@5T + + .method public static int32 main(string[] argv) cil managed + { + .entrypoint + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.EntryPointAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 204 (0xcc) + .maxstack 5 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc V_0, + class [mscorlib]System.Collections.Generic.Dictionary`2 V_1, + class [mscorlib]System.Tuple`2 V_2, + int32 V_3, + int32 V_4, + bool V_5, + bool V_6, + int32 V_7, + class [mscorlib]System.Tuple`2 V_8, + int64 V_9, + int64 V_10, + bool V_11, + bool V_12, + int64 V_13, + class [mscorlib]System.Tuple`2 V_14, + class [mscorlib]System.Tuple`2 V_15) + IL_0000: ldsfld class TupleElimination/p@5 TupleElimination/p@5::@_instance + IL_0005: stloc.0 + IL_0006: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2::.ctor() + IL_000b: stloc.1 + IL_000c: ldloc.1 + IL_000d: ldc.i4.1 + IL_000e: ldloca.s V_3 + IL_0010: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2::TryGetValue(!0, + !1&) + IL_0015: ldloc.3 + IL_0016: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, + !1) + IL_001b: stloc.2 + IL_001c: ldloc.2 + IL_001d: call instance !1 class [mscorlib]System.Tuple`2::get_Item2() + IL_0022: stloc.s V_4 + IL_0024: ldloc.2 + IL_0025: call instance !0 class [mscorlib]System.Tuple`2::get_Item1() + IL_002a: stloc.s V_5 + IL_002c: ldloc.0 + IL_002d: ldloc.s V_5 + IL_002f: stloc.s V_6 + IL_0031: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_0036: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_003b: ldloc.s V_6 + IL_003d: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0042: pop + IL_0043: ldloc.0 + IL_0044: ldloc.s V_4 + IL_0046: stloc.s V_7 + IL_0048: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_004d: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_0052: ldloc.s V_7 + IL_0054: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0059: pop + IL_005a: ldstr "123" + IL_005f: ldloca.s V_9 + IL_0061: call bool [mscorlib]System.Int64::TryParse(string, + int64&) + IL_0066: ldloc.s V_9 + IL_0068: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, + !1) + IL_006d: stloc.s V_8 + IL_006f: ldloc.s V_8 + IL_0071: call instance !1 class [mscorlib]System.Tuple`2::get_Item2() + IL_0076: stloc.s V_10 + IL_0078: ldloc.s V_8 + IL_007a: call instance !0 class [mscorlib]System.Tuple`2::get_Item1() + IL_007f: stloc.s V_11 + IL_0081: ldloc.0 + IL_0082: ldloc.s V_11 + IL_0084: stloc.s V_12 + IL_0086: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_008b: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_0090: ldloc.s V_12 + IL_0092: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0097: pop + IL_0098: ldloc.0 + IL_0099: ldloc.s V_10 + IL_009b: stloc.s V_13 + IL_009d: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_00a2: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_00a7: ldloc.s V_13 + IL_00a9: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_00ae: pop + IL_00af: ldloc.s V_8 + IL_00b1: stloc.s V_14 + IL_00b3: ldloc.0 + IL_00b4: ldloc.s V_14 + IL_00b6: stloc.s V_15 + IL_00b8: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize>() + IL_00bd: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit> + IL_00c2: ldloc.s V_15 + IL_00c4: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::Invoke(!0) + IL_00c9: pop + IL_00ca: ldc.i4.0 + IL_00cb: ret + } // end of method TupleElimination::main + +} // end of class TupleElimination + +.class private abstract auto ansi sealed ''.$TupleElimination + extends [mscorlib]System.Object +{ +} // end of class ''.$TupleElimination + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\TupleElimination_fs\TupleElimination.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.netcore.bsl new file mode 100644 index 0000000000000000000000000000000000000000..91e04cf7eca9ddd0e6e1ce460ff9fde044410931 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.netcore.bsl @@ -0,0 +1,259 @@ + +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 + + + +// Metadata version: v4.0.30319 +.assembly extern System.Runtime +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern FSharp.Core +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly extern System.Collections +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 +} +.assembly TupleElimination +{ + .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 ) + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.mresource public FSharpSignatureData.TupleElimination +{ + // Offset: 0x00000000 Length: 0x0000026E + // WARNING: managed resource file FSharpSignatureData.TupleElimination created +} +.mresource public FSharpOptimizationData.TupleElimination +{ + // Offset: 0x00000278 Length: 0x0000007B + // WARNING: managed resource file FSharpOptimizationData.TupleElimination created +} +.module TupleElimination.exe +// MVID: {624CEE83-634F-F584-A745-038383EE4C62} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY +// Image base: 0x0000024D054E0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed TupleElimination + extends [System.Runtime]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 ) + .class auto ansi serializable sealed nested assembly beforefieldinit p@5 + extends [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc + { + .field static assembly initonly class TupleElimination/p@5 @_instance + .method assembly specialname rtspecialname + instance void .ctor() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::.ctor() + IL_0006: ret + } // end of method p@5::.ctor + + .method public strict virtual instance object + Specialize() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: newobj instance void class TupleElimination/p@5T::.ctor(class TupleElimination/p@5) + IL_0006: box class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_000b: ret + } // end of method p@5::Specialize + + .method private specialname rtspecialname static + void .cctor() cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 11 (0xb) + .maxstack 10 + IL_0000: newobj instance void TupleElimination/p@5::.ctor() + IL_0005: stsfld class TupleElimination/p@5 TupleElimination/p@5::@_instance + IL_000a: ret + } // end of method p@5::.cctor + + } // end of class p@5 + + .class auto ansi serializable sealed nested assembly beforefieldinit p@5T + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field public class TupleElimination/p@5 self0@ + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + .method assembly specialname rtspecialname + instance void .ctor(class TupleElimination/p@5 self0@) cil managed + { + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld class TupleElimination/p@5 class TupleElimination/p@5T::self0@ + IL_000d: ret + } // end of method p@5T::.ctor + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit + Invoke(!a v) cil managed + { + // Code size 31 (0x1f) + .maxstack 7 + .locals init (class TupleElimination/p@5 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld class TupleElimination/p@5 class TupleElimination/p@5T::self0@ + IL_0006: stloc.0 + IL_0007: ldstr "%A" + IL_000c: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [System.Runtime]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,!a>::.ctor(string) + IL_0011: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0016: ldarg.1 + IL_0017: tail. + IL_0019: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_001e: ret + } // end of method p@5T::Invoke + + } // end of class p@5T + + .method public static int32 main(string[] argv) cil managed + { + .entrypoint + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.EntryPointAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 204 (0xcc) + .maxstack 5 + .locals init (class [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc V_0, + class [System.Collections]System.Collections.Generic.Dictionary`2 V_1, + class [System.Runtime]System.Tuple`2 V_2, + int32 V_3, + int32 V_4, + bool V_5, + bool V_6, + int32 V_7, + class [System.Runtime]System.Tuple`2 V_8, + int64 V_9, + int64 V_10, + bool V_11, + bool V_12, + int64 V_13, + class [System.Runtime]System.Tuple`2 V_14, + class [System.Runtime]System.Tuple`2 V_15) + IL_0000: ldsfld class TupleElimination/p@5 TupleElimination/p@5::@_instance + IL_0005: stloc.0 + IL_0006: newobj instance void class [System.Collections]System.Collections.Generic.Dictionary`2::.ctor() + IL_000b: stloc.1 + IL_000c: ldloc.1 + IL_000d: ldc.i4.1 + IL_000e: ldloca.s V_3 + IL_0010: callvirt instance bool class [System.Collections]System.Collections.Generic.Dictionary`2::TryGetValue(!0, + !1&) + IL_0015: ldloc.3 + IL_0016: newobj instance void class [System.Runtime]System.Tuple`2::.ctor(!0, + !1) + IL_001b: stloc.2 + IL_001c: ldloc.2 + IL_001d: call instance !1 class [System.Runtime]System.Tuple`2::get_Item2() + IL_0022: stloc.s V_4 + IL_0024: ldloc.2 + IL_0025: call instance !0 class [System.Runtime]System.Tuple`2::get_Item1() + IL_002a: stloc.s V_5 + IL_002c: ldloc.0 + IL_002d: ldloc.s V_5 + IL_002f: stloc.s V_6 + IL_0031: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_0036: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_003b: ldloc.s V_6 + IL_003d: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0042: pop + IL_0043: ldloc.0 + IL_0044: ldloc.s V_4 + IL_0046: stloc.s V_7 + IL_0048: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_004d: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_0052: ldloc.s V_7 + IL_0054: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0059: pop + IL_005a: ldstr "123" + IL_005f: ldloca.s V_9 + IL_0061: call bool [System.Runtime]System.Int64::TryParse(string, + int64&) + IL_0066: ldloc.s V_9 + IL_0068: newobj instance void class [System.Runtime]System.Tuple`2::.ctor(!0, + !1) + IL_006d: stloc.s V_8 + IL_006f: ldloc.s V_8 + IL_0071: call instance !1 class [System.Runtime]System.Tuple`2::get_Item2() + IL_0076: stloc.s V_10 + IL_0078: ldloc.s V_8 + IL_007a: call instance !0 class [System.Runtime]System.Tuple`2::get_Item1() + IL_007f: stloc.s V_11 + IL_0081: ldloc.0 + IL_0082: ldloc.s V_11 + IL_0084: stloc.s V_12 + IL_0086: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_008b: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_0090: ldloc.s V_12 + IL_0092: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0097: pop + IL_0098: ldloc.0 + IL_0099: ldloc.s V_10 + IL_009b: stloc.s V_13 + IL_009d: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize() + IL_00a2: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + IL_00a7: ldloc.s V_13 + IL_00a9: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_00ae: pop + IL_00af: ldloc.s V_8 + IL_00b1: stloc.s V_14 + IL_00b3: ldloc.0 + IL_00b4: ldloc.s V_14 + IL_00b6: stloc.s V_15 + IL_00b8: callvirt instance object [FSharp.Core]Microsoft.FSharp.Core.FSharpTypeFunc::Specialize>() + IL_00bd: unbox.any class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit> + IL_00c2: ldloc.s V_15 + IL_00c4: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::Invoke(!0) + IL_00c9: pop + IL_00ca: ldc.i4.0 + IL_00cb: ret + } // end of method TupleElimination::main + +} // end of class TupleElimination + +.class private abstract auto ansi sealed ''.$TupleElimination + extends [System.Runtime]System.Object +{ +} // end of class ''.$TupleElimination + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\Tuples\TupleElimination_fs\TupleElimination.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleMonster.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleMonster.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleMonster.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleMonster.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleMonster.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleMonster.fs.il.bsl similarity index 93% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleMonster.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleMonster.fs.il.bsl index 1cf266ded91a68bc777147eae73e9d6505a398b8..2602857330e3bd5ff52cc9ccba7384a084447308 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleMonster.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleMonster.fs.il.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 01 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.TupleMonster { - // Offset: 0x00000000 Length: 0x00000145 + // Offset: 0x00000000 Length: 0x00000185 + // WARNING: managed resource file FSharpSignatureData.TupleMonster created } .mresource public FSharpOptimizationData.TupleMonster { - // Offset: 0x00000150 Length: 0x00000053 + // Offset: 0x00000190 Length: 0x00000053 + // WARNING: managed resource file FSharpOptimizationData.TupleMonster created } .module TupleMonster.exe -// MVID: {61F02896-1552-41D8-A745-03839628F061} +// MVID: {624CEE4C-1552-41D8-A745-03834CEE4C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06830000 +// Image base: 0x034B0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -65,8 +66,6 @@ .entrypoint // Code size 74 (0x4a) .maxstack 28 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,137 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\TupleMonster.fs' IL_0000: ldc.i4.s 97 IL_0002: ldc.i4.s 98 IL_0004: ldc.i4.s 99 @@ -132,3 +131,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\TupleMonster_fs\TupleMonster.res diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuples.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuples.fs new file mode 100644 index 0000000000000000000000000000000000000000..76ee061f652e8f5ffaad87a7d10b217e30bc4b98 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuples.fs @@ -0,0 +1,90 @@ +namespace FSharp.Compiler.ComponentTests.EmittedIL + +open Xunit +open System.IO +open FSharp.Test +open FSharp.Test.Compiler + +module Tuples = + + let verifyCompilation compilation = + compilation + |> withOptions [ "--test:EmitFeeFeeAs100001" ] + |> asExe + |> withNoOptimize + |> withEmbeddedPdb + |> withEmbedAllSource + |> ignoreWarnings + |> verifyILBaseline + + // SOURCE=Tuple01.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple01.exe" # Tuple01.fs + [] + let ``Tuple01_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=Tuple02.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple02.exe" # Tuple02.fs - + [] + let ``Tuple02_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=Tuple03.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple03.exe" # Tuple03.fs - + [] + let ``Tuple03_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=Tuple04.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple04.exe" # Tuple04.fs - + [] + let ``Tuple04_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=Tuple05.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple05.exe" # Tuple05.fs - + [] + let ``Tuple05_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=Tuple06.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple06.exe" # Tuple06.fs - + [] + let ``Tuple06_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=Tuple07.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple07.exe" # Tuple07.fs - + [] + let ``Tuple07_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=Tuple08.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple08.exe" # Tuple08.fs - + [] + let ``Tuple08_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=OptionalArg01.fs SCFLAGS="-g --optimize+" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd OptionalArg01.exe" # OptionalArg01.fs - test optimizatons + [] + let ``OptionalArg01_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=TupleMonster.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd TupleMonster.exe" # TupleMonster.fs - + [] + let ``TupleMonster_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=TupleElimination.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize+" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd TupleElimination.exe" # TupleElimination.fs - + [] + let ``TupleElimination_fs`` compilation = + compilation + |> verifyCompilation + + // SOURCE=ValueTupleAliasConstructor.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize+" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ValueTupleAliasConstructor.exe" # ValueTupleAliasConstructor.fs - + [] + let ``ValueTupleAliasConstructor_fs`` compilation = + compilation + |> verifyCompilation diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/ValueTupleAliasConstructor.fs similarity index 100% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.fs rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/ValueTupleAliasConstructor.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/ValueTupleAliasConstructor.fs.il.net472.bsl similarity index 81% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/ValueTupleAliasConstructor.fs.il.net472.bsl index 2aa9c8decd84dd5c3598ed95d7706d0bb13ef15d..4f613588d2a129473bf5890964d96ef60568dd2b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/ValueTupleAliasConstructor.fs.il.net472.bsl @@ -1,6 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 @@ -22,27 +21,29 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 00 00 00 00 00 ) + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.ValueTupleAliasConstructor { - // Offset: 0x00000000 Length: 0x000001E0 + // Offset: 0x00000000 Length: 0x0000022E + // WARNING: managed resource file FSharpSignatureData.ValueTupleAliasConstructor created } .mresource public FSharpOptimizationData.ValueTupleAliasConstructor { - // Offset: 0x000001E8 Length: 0x00000061 + // Offset: 0x00000238 Length: 0x00000061 + // WARNING: managed resource file FSharpOptimizationData.ValueTupleAliasConstructor created } .module ValueTupleAliasConstructor.exe -// MVID: {61E07031-A8CF-BB34-A745-03833170E061} +// MVID: {624CF392-A8CF-BB34-A745-038392F34C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05930000 +// Image base: 0x03200000 // =============== CLASS MEMBERS DECLARATION =================== @@ -79,3 +80,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net472\tests\EmittedIL\Tuples\ValueTupleAliasConstructor_fs\ValueTupleAliasConstructor.res diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl.net47 b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/ValueTupleAliasConstructor.fs.il.netcore.bsl similarity index 55% rename from tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl.net47 rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/ValueTupleAliasConstructor.fs.il.netcore.bsl index 0c4121676d102742e35b14a5c4e34069cda17889..07be9cba1703e03b1fcbd0f51c067cb312363e93 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl.net47 +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/ValueTupleAliasConstructor.fs.il.netcore.bsl @@ -1,19 +1,18 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 -// Copyright (c) Microsoft Corporation. All rights reserved. +// Microsoft (R) .NET IL Disassembler. Version 5.0.0-preview.7.20364.11 // Metadata version: v4.0.30319 -.assembly extern mscorlib +.assembly extern System.Runtime { - .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. - .ver 4:0:0:0 + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 6:0:0:0 } .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 6:0:0:0 } .assembly ValueTupleAliasConstructor { @@ -22,55 +21,55 @@ int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 00 00 00 00 00 ) + // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 03 01 00 00 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .mresource public FSharpSignatureData.ValueTupleAliasConstructor { - // Offset: 0x00000000 Length: 0x000001EA + // Offset: 0x00000000 Length: 0x0000022E + // WARNING: managed resource file FSharpSignatureData.ValueTupleAliasConstructor created } .mresource public FSharpOptimizationData.ValueTupleAliasConstructor { - // Offset: 0x000001F0 Length: 0x00000061 + // Offset: 0x00000238 Length: 0x00000061 + // WARNING: managed resource file FSharpOptimizationData.ValueTupleAliasConstructor created } .module ValueTupleAliasConstructor.exe -// MVID: {5C136441-E59F-7FAD-A745-03834164135C} +// MVID: {624CF3BF-174D-3620-A745-0383BFF34C62} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01150000 +// Image base: 0x00000200E9280000 // =============== CLASS MEMBERS DECLARATION =================== .class public abstract auto ansi sealed ValueTupleAliasConstructor - extends [mscorlib]System.Object + extends [System.Runtime]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 ) } // end of class ValueTupleAliasConstructor .class private abstract auto ansi sealed ''.$ValueTupleAliasConstructor - extends [mscorlib]System.Object + extends [System.Runtime]System.Object { .field static assembly int32 init@ - .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 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) .method public static void main@() cil managed { .entrypoint // Code size 9 (0x9) .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,22 'c:\\kevinransom\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\ValueTupleAliasConstructor.fs' IL_0000: ldc.i4.2 IL_0001: ldc.i4.2 - IL_0002: newobj instance void valuetype [mscorlib]System.ValueTuple`2::.ctor(!0, - !1) + IL_0002: newobj instance void valuetype [System.Runtime]System.ValueTuple`2::.ctor(!0, + !1) IL_0007: pop IL_0008: ret } // end of method $ValueTupleAliasConstructor::main@ @@ -81,3 +80,4 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file c:\kevinransom\fsharp\artifacts\bin\FSharp.Compiler.ComponentTests\Release\net6.0\tests\EmittedIL\Tuples\ValueTupleAliasConstructor_fs\ValueTupleAliasConstructor.res diff --git a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj index e52ef5fd08f1acf5bde47c21427c7dbaf2fd206a..37c891f2e6b13ec0bd1bbbf6a3cd1a957626d498 100644 --- a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj +++ b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj @@ -37,10 +37,15 @@ + - + + + + + diff --git a/tests/FSharp.Test.Utilities/DirectoryAttribute.fs b/tests/FSharp.Test.Utilities/DirectoryAttribute.fs index 2ef7d5c0cebbe63b83f1ee001b81ed67024bb93d..4bd223d1eaccc20b28777314e84c4efa03066175 100644 --- a/tests/FSharp.Test.Utilities/DirectoryAttribute.fs +++ b/tests/FSharp.Test.Utilities/DirectoryAttribute.fs @@ -91,8 +91,10 @@ type DirectoryAttribute(dir: string) = #else #if NETCOREAPP yield sourceFilePath + ".il.netcore.release.bsl" + yield sourceFilePath + ".il.netcore.bsl" #else yield sourceFilePath + ".il.net472.release.bsl" + yield sourceFilePath + ".il.net472.bsl" #endif yield sourceFilePath + ".il.release.bsl" yield sourceFilePath + ".il.bsl" diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/env.lst b/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/env.lst deleted file mode 100644 index dd9dfce9c47e241a19e58cabefc2c7753cbf5d65..0000000000000000000000000000000000000000 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/env.lst +++ /dev/null @@ -1,7 +0,0 @@ - SOURCE=ToplevelModule.fs SCFLAGS="-a -g --out:TopLevelModule.dll --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ToplevelModule.dll" # ToplevelModule.fs - Desktop - SOURCE=ToplevelNamespace.fs SCFLAGS="-a -g --out:ToplevelNamespace.dll --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ToplevelNamespace.dll" # ToplevelNamespace.fs - Desktop - SOURCE=ToplevelModule.fs SCFLAGS="-a -g --langversion:preview --out:TopLevelModule-preview.dll --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ToplevelModule-preview.dll" # ToplevelModule.fs - Desktop preview - SOURCE=ToplevelNamespace.fs SCFLAGS="-a -g --langversion:preview --out:ToplevelNamespace-preview.dll --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ToplevelNamespace-preview.dll" # ToplevelNamespace.fs - Desktop preview - - - diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/keep.lst b/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/keep.lst deleted file mode 100644 index f59ec20aabf5842d237244ece8c81ab184faeac1..0000000000000000000000000000000000000000 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SerializableAttribute/keep.lst +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/keep.lst b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/keep.lst deleted file mode 100644 index f59ec20aabf5842d237244ece8c81ab184faeac1..0000000000000000000000000000000000000000 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/keep.lst +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/env.lst b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/env.lst deleted file mode 100644 index 21b4f7403f3c49edfa0f7999b3cfe726434793b6..0000000000000000000000000000000000000000 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/env.lst +++ /dev/null @@ -1,14 +0,0 @@ - - SOURCE=SteppingMatch01.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch01.dll" # SteppingMatch01.fs - SOURCE=SteppingMatch02.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch02.dll" # SteppingMatch02.fs - SOURCE=SteppingMatch03.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch03.dll" # SteppingMatch03.fs - SOURCE=SteppingMatch04.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch04.dll" # SteppingMatch04.fs -Retry SOURCE=SteppingMatch05.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch05.dll" # SteppingMatch05.fs - - SOURCE=SteppingMatch06.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch06.dll" # SteppingMatch06.fs - - - SOURCE=SteppingMatch07.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch07.dll" # SteppingMatch07.fs - - - SOURCE=SteppingMatch08.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch08.dll" # SteppingMatch08.fs - - SOURCE=SteppingMatch09.fs SCFLAGS="-a -g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd SteppingMatch09.dll" # SteppingMatch09.fs diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/keep.lst b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/keep.lst deleted file mode 100644 index f59ec20aabf5842d237244ece8c81ab184faeac1..0000000000000000000000000000000000000000 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/keep.lst +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/OptionalArg01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/OptionalArg01.il.bsl deleted file mode 100644 index 6b7f68ae5396521f50c9f7e75c846a8c4b1efa0e..0000000000000000000000000000000000000000 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/OptionalArg01.il.bsl +++ /dev/null @@ -1,308 +0,0 @@ - -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. - - - -// Metadata version: v4.0.30319 -.assembly extern mscorlib -{ - .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. - .ver 4:0:0:0 -} -.assembly extern FSharp.Core -{ - .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 6:0:0:0 -} -.assembly OptionalArg01 -{ - .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 ) - - // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 00 00 00 00 00 ) - - .hash algorithm 0x00008004 - .ver 0:0:0:0 -} -.mresource public FSharpSignatureData.OptionalArg01 -{ - // Offset: 0x00000000 Length: 0x0000045A -} -.mresource public FSharpOptimizationData.OptionalArg01 -{ - // Offset: 0x00000460 Length: 0x00000445 -} -.module OptionalArg01.exe -// MVID: {61F2D6A5-4F48-B5AF-A745-0383A5D6F261} -.imagebase 0x00400000 -.file alignment 0x00000200 -.stackreserve 0x00100000 -.subsystem 0x0003 // WINDOWS_CUI -.corflags 0x00000001 // ILONLY -// Image base: 0x06C30000 - - -// =============== CLASS MEMBERS DECLARATION =================== - -.class public abstract auto ansi sealed OptionalArg01 - 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 ) - .class auto ansi serializable nested public A - extends [mscorlib]System.Object - { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) - .method public specialname rtspecialname - instance void .ctor() cil managed - { - // Code size 9 (0x9) - .maxstack 8 - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 2,2 : 6,7 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\OptionalArg01.fs' - 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 A::.ctor - - } // end of class A - - .class auto ansi serializable nested public C - extends [mscorlib]System.Object - { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) - .method public specialname rtspecialname - instance void .ctor() cil managed - { - // Code size 9 (0x9) - .maxstack 8 - .line 5,5 : 6,7 '' - 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 C::.ctor - - .method public static class [mscorlib]System.Collections.Generic.List`1 - F(class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x1, - class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x2) cil managed - { - .param [1] - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) - .param [2] - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 96 (0x60) - .maxstack 4 - .locals init ([0] int32 'count (shadowed)', - [1] int32 count, - [2] class [mscorlib]System.Collections.Generic.List`1 attribs, - [3] class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_3, - [4] class OptionalArg01/A v2) - .line 7,7 : 9,22 '' - IL_0000: nop - .line 8,8 : 21,34 '' - IL_0001: nop - .line 16707566,16707566 : 0,0 '' - IL_0002: ldarg.0 - IL_0003: brfalse.s IL_0007 - - IL_0005: br.s IL_000b - - .line 8,8 : 43,48 '' - IL_0007: ldc.i4.0 - .line 16707566,16707566 : 0,0 '' - IL_0008: nop - IL_0009: br.s IL_000d - - .line 8,8 : 61,70 '' - IL_000b: ldc.i4.1 - .line 16707566,16707566 : 0,0 '' - IL_000c: nop - .line 16707566,16707566 : 0,0 '' - IL_000d: stloc.0 - .line 9,9 : 21,34 '' - IL_000e: nop - .line 16707566,16707566 : 0,0 '' - IL_000f: ldarg.1 - IL_0010: brfalse.s IL_0014 - - IL_0012: br.s IL_0018 - - .line 9,9 : 43,48 '' - IL_0014: ldloc.0 - .line 16707566,16707566 : 0,0 '' - IL_0015: nop - IL_0016: br.s IL_001c - - .line 9,9 : 61,70 '' - IL_0018: ldloc.0 - IL_0019: ldc.i4.1 - IL_001a: add - .line 16707566,16707566 : 0,0 '' - IL_001b: nop - .line 16707566,16707566 : 0,0 '' - IL_001c: stloc.1 - .line 10,10 : 9,44 '' - IL_001d: ldloc.1 - IL_001e: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) - IL_0023: stloc.2 - .line 11,11 : 9,22 '' - IL_0024: nop - .line 16707566,16707566 : 0,0 '' - IL_0025: ldarg.0 - IL_0026: brfalse.s IL_002a - - IL_0028: br.s IL_002e - - .line 11,11 : 31,33 '' - IL_002a: nop - .line 16707566,16707566 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0041 - - .line 16707566,16707566 : 0,0 '' - IL_002e: ldarg.0 - IL_002f: stloc.3 - IL_0030: ldloc.3 - IL_0031: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() - IL_0036: stloc.s v2 - .line 11,11 : 47,62 '' - IL_0038: ldloc.2 - IL_0039: ldloc.s v2 - IL_003b: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) - .line 16707566,16707566 : 0,0 '' - IL_0040: nop - .line 12,12 : 9,22 '' - IL_0041: nop - .line 16707566,16707566 : 0,0 '' - IL_0042: ldarg.1 - IL_0043: brfalse.s IL_0047 - - IL_0045: br.s IL_004b - - .line 12,12 : 31,33 '' - IL_0047: nop - .line 16707566,16707566 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_005e - - .line 16707566,16707566 : 0,0 '' - IL_004b: ldarg.1 - IL_004c: stloc.3 - IL_004d: ldloc.3 - IL_004e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() - IL_0053: stloc.s v2 - .line 12,12 : 47,62 '' - IL_0055: ldloc.2 - IL_0056: ldloc.s v2 - IL_0058: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) - .line 16707566,16707566 : 0,0 '' - IL_005d: nop - .line 13,13 : 9,16 '' - IL_005e: ldloc.2 - IL_005f: ret - } // end of method C::F - - } // end of class C - - .method public static class [mscorlib]System.Collections.Generic.List`1 - test() cil managed - { - // Code size 7 (0x7) - .maxstack 8 - .line 19,19 : 5,11 '' - IL_0000: ldc.i4.0 - IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) - IL_0006: ret - } // end of method OptionalArg01::test - - .method public static class [mscorlib]System.Collections.Generic.List`1 - test2() cil managed - { - // Code size 22 (0x16) - .maxstack 4 - .locals init ([0] class OptionalArg01/A V_0, - [1] class [mscorlib]System.Collections.Generic.List`1 V_1) - .line 27,27 : 5,17 '' - IL_0000: newobj instance void OptionalArg01/A::.ctor() - IL_0005: stloc.0 - IL_0006: ldc.i4.1 - IL_0007: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) - IL_000c: stloc.1 - IL_000d: ldloc.1 - IL_000e: ldloc.0 - IL_000f: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) - IL_0014: ldloc.1 - IL_0015: ret - } // end of method OptionalArg01::test2 - - .method public static class [mscorlib]System.Collections.Generic.List`1 - test3() cil managed - { - // Code size 22 (0x16) - .maxstack 4 - .locals init ([0] class OptionalArg01/A V_0, - [1] class [mscorlib]System.Collections.Generic.List`1 V_1) - .line 35,35 : 5,17 '' - IL_0000: newobj instance void OptionalArg01/A::.ctor() - IL_0005: stloc.0 - IL_0006: ldc.i4.1 - IL_0007: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) - IL_000c: stloc.1 - IL_000d: ldloc.1 - IL_000e: ldloc.0 - IL_000f: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) - IL_0014: ldloc.1 - IL_0015: ret - } // end of method OptionalArg01::test3 - - .method public static class [mscorlib]System.Collections.Generic.List`1 - test4() cil managed - { - // Code size 35 (0x23) - .maxstack 4 - .locals init ([0] class OptionalArg01/A V_0, - [1] class OptionalArg01/A V_1, - [2] class [mscorlib]System.Collections.Generic.List`1 V_2) - .line 45,45 : 5,25 '' - IL_0000: newobj instance void OptionalArg01/A::.ctor() - IL_0005: stloc.0 - IL_0006: newobj instance void OptionalArg01/A::.ctor() - IL_000b: stloc.1 - IL_000c: ldc.i4.2 - IL_000d: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) - IL_0012: stloc.2 - IL_0013: ldloc.2 - IL_0014: ldloc.0 - IL_0015: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) - IL_001a: ldloc.2 - IL_001b: ldloc.1 - IL_001c: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) - IL_0021: ldloc.2 - IL_0022: ret - } // end of method OptionalArg01::test4 - -} // end of class OptionalArg01 - -.class private abstract auto ansi sealed ''.$OptionalArg01 - extends [mscorlib]System.Object -{ - .method public static void main@() cil managed - { - .entrypoint - // Code size 1 (0x1) - .maxstack 8 - IL_0000: ret - } // end of method $OptionalArg01::main@ - -} // end of class ''.$OptionalArg01 - - -// ============================================================= - -// *********** DISASSEMBLY COMPLETE *********************** diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleElimination.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleElimination.il.bsl deleted file mode 100644 index 2970b0c645bab94270f764af13979db03fec2170..0000000000000000000000000000000000000000 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleElimination.il.bsl +++ /dev/null @@ -1,175 +0,0 @@ - -// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 -// Copyright (c) Microsoft Corporation. All rights reserved. - - - -// Metadata version: v4.0.30319 -.assembly extern mscorlib -{ - .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. - .ver 4:0:0:0 -} -.assembly extern FSharp.Core -{ - .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 6:0:0:0 -} -.assembly extern netstandard -{ - .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) // .{...-.Q - .ver 2:0:0:0 -} -.assembly TupleElimination -{ - .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 ) - - // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 01 00 00 00 00 00 ) - - .hash algorithm 0x00008004 - .ver 0:0:0:0 -} -.mresource public FSharpSignatureData.TupleElimination -{ - // Offset: 0x00000000 Length: 0x0000022A -} -.mresource public FSharpOptimizationData.TupleElimination -{ - // Offset: 0x00000230 Length: 0x0000007B -} -.module TupleElimination.exe -// MVID: {61F02896-DFDD-92DF-A745-03839628F061} -.imagebase 0x00400000 -.file alignment 0x00000200 -.stackreserve 0x00100000 -.subsystem 0x0003 // WINDOWS_CUI -.corflags 0x00000001 // ILONLY -// Image base: 0x06990000 - - -// =============== CLASS MEMBERS DECLARATION =================== - -.class public abstract auto ansi sealed TupleElimination - 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 ) - .method public static int32 main(string[] argv) cil managed - { - .entrypoint - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.EntryPointAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 206 (0xce) - .maxstack 5 - .locals init ([0] class [mscorlib]System.Collections.Generic.Dictionary`2 dic, - [1] int32 i, - [2] bool 'b (shadowed)', - [3] class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit> V_3, - [4] int32 V_4, - [5] class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit> V_5, - [6] int64 l, - [7] bool b, - [8] class [mscorlib]System.Tuple`2 t, - [9] int64 V_9, - [10] class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit> V_10, - [11] class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4,class [FSharp.Core]Microsoft.FSharp.Core.Unit>,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit> V_11) - .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 7,7 : 5,64 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\TupleElimination.fs' - IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2::.ctor() - IL_0005: stloc.0 - .line 9,9 : 5,48 '' - IL_0006: ldloc.0 - IL_0007: ldc.i4.1 - IL_0008: ldloca.s i - IL_000a: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2::TryGetValue(!0, - !1&) - IL_000f: stloc.2 - .line 10,10 : 5,8 '' - IL_0010: ldstr "%A" - IL_0015: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,bool>::.ctor(string) - IL_001a: stloc.3 - IL_001b: call class [netstandard]System.IO.TextWriter [netstandard]System.Console::get_Out() - IL_0020: ldloc.3 - IL_0021: call !!0 [FSharp.Core]Microsoft.FSharp.Core.PrintfModule::PrintFormatLineToTextWriter>(class [mscorlib]System.IO.TextWriter, - class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0026: ldloc.2 - IL_0027: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_002c: pop - .line 11,11 : 5,8 '' - IL_002d: ldloc.1 - IL_002e: stloc.s V_4 - IL_0030: ldstr "%A" - IL_0035: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,int32>::.ctor(string) - IL_003a: stloc.s V_5 - IL_003c: call class [netstandard]System.IO.TextWriter [netstandard]System.Console::get_Out() - IL_0041: ldloc.s V_5 - IL_0043: call !!0 [FSharp.Core]Microsoft.FSharp.Core.PrintfModule::PrintFormatLineToTextWriter>(class [mscorlib]System.IO.TextWriter, - class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0048: ldloc.s V_4 - IL_004a: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_004f: pop - .line 14,14 : 5,65 '' - IL_0050: ldstr "123" - IL_0055: ldloca.s l - IL_0057: call bool [mscorlib]System.Int64::TryParse(string, - int64&) - IL_005c: stloc.s b - IL_005e: ldloc.s b - IL_0060: ldloc.s l - IL_0062: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, - !1) - IL_0067: stloc.s t - .line 15,15 : 5,8 '' - IL_0069: ldstr "%A" - IL_006e: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,bool>::.ctor(string) - IL_0073: stloc.3 - IL_0074: call class [netstandard]System.IO.TextWriter [netstandard]System.Console::get_Out() - IL_0079: ldloc.3 - IL_007a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.PrintfModule::PrintFormatLineToTextWriter>(class [mscorlib]System.IO.TextWriter, - class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_007f: ldloc.s b - IL_0081: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0086: pop - .line 16,16 : 5,8 '' - IL_0087: ldloc.s l - IL_0089: stloc.s V_9 - IL_008b: ldstr "%A" - IL_0090: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,int64>::.ctor(string) - IL_0095: stloc.s V_10 - IL_0097: call class [netstandard]System.IO.TextWriter [netstandard]System.Console::get_Out() - IL_009c: ldloc.s V_10 - IL_009e: call !!0 [FSharp.Core]Microsoft.FSharp.Core.PrintfModule::PrintFormatLineToTextWriter>(class [mscorlib]System.IO.TextWriter, - class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00a3: ldloc.s V_9 - IL_00a5: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_00aa: pop - .line 18,18 : 5,28 '' - IL_00ab: nop - .line 21,21 : 5,9 '' - IL_00ac: ldstr "%A" - IL_00b1: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit>,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [mscorlib]System.Tuple`2>::.ctor(string) - IL_00b6: stloc.s V_11 - IL_00b8: call class [netstandard]System.IO.TextWriter [netstandard]System.Console::get_Out() - IL_00bd: ldloc.s V_11 - IL_00bf: call !!0 [FSharp.Core]Microsoft.FSharp.Core.PrintfModule::PrintFormatLineToTextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit>>(class [mscorlib]System.IO.TextWriter, - class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00c4: ldloc.s t - IL_00c6: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::Invoke(!0) - IL_00cb: pop - .line 23,23 : 5,6 '' - IL_00cc: ldc.i4.0 - IL_00cd: ret - } // end of method TupleElimination::main - -} // end of class TupleElimination - -.class private abstract auto ansi sealed ''.$TupleElimination - extends [mscorlib]System.Object -{ -} // end of class ''.$TupleElimination - - -// ============================================================= - -// *********** DISASSEMBLY COMPLETE *********************** diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/env.lst b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/env.lst deleted file mode 100644 index 76a724c4a5569efadd492d67b30e6a7d80546880..0000000000000000000000000000000000000000 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/env.lst +++ /dev/null @@ -1,16 +0,0 @@ - SOURCE=Tuple01.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple01.exe" # Tuple01.fs - SOURCE=Tuple02.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple02.exe" # Tuple02.fs - - SOURCE=Tuple03.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple03.exe" # Tuple03.fs - - SOURCE=Tuple04.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple04.exe" # Tuple04.fs - - SOURCE=Tuple05.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple05.exe" # Tuple05.fs - - SOURCE=Tuple06.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple06.exe" # Tuple06.fs - - SOURCE=Tuple07.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple07.exe" # Tuple07.fs - - SOURCE=Tuple08.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd Tuple08.exe" # Tuple08.fs - - - SOURCE=OptionalArg01.fs SCFLAGS="-g --optimize+" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd OptionalArg01.exe" # OptionalArg01.fs - test optimizatons - - SOURCE=TupleMonster.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize-" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd TupleMonster.exe" # TupleMonster.fs - - - SOURCE=TupleElimination.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize+" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd TupleElimination.exe" # TupleElimination.fs - - - SOURCE=ValueTupleAliasConstructor.fs SCFLAGS="-g --test:EmitFeeFeeAs100001 --optimize+" COMPILE_ONLY=1 POSTCMD="..\\CompareIL.cmd ValueTupleAliasConstructor.exe" # ValueTupleAliasConstructor.fs - diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/keep.lst b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/keep.lst deleted file mode 100644 index f59ec20aabf5842d237244ece8c81ab184faeac1..0000000000000000000000000000000000000000 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/keep.lst +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file