Enum entry hashCode() should return identity hash code #KT-59223

This commit is contained in:
Abduqodiri Qurbonzoda
2023-06-11 03:14:57 +03:00
committed by Space Team
parent 19c6622ff6
commit d6867917c9
17 changed files with 96 additions and 4 deletions
@@ -16715,6 +16715,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -16715,6 +16715,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -0,0 +1,8 @@
// WITH_STDLIB
enum class E {
A, B
}
// hashCode shouldn't always return ordinal: KT-59223
fun box() = if (E.A.hashCode() == E.A.ordinal && E.B.hashCode() == E.B.ordinal) "FAIL" else "OK"
@@ -16343,6 +16343,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -16715,6 +16715,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -16715,6 +16715,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -13504,6 +13504,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTest("compiler/testData/codegen/box/enum/enumConstructorParameterClashWithDefaults.kt");
}
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryMembers.kt");
@@ -12629,6 +12629,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -12731,6 +12731,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -12731,6 +12731,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -12731,6 +12731,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -24,10 +24,6 @@ public abstract class Enum<E: Enum<E>>(@kotlin.internal.IntrinsicConstEvaluation
return this === other
}
public override final fun hashCode(): Int {
return ordinal
}
public override fun toString(): String {
return name
}
@@ -13873,6 +13873,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -14197,6 +14197,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -13712,6 +13712,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -13874,6 +13874,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@Test
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@Test
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
@@ -11289,6 +11289,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
runTest("compiler/testData/codegen/box/enum/enumEntriesNameClashes.kt");
}
@TestMetadata("enumEntryHashCode.kt")
public void testEnumEntryHashCode() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryHashCode.kt");
}
@TestMetadata("enumEntryMembers.kt")
public void testEnumEntryMembers() throws Exception {
runTest("compiler/testData/codegen/box/enum/enumEntryMembers.kt");