diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt index 00d27e4b12b..ac6d8cc9d7e 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt @@ -361,22 +361,11 @@ abstract class FirJavaFacade( ) generateValueOfFunction(moduleData, classId.packageFqName, classId.relativeClassName) generateEntriesGetter(moduleData, classId.packageFqName, classId.relativeClassName) - if (javaClassDeclaredConstructors.isEmpty()) { - declarations += buildSyntheticConstructorForJavaClass( - javaClass, - classKind, - constructorId = constructorId, - ownerClassBuilder = this, - valueParametersForAnnotationConstructor = null, - moduleData = moduleData, - ) - } } if (classIsAnnotation) { declarations += - buildSyntheticConstructorForJavaClass( + buildConstructorForAnnotationClass( javaClass, - classKind, constructorId = constructorId, ownerClassBuilder = this, valueParametersForAnnotationConstructor = valueParametersForAnnotationConstructor, @@ -687,12 +676,11 @@ abstract class FirJavaFacade( } } - private fun buildSyntheticConstructorForJavaClass( + private fun buildConstructorForAnnotationClass( javaClass: JavaClass, - classKind: ClassKind, constructorId: CallableId, ownerClassBuilder: FirJavaClassBuilder, - valueParametersForAnnotationConstructor: ValueParametersForAnnotationConstructor?, + valueParametersForAnnotationConstructor: ValueParametersForAnnotationConstructor, moduleData: FirModuleData, ): FirJavaConstructor { return buildJavaConstructor { @@ -700,12 +688,11 @@ abstract class FirJavaFacade( this.moduleData = moduleData isFromSource = javaClass.isFromSource symbol = FirConstructorSymbol(constructorId) - val visibility = if (classKind == ClassKind.ENUM_CLASS) Visibilities.Private else Visibilities.Public - status = FirResolvedDeclarationStatusImpl(visibility, Modality.FINAL, EffectiveVisibility.Public) + status = FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL, EffectiveVisibility.Public) returnTypeRef = buildResolvedTypeRef { type = ownerClassBuilder.buildSelfTypeRef() } - valueParametersForAnnotationConstructor?.forEach { _, firValueParameter -> valueParameters += firValueParameter } + valueParametersForAnnotationConstructor.forEach { _, firValueParameter -> valueParameters += firValueParameter } isInner = false isPrimary = true annotationBuilder = { emptyList() } diff --git a/compiler/testData/diagnostics/tests/enum/inheritanceFromEnum.fir.kt b/compiler/testData/diagnostics/tests/enum/inheritanceFromEnum.fir.kt index 7f7a0cfcb3e..3f3824c8d59 100644 --- a/compiler/testData/diagnostics/tests/enum/inheritanceFromEnum.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/inheritanceFromEnum.fir.kt @@ -10,4 +10,4 @@ enum class MyEnum2() {} class MyClass(): MyEnum2() {} -class MyClass2(): MyJavaEnum() {} +class MyClass2(): MyJavaEnum() {} diff --git a/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt b/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt index 32895524cf5..70ce69add5a 100644 --- a/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt +++ b/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt @@ -1,6 +1,5 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ENUM_CLASS name:JEnum modality:FINAL visibility:public superTypes:[kotlin.Enum<@[FlexibleNullability] .JEnum?>] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.JEnum - CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:private <> () returnType:.JEnum [primary] ENUM_ENTRY IR_EXTERNAL_JAVA_DECLARATION_STUB name:ONE ENUM_ENTRY IR_EXTERNAL_JAVA_DECLARATION_STUB name:TWO ENUM_ENTRY IR_EXTERNAL_JAVA_DECLARATION_STUB name:THREE diff --git a/compiler/testData/loadJava/compiledJava/annotations/AnnotatedEnumEntry.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/AnnotatedEnumEntry.fir.txt index a4a7d84a193..4d113202a5b 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/AnnotatedEnumEntry.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/AnnotatedEnumEntry.fir.txt @@ -11,8 +11,6 @@ public final enum class AnnotatedEnumEntry : R|kotlin/Enum| public get(): R|kotlin/enums/EnumEntries| - private constructor(): R|test/AnnotatedEnumEntry| - public final annotation class Anno : R|kotlin/Annotation| { public constructor(value: R|kotlin/String|): R|test/AnnotatedEnumEntry.Anno| diff --git a/compiler/testData/loadJava/compiledJava/annotations/CustomAnnotation.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/CustomAnnotation.fir.txt index 1515d3bf81d..30cbe047f13 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/CustomAnnotation.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/CustomAnnotation.fir.txt @@ -14,8 +14,6 @@ public abstract interface CustomAnnotation : R|kotlin/Any| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - private constructor(): R|test/CustomAnnotation.MyEnum| - } @R|test/CustomAnnotation.MyAnnotation|(value = R|test/CustomAnnotation.MyEnum.ONE|) public open class MyTest : R|kotlin/Any| { public constructor(): R|test/CustomAnnotation.MyTest| diff --git a/compiler/testData/loadJava/compiledJava/annotations/EnumArgumentWithCustomToString.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/EnumArgumentWithCustomToString.fir.txt index e8be39507eb..06a0d7fd35d 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/EnumArgumentWithCustomToString.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/EnumArgumentWithCustomToString.fir.txt @@ -14,8 +14,6 @@ public open class EnumArgumentWithCustomToString : R|kotlin/Any| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - private constructor(): R|test/EnumArgumentWithCustomToString.E| - } public final annotation class EnumAnno : R|kotlin/Annotation| { public constructor(value: R|test/EnumArgumentWithCustomToString.E|): R|test/EnumArgumentWithCustomToString.EnumAnno| diff --git a/compiler/testData/loadJava/compiledJava/annotations/NestedEnumArgument.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/NestedEnumArgument.fir.txt index a61477afccb..cfd785564c6 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/NestedEnumArgument.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/NestedEnumArgument.fir.txt @@ -18,7 +18,5 @@ public open class NestedEnumArgument : R|kotlin/Any| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - private constructor(): R|test/NestedEnumArgument.E| - } } diff --git a/compiler/testData/loadJava/compiledJava/annotations/NestedEnumInAnnotation.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/NestedEnumInAnnotation.fir.txt index a5d65fba28c..842b8113688 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/NestedEnumInAnnotation.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/NestedEnumInAnnotation.fir.txt @@ -13,8 +13,6 @@ public final annotation class Api : R|kotlin/Annotation| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - private constructor(): R|test/Api.Status| - } } @R|test/Api|(status = R|test/Api.Status.Ok|) public open class NestedEnumInAnnotation : R|kotlin/Any| { diff --git a/compiler/testData/loadJava/compiledJava/enum/EnumWithSpecializedEntry.fir.txt b/compiler/testData/loadJava/compiledJava/enum/EnumWithSpecializedEntry.fir.txt index 8e700ab5a0a..c34a43742cf 100644 --- a/compiler/testData/loadJava/compiledJava/enum/EnumWithSpecializedEntry.fir.txt +++ b/compiler/testData/loadJava/compiledJava/enum/EnumWithSpecializedEntry.fir.txt @@ -10,8 +10,6 @@ public final enum class EnumWithSpecializedEntry : R|kotlin/Enum| public get(): R|kotlin/enums/EnumEntries| - private constructor(): R|test/EnumWithSpecializedEntry| - public/*package*/ open class Nested : R|kotlin/Any| { public/*package*/ constructor(): R|test/EnumWithSpecializedEntry.Nested| diff --git a/compiler/testData/loadJava/compiledJava/enum/JavaEnum.fir.txt b/compiler/testData/loadJava/compiledJava/enum/JavaEnum.fir.txt index b623f44b925..3c7e25261b1 100644 --- a/compiler/testData/loadJava/compiledJava/enum/JavaEnum.fir.txt +++ b/compiler/testData/loadJava/compiledJava/enum/JavaEnum.fir.txt @@ -10,6 +10,4 @@ public final enum class JavaEnum : R|kotlin/Enum| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - private constructor(): R|test/JavaEnum| - } diff --git a/compiler/testData/loadJava/compiledJava/static/Enum.fir.txt b/compiler/testData/loadJava/compiledJava/static/Enum.fir.txt index de0158a1ff9..1b007faf349 100644 --- a/compiler/testData/loadJava/compiledJava/static/Enum.fir.txt +++ b/compiler/testData/loadJava/compiledJava/static/Enum.fir.txt @@ -11,8 +11,6 @@ public final enum class Enum : R|kotlin/Enum| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - private constructor(): R|test/Enum| - public open inner class Inner : R|kotlin/Any| { public/*package*/ open fun bar(): R|kotlin/Unit| diff --git a/compiler/testData/loadJava/compiledJava/static/StaticMembersInEnum.fir.txt b/compiler/testData/loadJava/compiledJava/static/StaticMembersInEnum.fir.txt index 3a4324e308e..701f30f8fdd 100644 --- a/compiler/testData/loadJava/compiledJava/static/StaticMembersInEnum.fir.txt +++ b/compiler/testData/loadJava/compiledJava/static/StaticMembersInEnum.fir.txt @@ -19,6 +19,4 @@ public final enum class StaticMembersInEnum : R|kotlin/Enum| public get(): R|kotlin/enums/EnumEntries| - private constructor(): R|test/StaticMembersInEnum| - }