diff --git a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 62c90293987..86df109ae8f 100644 --- a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -11045,6 +11045,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/enum/constructorWithReordering.kt"); } + @TestMetadata("declaringClassOnEnumObject.kt") + public void testDeclaringClassOnEnumObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/declaringClassOnEnumObject.kt"); + } + @TestMetadata("deepInnerClassInEnumEntryClass.kt") public void testDeepInnerClassInEnumEntryClass() throws Exception { runTest("compiler/testData/codegen/box/enum/deepInnerClassInEnumEntryClass.kt"); diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/synthetic/JavaSyntheticPropertiesScope.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/synthetic/JavaSyntheticPropertiesScope.kt index 138ab8ef42d..fe9441cbfe0 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/synthetic/JavaSyntheticPropertiesScope.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/synthetic/JavaSyntheticPropertiesScope.kt @@ -162,7 +162,7 @@ class JavaSyntheticPropertiesScope(storageManager: StorageManager, private val l return descriptor.valueParameters.isEmpty() && descriptor.typeParameters.isEmpty() && descriptor.visibility.isVisibleOutside() - && !descriptor.isHiddenForResolutionEverywhereBesideSupercalls + && !(descriptor.isHiddenForResolutionEverywhereBesideSupercalls && descriptor.name.asString() == "isEmpty") // CharSequence.isEmpty() from JDK15 } private fun isGoodSetMethod(descriptor: FunctionDescriptor, getMethod: FunctionDescriptor): Boolean { @@ -179,7 +179,7 @@ class JavaSyntheticPropertiesScope(storageManager: StorageManager, private val l return parameter.varargElementType == null && descriptor.typeParameters.isEmpty() && descriptor.visibility.isVisibleOutside() - && !descriptor.isHiddenForResolutionEverywhereBesideSupercalls + && !(descriptor.isHiddenForResolutionEverywhereBesideSupercalls && descriptor.name.asString() == "isEmpty") // CharSequence.isEmpty() from JDK15 } private fun FunctionDescriptor.findOverridden(condition: (FunctionDescriptor) -> Boolean): FunctionDescriptor? { diff --git a/compiler/testData/codegen/box/enum/declaringClassOnEnumObject.kt b/compiler/testData/codegen/box/enum/declaringClassOnEnumObject.kt new file mode 100644 index 00000000000..b0a709c813c --- /dev/null +++ b/compiler/testData/codegen/box/enum/declaringClassOnEnumObject.kt @@ -0,0 +1,13 @@ +// TARGET_BACKEND: JVM +// IGNORE_BACKEND_FIR: JVM_IR + +enum class KEnum { A } + +fun test(e: KEnum): String { + return e.declaringClass.toString() +} + +fun box(): String { + val result = test(KEnum.A) + return if (result == "class KEnum") "OK" else "fail: $result" +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index ce7808eb62a..e369dea175d 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -12440,6 +12440,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/enum/constructorWithReordering.kt"); } + @TestMetadata("declaringClassOnEnumObject.kt") + public void testDeclaringClassOnEnumObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/declaringClassOnEnumObject.kt"); + } + @TestMetadata("deepInnerClassInEnumEntryClass.kt") public void testDeepInnerClassInEnumEntryClass() throws Exception { runTest("compiler/testData/codegen/box/enum/deepInnerClassInEnumEntryClass.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 49bde71b5b5..a1541f95c47 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -12440,6 +12440,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/enum/constructorWithReordering.kt"); } + @TestMetadata("declaringClassOnEnumObject.kt") + public void testDeclaringClassOnEnumObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/declaringClassOnEnumObject.kt"); + } + @TestMetadata("deepInnerClassInEnumEntryClass.kt") public void testDeepInnerClassInEnumEntryClass() throws Exception { runTest("compiler/testData/codegen/box/enum/deepInnerClassInEnumEntryClass.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 7031cdcb634..769d37db42d 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -11045,6 +11045,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/enum/constructorWithReordering.kt"); } + @TestMetadata("declaringClassOnEnumObject.kt") + public void testDeclaringClassOnEnumObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/declaringClassOnEnumObject.kt"); + } + @TestMetadata("deepInnerClassInEnumEntryClass.kt") public void testDeepInnerClassInEnumEntryClass() throws Exception { runTest("compiler/testData/codegen/box/enum/deepInnerClassInEnumEntryClass.kt");