From 1260d0356113f4380fa86ebc3b5a111759169f91 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 24 Nov 2023 22:38:12 +0100 Subject: [PATCH] Drop erroneous FirJavaConstructorBuilder.visibility Related to KT-62961 --- .../java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt | 6 ++---- .../kotlin/fir/java/declarations/FirJavaConstructor.kt | 1 - .../diagnostics/tests/enum/inheritanceFromEnum.fir.kt | 2 +- .../testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt | 2 +- .../compiledJava/annotations/AnnotatedEnumEntry.fir.txt | 2 +- .../compiledJava/annotations/CustomAnnotation.fir.txt | 2 +- .../annotations/EnumArgumentWithCustomToString.fir.txt | 2 +- .../compiledJava/annotations/NestedEnumArgument.fir.txt | 2 +- .../compiledJava/annotations/NestedEnumInAnnotation.fir.txt | 2 +- .../compiledJava/enum/EnumWithSpecializedEntry.fir.txt | 2 +- .../testData/loadJava/compiledJava/enum/JavaEnum.fir.txt | 2 +- compiler/testData/loadJava/compiledJava/static/Enum.fir.txt | 2 +- .../compiledJava/static/StaticMembersInEnum.fir.txt | 2 +- .../kotlin/lombok/k2/generators/BuilderGenerator.kt | 1 - 14 files changed, 13 insertions(+), 17 deletions(-) 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 46fb8a82742..c0c5a1521fa 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 @@ -480,7 +480,6 @@ abstract class FirJavaFacade( Modality.FINAL, EffectiveVisibility.Public ) - visibility = Visibilities.Public isPrimary = true returnTypeRef = classType.toFirResolvedTypeRef() dispatchReceiverType = null @@ -662,7 +661,6 @@ abstract class FirJavaFacade( isInner = isThisInner hasStableParameterNames = false } - this.visibility = visibility // TODO get rid of dependency on PSI KT-63046 isPrimary = javaConstructor == null || source?.psi.let { it is PsiMethod && JavaPsiRecordUtil.isCanonicalConstructor(it) } returnTypeRef = buildResolvedTypeRef { @@ -698,12 +696,12 @@ abstract class FirJavaFacade( this.moduleData = moduleData isFromSource = javaClass.isFromSource symbol = FirConstructorSymbol(constructorId) - status = FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL, EffectiveVisibility.Public) + val visibility = if (classKind == ClassKind.ENUM_CLASS) Visibilities.Private else Visibilities.Public + status = FirResolvedDeclarationStatusImpl(visibility, Modality.FINAL, EffectiveVisibility.Public) returnTypeRef = buildResolvedTypeRef { type = ownerClassBuilder.buildSelfTypeRef() } valueParametersForAnnotationConstructor?.forEach { _, firValueParameter -> valueParameters += firValueParameter } - visibility = if (classKind == ClassKind.ENUM_CLASS) Visibilities.Private else Visibilities.Public isInner = false isPrimary = true annotationBuilder = { emptyList() } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt index 48691c53b69..56b1d30f4a3 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt @@ -172,7 +172,6 @@ class FirJavaConstructor @FirImplementationDetail constructor( @FirBuilderDsl class FirJavaConstructorBuilder : FirConstructorBuilder() { - lateinit var visibility: Visibility var isInner: Boolean by Delegates.notNull() var isPrimary: Boolean by Delegates.notNull() var isFromSource: Boolean by Delegates.notNull() diff --git a/compiler/testData/diagnostics/tests/enum/inheritanceFromEnum.fir.kt b/compiler/testData/diagnostics/tests/enum/inheritanceFromEnum.fir.kt index 68b3a079aa7..7f7a0cfcb3e 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 fd9e0c0f8d3..32895524cf5 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,6 @@ 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:public <> () returnType:.JEnum [primary] + 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 8ad01f21a4c..a4a7d84a193 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/AnnotatedEnumEntry.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/AnnotatedEnumEntry.fir.txt @@ -11,7 +11,7 @@ public final enum class AnnotatedEnumEntry : R|kotlin/Enum| public get(): R|kotlin/enums/EnumEntries| - public constructor(): R|test/AnnotatedEnumEntry| + 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 0fef819947b..1515d3bf81d 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/CustomAnnotation.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/CustomAnnotation.fir.txt @@ -14,7 +14,7 @@ public abstract interface CustomAnnotation : R|kotlin/Any| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - public constructor(): R|test/CustomAnnotation.MyEnum| + private constructor(): R|test/CustomAnnotation.MyEnum| } @R|test/CustomAnnotation.MyAnnotation|(value = R|test/CustomAnnotation.MyEnum.ONE|) public open class MyTest : R|kotlin/Any| { diff --git a/compiler/testData/loadJava/compiledJava/annotations/EnumArgumentWithCustomToString.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/EnumArgumentWithCustomToString.fir.txt index daff8bdec8f..e8be39507eb 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/EnumArgumentWithCustomToString.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/EnumArgumentWithCustomToString.fir.txt @@ -14,7 +14,7 @@ public open class EnumArgumentWithCustomToString : R|kotlin/Any| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - public constructor(): R|test/EnumArgumentWithCustomToString.E| + private constructor(): R|test/EnumArgumentWithCustomToString.E| } public final annotation class EnumAnno : R|kotlin/Annotation| { diff --git a/compiler/testData/loadJava/compiledJava/annotations/NestedEnumArgument.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/NestedEnumArgument.fir.txt index 02de15d4627..a61477afccb 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/NestedEnumArgument.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/NestedEnumArgument.fir.txt @@ -18,7 +18,7 @@ public open class NestedEnumArgument : R|kotlin/Any| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - public constructor(): R|test/NestedEnumArgument.E| + 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 d90e2e41f42..a5d65fba28c 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/NestedEnumInAnnotation.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/NestedEnumInAnnotation.fir.txt @@ -13,7 +13,7 @@ public final annotation class Api : R|kotlin/Annotation| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - public constructor(): R|test/Api.Status| + private constructor(): R|test/Api.Status| } } diff --git a/compiler/testData/loadJava/compiledJava/enum/EnumWithSpecializedEntry.fir.txt b/compiler/testData/loadJava/compiledJava/enum/EnumWithSpecializedEntry.fir.txt index 1b9dc78ad5e..8e700ab5a0a 100644 --- a/compiler/testData/loadJava/compiledJava/enum/EnumWithSpecializedEntry.fir.txt +++ b/compiler/testData/loadJava/compiledJava/enum/EnumWithSpecializedEntry.fir.txt @@ -10,7 +10,7 @@ public final enum class EnumWithSpecializedEntry : R|kotlin/Enum| public get(): R|kotlin/enums/EnumEntries| - public constructor(): R|test/EnumWithSpecializedEntry| + 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 787aa9ea669..b623f44b925 100644 --- a/compiler/testData/loadJava/compiledJava/enum/JavaEnum.fir.txt +++ b/compiler/testData/loadJava/compiledJava/enum/JavaEnum.fir.txt @@ -10,6 +10,6 @@ public final enum class JavaEnum : R|kotlin/Enum| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - public constructor(): R|test/JavaEnum| + 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 895b8671ee2..de0158a1ff9 100644 --- a/compiler/testData/loadJava/compiledJava/static/Enum.fir.txt +++ b/compiler/testData/loadJava/compiledJava/static/Enum.fir.txt @@ -11,7 +11,7 @@ public final enum class Enum : R|kotlin/Enum| { public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| - public constructor(): R|test/Enum| + 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 2c1fa2c9230..3a4324e308e 100644 --- a/compiler/testData/loadJava/compiledJava/static/StaticMembersInEnum.fir.txt +++ b/compiler/testData/loadJava/compiledJava/static/StaticMembersInEnum.fir.txt @@ -19,6 +19,6 @@ public final enum class StaticMembersInEnum : R|kotlin/Enum| public get(): R|kotlin/enums/EnumEntries| - public constructor(): R|test/StaticMembersInEnum| + private constructor(): R|test/StaticMembersInEnum| } diff --git a/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/BuilderGenerator.kt b/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/BuilderGenerator.kt index 23b833999c7..983273db7b8 100644 --- a/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/BuilderGenerator.kt +++ b/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/BuilderGenerator.kt @@ -348,7 +348,6 @@ fun FirClassSymbol<*>.createDefaultJavaConstructor( isOverride = false isInner = this@buildJavaConstructor.isInner } - this.visibility = visibility isPrimary = false returnTypeRef = buildResolvedTypeRef { type = outerClassSymbol.defaultType()