Comparing sensitive data, confidential files or internal emails?

Most legal and privacy policies prohibit uploading sensitive data online. Diffchecker Desktop ensures your confidential information never leaves your computer. Work offline and compare documents securely.

Untitled diff

Created Diff never expires
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




// =============================================================
// =============================================================


//
//