Untitled diff
90 removals
563 lines
89 additions
562 lines
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.33440
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.33440
// Copyright (c) Microsoft Corporation. All rights reserved.
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Metadata version: v4.0.30319
// Metadata version: v4.0.30319
.assembly extern mscorlib
.assembly extern mscorlib
{
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
.ver 4:0:0:0
}
}
.assembly extern FSharp.Core
.assembly extern FSharp.Core
{
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
.ver 4:3:0:0
.ver 4:3:0:0
}
}
.assembly 'b9c704be-eb4a-4672-ac49-a9f91a2c68a3'
.assembly 'c4688024-f068-42d8-b2c4-30bfb8cb7bef'
{
{
.hash algorithm 0x00008004
.hash algorithm 0x00008004
.ver 0:0:0:0
.ver 0:0:0:0
}
}
.mresource public 'FSharpSignatureData.b9c704be-eb4a-4672-ac49-a9f91a2c68a3'
.mresource public 'FSharpSignatureData.c4688024-f068-42d8-b2c4-30bfb8cb7bef'
{
{
// Offset: 0x00000000 Length: 0x00000933
// Offset: 0x00000000 Length: 0x00000933
//
//
}
}
.mresource public 'FSharpOptimizationData.b9c704be-eb4a-4672-ac49-a9f91a2c68a3'
.mresource public 'FSharpOptimizationData.c4688024-f068-42d8-b2c4-30bfb8cb7bef'
{
{
// Offset: 0x00000938 Length: 0x00000787
// Offset: 0x00000938 Length: 0x00000787
//
//
}
}
.module 'b9c704be-eb4a-4672-ac49-a9f91a2c68a3.exe'
.module 'c4688024-f068-42d8-b2c4-30bfb8cb7bef.exe'
// MVID: {585D5216-BEC1-3622-A745-038316525D58}
// MVID: {585D3F36-E819-F616-A745-0383363F5D58}
.imagebase 0x00400000
.imagebase 0x00400000
.file alignment 0x00000200
.file alignment 0x00000200
.stackreserve 0x00100000
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
.corflags 0x00000001 // ILONLY
// Image base: 0x00770000
// Image base: 0x01460000
// =============== CLASS MEMBERS DECLARATION ===================
// =============== CLASS MEMBERS DECLARATION ===================
.class public abstract auto ansi sealed Rg0dyjzl1050
.class public abstract auto ansi sealed Zpcuqfjy9532
extends [mscorlib]System.Object
extends [mscorlib]System.Object
{
{
.class auto ansi serializable sealed nested public generic1`2<a,b>
.class auto ansi serializable sealed nested public Generic1`2<a,b>
extends [mscorlib]System.Object
extends [mscorlib]System.Object
implements class [mscorlib]System.IEquatable`1<class Rg0dyjzl1050/generic1`2<!a,!b>>,
implements class [mscorlib]System.IEquatable`1<class Zpcuqfjy9532/Generic1`2<!a,!b>>,
[mscorlib]System.Collections.IStructuralEquatable,
[mscorlib]System.Collections.IStructuralEquatable,
class [mscorlib]System.IComparable`1<class Rg0dyjzl1050/generic1`2<!a,!b>>,
class [mscorlib]System.IComparable`1<class Zpcuqfjy9532/Generic1`2<!a,!b>>,
[mscorlib]System.IComparable,
[mscorlib]System.IComparable,
[mscorlib]System.Collections.IStructuralComparable
[mscorlib]System.Collections.IStructuralComparable
{
{
.field assembly !a Foo@
.field assembly !a Foo@
.field assembly !b Bar@
.field assembly !b Bar@
.method public hidebysig specialname
.method public hidebysig specialname
instance !a get_Foo() cil managed
instance !a get_Foo() cil managed
{
{
//
//
.maxstack 8
.maxstack 8
IL_0000: ldarg.0
IL_0000: ldarg.0
IL_0001: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_0001: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_0006: ret
IL_0006: ret
} // end of method generic1`2::get_Foo
} // end of method Generic1`2::get_Foo
.method public hidebysig specialname
.method public hidebysig specialname
instance !b get_Bar() cil managed
instance !b get_Bar() cil managed
{
{
//
//
.maxstack 8
.maxstack 8
IL_0000: ldarg.0
IL_0000: ldarg.0
IL_0001: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_0001: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_0006: ret
IL_0006: ret
} // end of method generic1`2::get_Bar
} // end of method Generic1`2::get_Bar
.method public specialname rtspecialname
.method public specialname rtspecialname
instance void .ctor(!a foo,
instance void .ctor(!a foo,
!b bar) cil managed
!b bar) cil managed
{
{
//
//
.maxstack 8
.maxstack 8
IL_0000: ldarg.0
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: ldarg.0
IL_0006: ldarg.0
IL_0007: ldarg.1
IL_0007: ldarg.1
IL_0008: stfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_0008: stfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_000d: ldarg.0
IL_000d: ldarg.0
IL_000e: ldarg.2
IL_000e: ldarg.2
IL_000f: stfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_000f: stfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_0014: ret
IL_0014: ret
} // end of method generic1`2::.ctor
} // end of method Generic1`2::.ctor
.method public hidebysig virtual final
.method public hidebysig virtual final
instance int32 CompareTo(class Rg0dyjzl1050/generic1`2<!a,!b> obj) cil managed
instance int32 CompareTo(class Zpcuqfjy9532/Generic1`2<!a,!b> obj) cil managed
{
{
//
//
.maxstack 5
.maxstack 5
.locals init (int32 V_0,
.locals init (int32 V_0,
class [mscorlib]System.Collections.IComparer V_1,
class [mscorlib]System.Collections.IComparer V_1,
!a V_2,
!a V_2,
!a V_3,
!a V_3,
!b V_4,
!b V_4,
!b V_5)
!b V_5)
IL_0000: nop
IL_0000: nop
IL_0001: ldarg.0
IL_0001: ldarg.0
IL_0002: ldnull
IL_0002: ldnull
IL_0003: cgt.un
IL_0003: cgt.un
IL_0005: brfalse.s IL_005b
IL_0005: brfalse.s IL_005b
IL_0007: ldarg.1
IL_0007: ldarg.1
IL_0008: ldnull
IL_0008: ldnull
IL_0009: cgt.un
IL_0009: cgt.un
IL_000b: brfalse.s IL_0059
IL_000b: brfalse.s IL_0059
IL_000d: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
IL_000d: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
IL_0012: stloc.1
IL_0012: stloc.1
IL_0013: ldarg.0
IL_0013: ldarg.0
IL_0014: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_0014: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_0019: stloc.2
IL_0019: stloc.2
IL_001a: ldarg.1
IL_001a: ldarg.1
IL_001b: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_001b: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_0020: stloc.3
IL_0020: stloc.3
IL_0021: ldloc.1
IL_0021: ldloc.1
IL_0022: ldloc.2
IL_0022: ldloc.2
IL_0023: ldloc.3
IL_0023: ldloc.3
IL_0024: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic<!a>(class [mscorlib]System.Collections.IComparer,
IL_0024: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic<!a>(class [mscorlib]System.Collections.IComparer,
!!0,
!!0,
!!0)
!!0)
IL_0029: stloc.0
IL_0029: stloc.0
IL_002a: ldloc.0
IL_002a: ldloc.0
IL_002b: ldc.i4.0
IL_002b: ldc.i4.0
IL_002c: bge.s IL_0030
IL_002c: bge.s IL_0030
IL_002e: ldloc.0
IL_002e: ldloc.0
IL_002f: ret
IL_002f: ret
IL_0030: ldloc.0
IL_0030: ldloc.0
IL_0031: ldc.i4.0
IL_0031: ldc.i4.0
IL_0032: ble.s IL_0036
IL_0032: ble.s IL_0036
IL_0034: ldloc.0
IL_0034: ldloc.0
IL_0035: ret
IL_0035: ret
IL_0036: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
IL_0036: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
IL_003b: stloc.1
IL_003b: stloc.1
IL_003c: ldarg.0
IL_003c: ldarg.0
IL_003d: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_003d: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_0042: stloc.s V_4
IL_0042: stloc.s V_4
IL_0044: ldarg.1
IL_0044: ldarg.1
IL_0045: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_0045: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_004a: stloc.s V_5
IL_004a: stloc.s V_5
IL_004c: ldloc.1
IL_004c: ldloc.1
IL_004d: ldloc.s V_4
IL_004d: ldloc.s V_4
IL_004f: ldloc.s V_5
IL_004f: ldloc.s V_5
IL_0051: tail.
IL_0051: tail.
IL_0053: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic<!b>(class [mscorlib]System.Collections.IComparer,
IL_0053: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic<!b>(class [mscorlib]System.Collections.IComparer,
!!0,
!!0,
!!0)
!!0)
IL_0058: ret
IL_0058: ret
IL_0059: ldc.i4.1
IL_0059: ldc.i4.1
IL_005a: ret
IL_005a: ret
IL_005b: ldarg.1
IL_005b: ldarg.1
IL_005c: ldnull
IL_005c: ldnull
IL_005d: cgt.un
IL_005d: cgt.un
IL_005f: brfalse.s IL_0063
IL_005f: brfalse.s IL_0063
IL_0061: ldc.i4.m1
IL_0061: ldc.i4.m1
IL_0062: ret
IL_0062: ret
IL_0063: ldc.i4.0
IL_0063: ldc.i4.0
IL_0064: ret
IL_0064: ret
} // end of method generic1`2::CompareTo
} // end of method Generic1`2::CompareTo
.method public hidebysig virtual final
.method public hidebysig virtual final
instance int32 CompareTo(object obj) cil managed
instance int32 CompareTo(object obj) cil managed
{
{
//
//
.maxstack 8
.maxstack 8
.language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}'
.language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}'
// Source File 'D:\Windows\TEMP\rg0dyjzl1050.fs'
// Source File 'D:\Windows\TEMP\zpcuqfjy9532.fs'
.line 1,1 : 15,23 'D:\\Windows\\TEMP\\rg0dyjzl1050.fs'
.line 2,2 : 6,14 'D:\\Windows\\TEMP\\zpcuqfjy9532.fs'
//000001: type ('a, 'b) generic1 when 'a : equality = {
//000002: type Generic1<'a, 'b when 'a : equality> = {
IL_0000: nop
IL_0000: nop
IL_0001: ldarg.0
IL_0001: ldarg.0
IL_0002: ldarg.1
IL_0002: ldarg.1
IL_0003: unbox.any class Rg0dyjzl1050/generic1`2<!a,!b>
IL_0003: unbox.any class Zpcuqfjy9532/Generic1`2<!a,!b>
IL_0008: tail.
IL_0008: tail.
IL_000a: callvirt instance int32 class Rg0dyjzl1050/generic1`2<!a,!b>::CompareTo(class Rg0dyjzl1050/generic1`2<!0,!1>)
IL_000a: callvirt instance int32 class Zpcuqfjy9532/Generic1`2<!a,!b>::CompareTo(class Zpcuqfjy9532/Generic1`2<!0,!1>)
IL_000f: ret
IL_000f: ret
} // end of method generic1`2::CompareTo
} // end of method Generic1`2::CompareTo
.method public hidebysig virtual final
.method public hidebysig virtual final
instance int32 CompareTo(object obj,
instance int32 CompareTo(object obj,
class [mscorlib]System.Collections.IComparer comp) cil managed
class [mscorlib]System.Collections.IComparer comp) cil managed
{
{
//
//
.maxstack 5
.maxstack 5
.locals init ([0] class Rg0dyjzl1050/generic1`2<!a,!b> V_0,
.locals init ([0] class Zpcuqfjy9532/Generic1`2<!a,!b> V_0,
[1] int32 V_1,
[1] int32 V_1,
[2] !a V_2,
[2] !a V_2,
[3] !a V_3,
[3] !a V_3,
[4] !b V_4,
[4] !b V_4,
[5] !b V_5)
[5] !b V_5)
.line 1,1 : 15,23 ''
.line 2,2 : 6,14 ''
IL_0000: nop
IL_0000: nop
IL_0001: ldarg.1
IL_0001: ldarg.1
IL_0002: unbox.any class Rg0dyjzl1050/generic1`2<!a,!b>
IL_0002: unbox.any class Zpcuqfjy9532/Generic1`2<!a,!b>
IL_0007: stloc.0
IL_0007: stloc.0
IL_0008: ldarg.0
IL_0008: ldarg.0
IL_0009: ldnull
IL_0009: ldnull
IL_000a: cgt.un
IL_000a: cgt.un
IL_000c: brfalse.s IL_005b
IL_000c: brfalse.s IL_005b
IL_000e: ldarg.1
IL_000e: ldarg.1
IL_000f: unbox.any class Rg0dyjzl1050/generic1`2<!a,!b>
IL_000f: unbox.any class Zpcuqfjy9532/Generic1`2<!a,!b>
IL_0014: ldnull
IL_0014: ldnull
IL_0015: cgt.un
IL_0015: cgt.un
IL_0017: brfalse.s IL_0059
IL_0017: brfalse.s IL_0059
IL_0019: ldarg.0
IL_0019: ldarg.0
IL_001a: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_001a: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_001f: stloc.2
IL_001f: stloc.2
IL_0020: ldloc.0
IL_0020: ldloc.0
IL_0021: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_0021: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_0026: stloc.3
IL_0026: stloc.3
IL_0027: ldarg.2
IL_0027: ldarg.2
IL_0028: ldloc.2
IL_0028: ldloc.2
IL_0029: ldloc.3
IL_0029: ldloc.3
IL_002a: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic<!a>(class [mscorlib]System.Collections.IComparer,
IL_002a: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic<!a>(class [mscorlib]System.Collections.IComparer,
!!0,
!!0,
!!0)
!!0)
IL_002f: stloc.1
IL_002f: stloc.1
IL_0030: ldloc.1
IL_0030: ldloc.1
IL_0031: ldc.i4.0
IL_0031: ldc.i4.0
IL_0032: bge.s IL_0036
IL_0032: bge.s IL_0036
IL_0034: ldloc.1
IL_0034: ldloc.1
IL_0035: ret
IL_0035: ret
IL_0036: ldloc.1
IL_0036: ldloc.1
IL_0037: ldc.i4.0
IL_0037: ldc.i4.0
IL_0038: ble.s IL_003c
IL_0038: ble.s IL_003c
IL_003a: ldloc.1
IL_003a: ldloc.1
IL_003b: ret
IL_003b: ret
IL_003c: ldarg.0
IL_003c: ldarg.0
IL_003d: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_003d: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_0042: stloc.s V_4
IL_0042: stloc.s V_4
IL_0044: ldloc.0
IL_0044: ldloc.0
IL_0045: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_0045: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_004a: stloc.s V_5
IL_004a: stloc.s V_5
IL_004c: ldarg.2
IL_004c: ldarg.2
IL_004d: ldloc.s V_4
IL_004d: ldloc.s V_4
IL_004f: ldloc.s V_5
IL_004f: ldloc.s V_5
IL_0051: tail.
IL_0051: tail.
IL_0053: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic<!b>(class [mscorlib]System.Collections.IComparer,
IL_0053: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic<!b>(class [mscorlib]System.Collections.IComparer,
!!0,
!!0,
!!0)
!!0)
IL_0058: ret
IL_0058: ret
IL_0059: ldc.i4.1
IL_0059: ldc.i4.1
IL_005a: ret
IL_005a: ret
IL_005b: ldarg.1
IL_005b: ldarg.1
IL_005c: unbox.any class Rg0dyjzl1050/generic1`2<!a,!b>
IL_005c: unbox.any class Zpcuqfjy9532/Generic1`2<!a,!b>
IL_0061: ldnull
IL_0061: ldnull
IL_0062: cgt.un
IL_0062: cgt.un
IL_0064: brfalse.s IL_0068
IL_0064: brfalse.s IL_0068
IL_0066: ldc.i4.m1
IL_0066: ldc.i4.m1
IL_0067: ret
IL_0067: ret
IL_0068: ldc.i4.0
IL_0068: ldc.i4.0
IL_0069: ret
IL_0069: ret
} // end of method generic1`2::CompareTo
} // end of method Generic1`2::CompareTo
.method public hidebysig virtual final
.method public hidebysig virtual final
instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed
instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed
{
{
//
//
.maxstack 7
.maxstack 7
.locals init (int32 V_0,
.locals init (int32 V_0,
!b V_1,
!b V_1,
!a V_2)
!a V_2)
IL_0000: nop
IL_0000: nop
IL_0001: ldarg.0
IL_0001: ldarg.0
IL_0002: ldnull
IL_0002: ldnull
IL_0003: cgt.un
IL_0003: cgt.un
IL_0005: brfalse.s IL_0045
IL_0005: brfalse.s IL_0045
IL_0007: ldc.i4.0
IL_0007: ldc.i4.0
IL_0008: stloc.0
IL_0008: stloc.0
IL_0009: ldc.i4 0x9e3779b9
IL_0009: ldc.i4 0x9e3779b9
IL_000e: ldarg.0
IL_000e: ldarg.0
IL_000f: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_000f: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_0014: stloc.1
IL_0014: stloc.1
IL_0015: ldarg.1
IL_0015: ldarg.1
IL_0016: ldloc.1
IL_0016: ldloc.1
IL_0017: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericHashWithComparerIntrinsic<!b>(class [mscorlib]System.Collections.IEqualityComparer,
IL_0017: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericHashWithComparerIntrinsic<!b>(class [mscorlib]System.Collections.IEqualityComparer,
!!0)
!!0)
IL_001c: ldloc.0
IL_001c: ldloc.0
IL_001d: ldc.i4.6
IL_001d: ldc.i4.6
IL_001e: shl
IL_001e: shl
IL_001f: ldloc.0
IL_001f: ldloc.0
IL_0020: ldc.i4.2
IL_0020: ldc.i4.2
IL_0021: shr
IL_0021: shr
IL_0022: add
IL_0022: add
IL_0023: add
IL_0023: add
IL_0024: add
IL_0024: add
IL_0025: stloc.0
IL_0025: stloc.0
IL_0026: ldc.i4 0x9e3779b9
IL_0026: ldc.i4 0x9e3779b9
IL_002b: ldarg.0
IL_002b: ldarg.0
IL_002c: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_002c: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_0031: stloc.2
IL_0031: stloc.2
IL_0032: ldarg.1
IL_0032: ldarg.1
IL_0033: ldloc.2
IL_0033: ldloc.2
IL_0034: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericHashWithComparerIntrinsic<!a>(class [mscorlib]System.Collections.IEqualityComparer,
IL_0034: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericHashWithComparerIntrinsic<!a>(class [mscorlib]System.Collections.IEqualityComparer,
!!0)
!!0)
IL_0039: ldloc.0
IL_0039: ldloc.0
IL_003a: ldc.i4.6
IL_003a: ldc.i4.6
IL_003b: shl
IL_003b: shl
IL_003c: ldloc.0
IL_003c: ldloc.0
IL_003d: ldc.i4.2
IL_003d: ldc.i4.2
IL_003e: shr
IL_003e: shr
IL_003f: add
IL_003f: add
IL_0040: add
IL_0040: add
IL_0041: add
IL_0041: add
IL_0042: stloc.0
IL_0042: stloc.0
IL_0043: ldloc.0
IL_0043: ldloc.0
IL_0044: ret
IL_0044: ret
IL_0045: ldc.i4.0
IL_0045: ldc.i4.0
IL_0046: ret
IL_0046: ret
} // end of method generic1`2::GetHashCode
} // end of method Generic1`2::GetHashCode
.method public hidebysig virtual final
.method public hidebysig virtual final
instance int32 GetHashCode() cil managed
instance int32 GetHashCode() cil managed
{
{
//
//
.maxstack 8
.maxstack 8
.line 1,1 : 15,23 ''
.line 2,2 : 6,14 ''
IL_0000: nop
IL_0000: nop
IL_0001: ldarg.0
IL_0001: ldarg.0
IL_0002: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer()
IL_0002: call class [mscorlib]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer()
IL_0007: callvirt instance int32 class Rg0dyjzl1050/generic1`2<!a,!b>::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer)
IL_0007: callvirt instance int32 class Zpcuqfjy9532/Generic1`2<!a,!b>::GetHashCode(class [mscorlib]System.Collections.IEqualityComparer)
IL_000c: ret
IL_000c: ret
} // end of method generic1`2::GetHashCode
} // end of method Generic1`2::GetHashCode
.method public hidebysig virtual final
.method public hidebysig virtual final
instance bool Equals(object obj,
instance bool Equals(object obj,
class [mscorlib]System.Collections.IEqualityComparer comp) cil managed
class [mscorlib]System.Collections.IEqualityComparer comp) cil managed
{
{
//
//
.maxstack 5
.maxstack 5
.locals init (class Rg0dyjzl1050/generic1`2<!a,!b> V_0,
.locals init (class Zpcuqfjy9532/Generic1`2<!a,!b> V_0,
!a V_1,
!a V_1,
!a V_2,
!a V_2,
!b V_3,
!b V_3,
!b V_4)
!b V_4)
IL_0000: nop
IL_0000: nop
IL_0001: ldarg.0
IL_0001: ldarg.0
IL_0002: ldnull
IL_0002: ldnull
IL_0003: cgt.un
IL_0003: cgt.un
IL_0005: brfalse.s IL_0048
IL_0005: brfalse.s IL_0048
IL_0007: ldarg.1
IL_0007: ldarg.1
IL_0008: isinst class Rg0dyjzl1050/generic1`2<!a,!b>
IL_0008: isinst class Zpcuqfjy9532/Generic1`2<!a,!b>
IL_000d: stloc.0
IL_000d: stloc.0
IL_000e: ldloc.0
IL_000e: ldloc.0
IL_000f: brfalse.s IL_0046
IL_000f: brfalse.s IL_0046
IL_0011: ldarg.0
IL_0011: ldarg.0
IL_0012: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_0012: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_0017: stloc.1
IL_0017: stloc.1
IL_0018: ldloc.0
IL_0018: ldloc.0
IL_0019: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_0019: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_001e: stloc.2
IL_001e: stloc.2
IL_001f: ldarg.2
IL_001f: ldarg.2
IL_0020: ldloc.1
IL_0020: ldloc.1
IL_0021: ldloc.2
IL_0021: ldloc.2
IL_0022: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityWithComparerIntrinsic<!a>(class [mscorlib]System.Collections.IEqualityComparer,
IL_0022: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityWithComparerIntrinsic<!a>(class [mscorlib]System.Collections.IEqualityComparer,
!!0,
!!0,
!!0)
!!0)
IL_0027: brfalse.s IL_0044
IL_0027: brfalse.s IL_0044
IL_0029: ldarg.0
IL_0029: ldarg.0
IL_002a: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_002a: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_002f: stloc.3
IL_002f: stloc.3
IL_0030: ldloc.0
IL_0030: ldloc.0
IL_0031: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_0031: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_0036: stloc.s V_4
IL_0036: stloc.s V_4
IL_0038: ldarg.2
IL_0038: ldarg.2
IL_0039: ldloc.3
IL_0039: ldloc.3
IL_003a: ldloc.s V_4
IL_003a: ldloc.s V_4
IL_003c: tail.
IL_003c: tail.
IL_003e: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityWithComparerIntrinsic<!b>(class [mscorlib]System.Collections.IEqualityComparer,
IL_003e: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityWithComparerIntrinsic<!b>(class [mscorlib]System.Collections.IEqualityComparer,
!!0,
!!0,
!!0)
!!0)
IL_0043: ret
IL_0043: ret
IL_0044: ldc.i4.0
IL_0044: ldc.i4.0
IL_0045: ret
IL_0045: ret
IL_0046: ldc.i4.0
IL_0046: ldc.i4.0
IL_0047: ret
IL_0047: ret
IL_0048: ldarg.1
IL_0048: ldarg.1
IL_0049: ldnull
IL_0049: ldnull
IL_004a: cgt.un
IL_004a: cgt.un
IL_004c: ldc.i4.0
IL_004c: ldc.i4.0
IL_004d: ceq
IL_004d: ceq
IL_004f: ret
IL_004f: ret
} // end of method generic1`2::Equals
} // end of method Generic1`2::Equals
.method public hidebysig virtual final
.method public hidebysig virtual final
instance bool Equals(class Rg0dyjzl1050/generic1`2<!a,!b> obj) cil managed
instance bool Equals(class Zpcuqfjy9532/Generic1`2<!a,!b> obj) cil managed
{
{
//
//
.maxstack 4
.maxstack 4
.locals init (!a V_0,
.locals init (!a V_0,
!a V_1,
!a V_1,
!b V_2,
!b V_2,
!b V_3)
!b V_3)
IL_0000: nop
IL_0000: nop
IL_0001: ldarg.0
IL_0001: ldarg.0
IL_0002: ldnull
IL_0002: ldnull
IL_0003: cgt.un
IL_0003: cgt.un
IL_0005: brfalse.s IL_0040
IL_0005: brfalse.s IL_0040
IL_0007: ldarg.1
IL_0007: ldarg.1
IL_0008: ldnull
IL_0008: ldnull
IL_0009: cgt.un
IL_0009: cgt.un
IL_000b: brfalse.s IL_003e
IL_000b: brfalse.s IL_003e
IL_000d: ldarg.0
IL_000d: ldarg.0
IL_000e: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_000e: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_0013: stloc.0
IL_0013: stloc.0
IL_0014: ldarg.1
IL_0014: ldarg.1
IL_0015: ldfld !0 class Rg0dyjzl1050/generic1`2<!a,!b>::Foo@
IL_0015: ldfld !0 class Zpcuqfjy9532/Generic1`2<!a,!b>::Foo@
IL_001a: stloc.1
IL_001a: stloc.1
IL_001b: ldloc.0
IL_001b: ldloc.0
IL_001c: ldloc.1
IL_001c: ldloc.1
IL_001d: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityERIntrinsic<!a>(!!0,
IL_001d: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityERIntrinsic<!a>(!!0,
!!0)
!!0)
IL_0022: brfalse.s IL_003c
IL_0022: brfalse.s IL_003c
IL_0024: ldarg.0
IL_0024: ldarg.0
IL_0025: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_0025: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_002a: stloc.2
IL_002a: stloc.2
IL_002b: ldarg.1
IL_002b: ldarg.1
IL_002c: ldfld !1 class Rg0dyjzl1050/generic1`2<!a,!b>::Bar@
IL_002c: ldfld !1 class Zpcuqfjy9532/Generic1`2<!a,!b>::Bar@
IL_0031: stloc.3
IL_0031: stloc.3
IL_0032: ldloc.2
IL_0032: ldloc.2
IL_0033: ldloc.3
IL_0033: ldloc.3
IL_0034: tail.
IL_0034: tail.
IL_0036: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityERIntrinsic<!b>(!!0,
IL_0036: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityERIntrinsic<!b>(!!0,
!!0)
!!0)
IL_003b: ret
IL_003b: ret
IL_003c: ldc.i4.0
IL_003c: ldc.i4.0
IL_003d: ret
IL_003d: ret
IL_003e: ldc.i4.0
IL_003e: ldc.i4.0
IL_003f: ret
IL_003f: ret
IL_0040: ldarg.1
IL_0040: ldarg.1
IL_0041: ldnull
IL_0041: ldnull
IL_0042: cgt.un
IL_0042: cgt.un
IL_0044: ldc.i4.0
IL_0044: ldc.i4.0
IL_0045: ceq
IL_0045: ceq
IL_0047: ret
IL_0047: ret
} // end of method generic1`2::Equals
} // end of method Generic1`2::Equals
.method public hidebysig virtual final
.method public hidebysig virtual final
instance bool Equals(object obj) cil managed
instance bool Equals(object obj) cil managed
{
{
//
//
.maxstack 4
.maxstack 4
.locals init (class Rg0dyjzl1050/generic1`2<!a,!b> V_0)
.locals init (class Zpcuqfjy9532/Generic1`2<!a,!b> V_0)
IL_0000: nop
IL_0000: nop
IL_0001: ldarg.1
IL_0001: ldarg.1
IL_0002: isinst class Rg0dyjzl1050/generic1`2<!a,!b>
IL_0002: isinst class Zpcuqfjy9532/Generic1`2<!a,!b>
IL_0007: stloc.0
IL_0007: stloc.0
IL_0008: ldloc.0
IL_0008: ldloc.0
IL_0009: brfalse.s IL_0015
IL_0009: brfalse.s IL_0015
IL_000b: ldarg.0
IL_000b: ldarg.0
IL_000c: ldloc.0
IL_000c: ldloc.0
IL_000d: tail.
IL_000d: tail.
IL_000f: callvirt instance bool class Rg0dyjzl1050/generic1`2<!a,!b>::Equals(class Rg0dyjzl1050/generic1`2<!0,!1>)
IL_000f: callvirt instance bool class Zpcuqfjy9532/Generic1`2<!a,!b>::Equals(class Zpcuqfjy9532/Generic1`2<!0,!1>)
IL_0014: ret
IL_0014: ret
IL_0015: ldc.i4.0
IL_0015: ldc.i4.0
IL_0016: ret
IL_0016: ret
} // end of method generic1`2::Equals
} // end of method Generic1`2::Equals
.property instance !a Foo()
.property instance !a Foo()
{
{
.get instance !a Rg0dyjzl1050/generic1`2::get_Foo()
.get instance !a Zpcuqfjy9532/Generic1`2::get_Foo()
} // end of property generic1`2::Foo
} // end of property Generic1`2::Foo
.property instance !b Bar()
.property instance !b Bar()
{
{
.get instance !b Rg0dyjzl1050/generic1`2::get_Bar()
.get instance !b Zpcuqfjy9532/Generic1`2::get_Bar()
} // end of property generic1`2::Bar
} // end of property Generic1`2::Bar
} // end of class generic1`2
} // end of class Generic1`2
.method public specialname static class Rg0dyjzl1050/generic1`2<string,int32>
.method public specialname static class Zpcuqfjy9532/Generic1`2<string,int32>
get_x1() cil managed
get_x1() cil managed
{
{
//
//
.maxstack 8
.maxstack 8
IL_0000: ldsfld class Rg0dyjzl1050/generic1`2<string,int32> '<StartupCode$b9c704be-eb4a-4672-ac49-a9f91a2c68a3>'.$Rg0dyjzl1050::x1@7
IL_0000: ldsfld class Zpcuqfjy9532/Generic1`2<string,int32> '<StartupCode$c4688024-f068-42d8-b2c4-30bfb8cb7bef>'.$Zpcuqfjy9532::x1@7
IL_0005: ret
IL_0005: ret
} // end of method Rg0dyjzl1050::get_x1
} // end of method Zpcuqfjy9532::get_x1
.property class Rg0dyjzl1050/generic1`2<string,int32>
.property class Zpcuqfjy9532/Generic1`2<string,int32>
x1()
x1()
{
{
.get class Rg0dyjzl1050/generic1`2<string,int32> Rg0dyjzl1050::get_x1()
.get class Zpcuqfjy9532/Generic1`2<string,int32> Zpcuqfjy9532::get_x1()
} // end of property Rg0dyjzl1050::x1
} // end of property Zpcuqfjy9532::x1
} // end of class Rg0dyjzl1050
} // end of class Zpcuqfjy9532
.class private abstract auto ansi sealed '<StartupCode$b9c704be-eb4a-4672-ac49-a9f91a2c68a3>'.$Rg0dyjzl1050
.class private abstract auto ansi sealed '<StartupCode$c4688024-f068-42d8-b2c4-30bfb8cb7bef>'.$Zpcuqfjy9532
extends [mscorlib]System.Object
extends [mscorlib]System.Object
{
{
.field static assembly class Rg0dyjzl1050/generic1`2<string,int32> x1@7
.field static assembly class Zpcuqfjy9532/Generic1`2<string,int32> x1@7
.field static assembly int32 init@
.field static assembly int32 init@
.method public static void main@() cil managed
.method public static void main@() cil managed
{
{
.entrypoint
.entrypoint
//
//
.maxstack 8
.maxstack 8
.line 7,7 : 1,57 ''
.line 7,7 : 1,56 ''
//000002: Foo : 'a
//000003: Foo : 'a
//000003: Bar : 'b
//000004: Bar : 'b
//000004: }
//000005: }
//000005:
//000006:
//000006:
//000007: let x1 : (string, int) generic1 = { Foo = "a"; Bar = 1 }
//000007: let x1 : Generic1<string, int> = { Foo = "a"; Bar = 1 }
IL_0000: nop
IL_0000: nop
IL_0001: ldstr "a"
IL_0001: ldstr "a"
IL_0006: ldc.i4.1
IL_0006: ldc.i4.1
IL_0007: newobj instance void class Rg0dyjzl1050/generic1`2<string,int32>::.ctor(!0,
IL_0007: newobj instance void class Zpcuqfjy9532/Generic1`2<string,int32>::.ctor(!0,
!1)
!1)
IL_000c: stsfld class Rg0dyjzl1050/generic1`2<string,int32> '<StartupCode$b9c704be-eb4a-4672-ac49-a9f91a2c68a3>'.$Rg0dyjzl1050::x1@7
IL_000c: stsfld class Zpcuqfjy9532/Generic1`2<string,int32> '<StartupCode$c4688024-f068-42d8-b2c4-30bfb8cb7bef>'.$Zpcuqfjy9532::x1@7
IL_0011: ret
IL_0011: ret
} // end of method $Rg0dyjzl1050::main@
} // end of method $Zpcuqfjy9532::main@
} // end of class '<StartupCode$b9c704be-eb4a-4672-ac49-a9f91a2c68a3>'.$Rg0dyjzl1050
} // end of class '<StartupCode$c4688024-f068-42d8-b2c4-30bfb8cb7bef>'.$Zpcuqfjy9532
// =============================================================
// =============================================================
//
//