.Default.get""
- IL_000e: ldarg.0
- IL_000f: ldfld ""int B1.k__BackingField""
- IL_0014: ldarg.1
- IL_0015: ldfld ""int B1.
k__BackingField""
- IL_001a: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
- IL_001f: ret
- IL_0020: ldc.i4.0
- IL_0021: ret
+ IL_0002: beq.s IL_0026
+ IL_0004: ldarg.0
+ IL_0005: ldarg.1
+ IL_0006: call ""bool A.Equals(A)""
+ IL_000b: brfalse.s IL_0024
+ IL_000d: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
+ IL_0012: ldarg.0
+ IL_0013: ldfld ""int B1.k__BackingField""
+ IL_0018: ldarg.1
+ IL_0019: ldfld ""int B1.
k__BackingField""
+ IL_001e: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
+ IL_0023: ret
+ IL_0024: ldc.i4.0
+ IL_0025: ret
+ IL_0026: ldc.i4.1
+ IL_0027: ret
}");
verifier.VerifyIL("B1.GetHashCode()",
@"{
@@ -22292,34 +22352,44 @@ static void Main()
verifier.VerifyIL("A.Equals(A)",
@"{
- // Code size 47 (0x2f)
+ // Code size 53 (0x35)
.maxstack 3
- IL_0000: ldarg.1
- IL_0001: brfalse.s IL_002d
- IL_0003: ldarg.0
- IL_0004: callvirt ""System.Type A.EqualityContract.get""
- IL_0009: ldarg.1
- IL_000a: callvirt ""System.Type A.EqualityContract.get""
- IL_000f: call ""bool System.Type.op_Equality(System.Type, System.Type)""
- IL_0014: brfalse.s IL_002d
- IL_0016: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
- IL_001b: ldarg.0
- IL_001c: ldfld ""int A.k__BackingField""
- IL_0021: ldarg.1
- IL_0022: ldfld ""int A.
k__BackingField""
- IL_0027: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
- IL_002c: ret
- IL_002d: ldc.i4.0
- IL_002e: ret
+ IL_0000: ldarg.0
+ IL_0001: ldarg.1
+ IL_0002: beq.s IL_0033
+ IL_0004: ldarg.1
+ IL_0005: brfalse.s IL_0031
+ IL_0007: ldarg.0
+ IL_0008: callvirt ""System.Type A.EqualityContract.get""
+ IL_000d: ldarg.1
+ IL_000e: callvirt ""System.Type A.EqualityContract.get""
+ IL_0013: call ""bool System.Type.op_Equality(System.Type, System.Type)""
+ IL_0018: brfalse.s IL_0031
+ IL_001a: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
+ IL_001f: ldarg.0
+ IL_0020: ldfld ""int A.k__BackingField""
+ IL_0025: ldarg.1
+ IL_0026: ldfld ""int A.
k__BackingField""
+ IL_002b: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
+ IL_0030: ret
+ IL_0031: ldc.i4.0
+ IL_0032: ret
+ IL_0033: ldc.i4.1
+ IL_0034: ret
}");
verifier.VerifyIL("B1.Equals(B1)",
@"{
- // Code size 8 (0x8)
+ // Code size 14 (0xe)
.maxstack 2
IL_0000: ldarg.0
IL_0001: ldarg.1
- IL_0002: call ""bool A.Equals(A)""
- IL_0007: ret
+ IL_0002: beq.s IL_000c
+ IL_0004: ldarg.0
+ IL_0005: ldarg.1
+ IL_0006: call ""bool A.Equals(A)""
+ IL_000b: ret
+ IL_000c: ldc.i4.1
+ IL_000d: ret
}");
verifier.VerifyIL("B1.GetHashCode()",
@"{
@@ -22393,27 +22463,37 @@ static void Main()
verifier.VerifyIL("A.Equals(A)",
@"{
- // Code size 23 (0x17)
+ // Code size 29 (0x1d)
.maxstack 2
- IL_0000: ldarg.1
- IL_0001: brfalse.s IL_0015
- IL_0003: ldarg.0
- IL_0004: callvirt ""System.Type A.EqualityContract.get""
- IL_0009: ldarg.1
- IL_000a: callvirt ""System.Type A.EqualityContract.get""
- IL_000f: call ""bool System.Type.op_Equality(System.Type, System.Type)""
- IL_0014: ret
- IL_0015: ldc.i4.0
- IL_0016: ret
+ IL_0000: ldarg.0
+ IL_0001: ldarg.1
+ IL_0002: beq.s IL_001b
+ IL_0004: ldarg.1
+ IL_0005: brfalse.s IL_0019
+ IL_0007: ldarg.0
+ IL_0008: callvirt ""System.Type A.EqualityContract.get""
+ IL_000d: ldarg.1
+ IL_000e: callvirt ""System.Type A.EqualityContract.get""
+ IL_0013: call ""bool System.Type.op_Equality(System.Type, System.Type)""
+ IL_0018: ret
+ IL_0019: ldc.i4.0
+ IL_001a: ret
+ IL_001b: ldc.i4.1
+ IL_001c: ret
}");
verifier.VerifyIL("C.Equals(C)",
@"{
- // Code size 8 (0x8)
+ // Code size 14 (0xe)
.maxstack 2
IL_0000: ldarg.0
IL_0001: ldarg.1
- IL_0002: call ""bool B.Equals(B)""
- IL_0007: ret
+ IL_0002: beq.s IL_000c
+ IL_0004: ldarg.0
+ IL_0005: ldarg.1
+ IL_0006: call ""bool B.Equals(B)""
+ IL_000b: ret
+ IL_000c: ldc.i4.1
+ IL_000d: ret
}");
}
@@ -22495,18 +22575,23 @@ static void Main()
verifier.VerifyIL("A.Equals(A)",
@"{
- // Code size 23 (0x17)
+ // Code size 29 (0x1d)
.maxstack 2
- IL_0000: ldarg.1
- IL_0001: brfalse.s IL_0015
- IL_0003: ldarg.0
- IL_0004: callvirt ""System.Type A.EqualityContract.get""
- IL_0009: ldarg.1
- IL_000a: callvirt ""System.Type A.EqualityContract.get""
- IL_000f: call ""bool System.Type.op_Equality(System.Type, System.Type)""
- IL_0014: ret
- IL_0015: ldc.i4.0
- IL_0016: ret
+ IL_0000: ldarg.0
+ IL_0001: ldarg.1
+ IL_0002: beq.s IL_001b
+ IL_0004: ldarg.1
+ IL_0005: brfalse.s IL_0019
+ IL_0007: ldarg.0
+ IL_0008: callvirt ""System.Type A.EqualityContract.get""
+ IL_000d: ldarg.1
+ IL_000e: callvirt ""System.Type A.EqualityContract.get""
+ IL_0013: call ""bool System.Type.op_Equality(System.Type, System.Type)""
+ IL_0018: ret
+ IL_0019: ldc.i4.0
+ IL_001a: ret
+ IL_001b: ldc.i4.1
+ IL_001c: ret
}");
verifier.VerifyIL("B.Equals(A)",
@"{
@@ -22528,12 +22613,17 @@ .maxstack 2
}");
verifier.VerifyIL("C.Equals(C)",
@"{
- // Code size 8 (0x8)
+ // Code size 14 (0xe)
.maxstack 2
IL_0000: ldarg.0
IL_0001: ldarg.1
- IL_0002: call ""bool B.Equals(B)""
- IL_0007: ret
+ IL_0002: beq.s IL_000c
+ IL_0004: ldarg.0
+ IL_0005: ldarg.1
+ IL_0006: call ""bool B.Equals(B)""
+ IL_000b: ret
+ IL_000c: ldc.i4.1
+ IL_000d: ret
}");
VerifyVirtualMethod(comp.GetMember("A.get_EqualityContract"), isOverride: false);
@@ -22681,44 +22771,54 @@ static void Main()
verifier.VerifyIL("A.Equals(A)",
@"{
- // Code size 47 (0x2f)
+ // Code size 53 (0x35)
.maxstack 3
- IL_0000: ldarg.1
- IL_0001: brfalse.s IL_002d
- IL_0003: ldarg.0
- IL_0004: callvirt ""System.Type A.EqualityContract.get""
- IL_0009: ldarg.1
- IL_000a: callvirt ""System.Type A.EqualityContract.get""
- IL_000f: call ""bool System.Type.op_Equality(System.Type, System.Type)""
- IL_0014: brfalse.s IL_002d
- IL_0016: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
- IL_001b: ldarg.0
- IL_001c: ldfld ""int A.k__BackingField""
- IL_0021: ldarg.1
- IL_0022: ldfld ""int A.k__BackingField""
- IL_0027: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
- IL_002c: ret
- IL_002d: ldc.i4.0
- IL_002e: ret
+ IL_0000: ldarg.0
+ IL_0001: ldarg.1
+ IL_0002: beq.s IL_0033
+ IL_0004: ldarg.1
+ IL_0005: brfalse.s IL_0031
+ IL_0007: ldarg.0
+ IL_0008: callvirt ""System.Type A.EqualityContract.get""
+ IL_000d: ldarg.1
+ IL_000e: callvirt ""System.Type A.EqualityContract.get""
+ IL_0013: call ""bool System.Type.op_Equality(System.Type, System.Type)""
+ IL_0018: brfalse.s IL_0031
+ IL_001a: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
+ IL_001f: ldarg.0
+ IL_0020: ldfld ""int A.k__BackingField""
+ IL_0025: ldarg.1
+ IL_0026: ldfld ""int A.k__BackingField""
+ IL_002b: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
+ IL_0030: ret
+ IL_0031: ldc.i4.0
+ IL_0032: ret
+ IL_0033: ldc.i4.1
+ IL_0034: ret
}");
// https://github.com/dotnet/roslyn/issues/44895: C.Equals() should compare B.Y.
verifier.VerifyIL("C.Equals(C)",
@"{
- // Code size 34 (0x22)
+ // Code size 40 (0x28)
.maxstack 3
IL_0000: ldarg.0
IL_0001: ldarg.1
- IL_0002: call ""bool B.Equals(B)""
- IL_0007: brfalse.s IL_0020
- IL_0009: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
- IL_000e: ldarg.0
- IL_000f: ldfld ""int C.k__BackingField""
- IL_0014: ldarg.1
- IL_0015: ldfld ""int C.k__BackingField""
- IL_001a: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
- IL_001f: ret
- IL_0020: ldc.i4.0
- IL_0021: ret
+ IL_0002: beq.s IL_0026
+ IL_0004: ldarg.0
+ IL_0005: ldarg.1
+ IL_0006: call ""bool B.Equals(B)""
+ IL_000b: brfalse.s IL_0024
+ IL_000d: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
+ IL_0012: ldarg.0
+ IL_0013: ldfld ""int C.k__BackingField""
+ IL_0018: ldarg.1
+ IL_0019: ldfld ""int C.k__BackingField""
+ IL_001e: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
+ IL_0023: ret
+ IL_0024: ldc.i4.0
+ IL_0025: ret
+ IL_0026: ldc.i4.1
+ IL_0027: ret
}");
verifier.VerifyIL("C.GetHashCode()",
@"{
@@ -22842,25 +22942,30 @@ static void Main()
verifier.VerifyIL("A.Equals(A)",
@"{
- // Code size 47 (0x2f)
+ // Code size 53 (0x35)
.maxstack 3
- IL_0000: ldarg.1
- IL_0001: brfalse.s IL_002d
- IL_0003: ldarg.0
- IL_0004: callvirt ""System.Type A.EqualityContract.get""
- IL_0009: ldarg.1
- IL_000a: callvirt ""System.Type A.EqualityContract.get""
- IL_000f: call ""bool System.Type.op_Equality(System.Type, System.Type)""
- IL_0014: brfalse.s IL_002d
- IL_0016: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
- IL_001b: ldarg.0
- IL_001c: ldfld ""int A.k__BackingField""
- IL_0021: ldarg.1
- IL_0022: ldfld ""int A.k__BackingField""
- IL_0027: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
- IL_002c: ret
- IL_002d: ldc.i4.0
- IL_002e: ret
+ IL_0000: ldarg.0
+ IL_0001: ldarg.1
+ IL_0002: beq.s IL_0033
+ IL_0004: ldarg.1
+ IL_0005: brfalse.s IL_0031
+ IL_0007: ldarg.0
+ IL_0008: callvirt ""System.Type A.EqualityContract.get""
+ IL_000d: ldarg.1
+ IL_000e: callvirt ""System.Type A.EqualityContract.get""
+ IL_0013: call ""bool System.Type.op_Equality(System.Type, System.Type)""
+ IL_0018: brfalse.s IL_0031
+ IL_001a: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
+ IL_001f: ldarg.0
+ IL_0020: ldfld ""int A.k__BackingField""
+ IL_0025: ldarg.1
+ IL_0026: ldfld ""int A.k__BackingField""
+ IL_002b: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
+ IL_0030: ret
+ IL_0031: ldc.i4.0
+ IL_0032: ret
+ IL_0033: ldc.i4.1
+ IL_0034: ret
}");
verifier.VerifyIL("B.Equals(A)",
@"{
@@ -22873,21 +22978,26 @@ .maxstack 2
}");
verifier.VerifyIL("B.Equals(B)",
@"{
- // Code size 34 (0x22)
+ // Code size 40 (0x28)
.maxstack 3
IL_0000: ldarg.0
IL_0001: ldarg.1
- IL_0002: call ""bool A.Equals(A)""
- IL_0007: brfalse.s IL_0020
- IL_0009: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
- IL_000e: ldarg.0
- IL_000f: ldfld ""int B.k__BackingField""
- IL_0014: ldarg.1
- IL_0015: ldfld ""int B.k__BackingField""
- IL_001a: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
- IL_001f: ret
- IL_0020: ldc.i4.0
- IL_0021: ret
+ IL_0002: beq.s IL_0026
+ IL_0004: ldarg.0
+ IL_0005: ldarg.1
+ IL_0006: call ""bool A.Equals(A)""
+ IL_000b: brfalse.s IL_0024
+ IL_000d: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
+ IL_0012: ldarg.0
+ IL_0013: ldfld ""int B.k__BackingField""
+ IL_0018: ldarg.1
+ IL_0019: ldfld ""int B.k__BackingField""
+ IL_001e: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
+ IL_0023: ret
+ IL_0024: ldc.i4.0
+ IL_0025: ret
+ IL_0026: ldc.i4.1
+ IL_0027: ret
}");
verifier.VerifyIL("C.Equals(B)",
@"{
@@ -22900,21 +23010,26 @@ .maxstack 2
}");
verifier.VerifyIL("C.Equals(C)",
@"{
- // Code size 34 (0x22)
+ // Code size 40 (0x28)
.maxstack 3
IL_0000: ldarg.0
IL_0001: ldarg.1
- IL_0002: call ""bool B.Equals(B)""
- IL_0007: brfalse.s IL_0020
- IL_0009: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
- IL_000e: ldarg.0
- IL_000f: ldfld ""int C.k__BackingField""
- IL_0014: ldarg.1
- IL_0015: ldfld ""int C.k__BackingField""
- IL_001a: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
- IL_001f: ret
- IL_0020: ldc.i4.0
- IL_0021: ret
+ IL_0002: beq.s IL_0026
+ IL_0004: ldarg.0
+ IL_0005: ldarg.1
+ IL_0006: call ""bool B.Equals(B)""
+ IL_000b: brfalse.s IL_0024
+ IL_000d: call ""System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer.Default.get""
+ IL_0012: ldarg.0
+ IL_0013: ldfld ""int C.k__BackingField""
+ IL_0018: ldarg.1
+ IL_0019: ldfld ""int C.k__BackingField""
+ IL_001e: callvirt ""bool System.Collections.Generic.EqualityComparer.Equals(int, int)""
+ IL_0023: ret
+ IL_0024: ldc.i4.0
+ IL_0025: ret
+ IL_0026: ldc.i4.1
+ IL_0027: ret
}");
}
@@ -23243,18 +23358,23 @@ static void Main()
verifier.VerifyIL("A.Equals(A)",
@"{
- // Code size 23 (0x17)
+ // Code size 29 (0x1d)
.maxstack 2
- IL_0000: ldarg.1
- IL_0001: brfalse.s IL_0015
- IL_0003: ldarg.0
- IL_0004: callvirt ""System.Type A.EqualityContract.get""
- IL_0009: ldarg.1
- IL_000a: callvirt ""System.Type A.EqualityContract.get""
- IL_000f: call ""bool System.Type.op_Equality(System.Type, System.Type)""
- IL_0014: ret
- IL_0015: ldc.i4.0
- IL_0016: ret
+ IL_0000: ldarg.0
+ IL_0001: ldarg.1
+ IL_0002: beq.s IL_001b
+ IL_0004: ldarg.1
+ IL_0005: brfalse.s IL_0019
+ IL_0007: ldarg.0
+ IL_0008: callvirt ""System.Type A.EqualityContract.get""
+ IL_000d: ldarg.1
+ IL_000e: callvirt ""System.Type A.EqualityContract.get""
+ IL_0013: call ""bool System.Type.op_Equality(System.Type, System.Type)""
+ IL_0018: ret
+ IL_0019: ldc.i4.0
+ IL_001a: ret
+ IL_001b: ldc.i4.1
+ IL_001c: ret
}");
verifier.VerifyIL("B.Equals(A)",
@"{
@@ -23267,12 +23387,17 @@ .maxstack 2
}");
verifier.VerifyIL("B.Equals(B)",
@"{
- // Code size 8 (0x8)
+ // Code size 14 (0xe)
.maxstack 2
IL_0000: ldarg.0
IL_0001: ldarg.1
- IL_0002: call ""bool A.Equals(A)""
- IL_0007: ret
+ IL_0002: beq.s IL_000c
+ IL_0004: ldarg.0
+ IL_0005: ldarg.1
+ IL_0006: call ""bool A.Equals(A)""
+ IL_000b: ret
+ IL_000c: ldc.i4.1
+ IL_000d: ret
}");
}
diff --git a/src/Compilers/CSharp/Test/Symbol/Symbols/AnonymousTypesSymbolTests.cs b/src/Compilers/CSharp/Test/Symbol/Symbols/AnonymousTypesSymbolTests.cs
index a3f49fd205905..3f21385a75283 100644
--- a/src/Compilers/CSharp/Test/Symbol/Symbols/AnonymousTypesSymbolTests.cs
+++ b/src/Compilers/CSharp/Test/Symbol/Symbols/AnonymousTypesSymbolTests.cs
@@ -364,37 +364,42 @@ .maxstack 1
).VerifyIL(
"<>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.Equals",
@"{
- // Code size 83 (0x53)
+ // Code size 89 (0x59)
.maxstack 3
.locals init (<>f__AnonymousType1<j__TPar, j__TPar, j__TPar> V_0)
IL_0000: ldarg.1
IL_0001: isinst ""<>f__AnonymousType1<j__TPar, j__TPar, j__TPar>""
IL_0006: stloc.0
- IL_0007: ldloc.0
- IL_0008: brfalse.s IL_0051
- IL_000a: call ""System.Collections.Generic.EqualityComparer<j__TPar> System.Collections.Generic.EqualityComparer<j__TPar>.Default.get""
- IL_000f: ldarg.0
- IL_0010: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
- IL_0015: ldloc.0
- IL_0016: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
- IL_001b: callvirt ""bool System.Collections.Generic.EqualityComparer<j__TPar>.Equals(j__TPar, j__TPar)""
- IL_0020: brfalse.s IL_0051
- IL_0022: call ""System.Collections.Generic.EqualityComparer<j__TPar> System.Collections.Generic.EqualityComparer<j__TPar>.Default.get""
- IL_0027: ldarg.0
- IL_0028: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
- IL_002d: ldloc.0
- IL_002e: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
- IL_0033: callvirt ""bool System.Collections.Generic.EqualityComparer<j__TPar>.Equals(j__TPar, j__TPar)""
- IL_0038: brfalse.s IL_0051
- IL_003a: call ""System.Collections.Generic.EqualityComparer<j__TPar> System.Collections.Generic.EqualityComparer<j__TPar>.Default.get""
- IL_003f: ldarg.0
- IL_0040: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
- IL_0045: ldloc.0
- IL_0046: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
- IL_004b: callvirt ""bool System.Collections.Generic.EqualityComparer<j__TPar>.Equals(j__TPar, j__TPar)""
- IL_0050: ret
- IL_0051: ldc.i4.0
- IL_0052: ret
+ IL_0007: ldarg.0
+ IL_0008: ldloc.0
+ IL_0009: beq.s IL_0057
+ IL_000b: ldloc.0
+ IL_000c: brfalse.s IL_0055
+ IL_000e: call ""System.Collections.Generic.EqualityComparer<j__TPar> System.Collections.Generic.EqualityComparer<j__TPar>.Default.get""
+ IL_0013: ldarg.0
+ IL_0014: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
+ IL_0019: ldloc.0
+ IL_001a: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
+ IL_001f: callvirt ""bool System.Collections.Generic.EqualityComparer<j__TPar>.Equals(j__TPar, j__TPar)""
+ IL_0024: brfalse.s IL_0055
+ IL_0026: call ""System.Collections.Generic.EqualityComparer<j__TPar> System.Collections.Generic.EqualityComparer<j__TPar>.Default.get""
+ IL_002b: ldarg.0
+ IL_002c: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
+ IL_0031: ldloc.0
+ IL_0032: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
+ IL_0037: callvirt ""bool System.Collections.Generic.EqualityComparer<j__TPar>.Equals(j__TPar, j__TPar)""
+ IL_003c: brfalse.s IL_0055
+ IL_003e: call ""System.Collections.Generic.EqualityComparer<j__TPar> System.Collections.Generic.EqualityComparer<j__TPar>.Default.get""
+ IL_0043: ldarg.0
+ IL_0044: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
+ IL_0049: ldloc.0
+ IL_004a: ldfld ""j__TPar <>f__AnonymousType1<j__TPar, j__TPar, j__TPar>.i__Field""
+ IL_004f: callvirt ""bool System.Collections.Generic.EqualityComparer<j__TPar>.Equals(