From 258e3f92251410cc40580531e683bc5c9bc5e0d2 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 28 Jul 2022 11:35:55 +0300 Subject: [PATCH] [AA LC] Fix visibility of fields for const vals --- .../classes/symbol/classes/SymbolLightClass.kt | 3 ++- .../lightClasses/object/SimpleObject.fir.java | 6 +++--- .../asJava/ultraLightClasses/objects.fir.java | 18 +++++++++--------- .../ultraLightClasses/properties.fir.java | 12 ++++++------ 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClass.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClass.kt index 35f8fef72bd..1ffd1ac0a78 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClass.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClass.kt @@ -225,9 +225,10 @@ internal open class SymbolLightClass( fun addPropertyBackingField(propertySymbol: KtPropertySymbol) { val isJvmField = propertySymbol.hasJvmFieldAnnotation() val isLateInit = (propertySymbol as? KtKotlinPropertySymbol)?.isLateInit == true + val isConst = (propertySymbol as? KtKotlinPropertySymbol)?.isConst == true val forceStatic = classOrObjectSymbol.isObject - val takePropertyVisibility = !isCompanionObject && (isLateInit || isJvmField) + val takePropertyVisibility = !isCompanionObject && (isLateInit || isJvmField || isConst) createField( declaration = propertySymbol, diff --git a/compiler/testData/asJava/lightClasses/object/SimpleObject.fir.java b/compiler/testData/asJava/lightClasses/object/SimpleObject.fir.java index 84fee3eb321..61d8c601e9b 100644 --- a/compiler/testData/asJava/lightClasses/object/SimpleObject.fir.java +++ b/compiler/testData/asJava/lightClasses/object/SimpleObject.fir.java @@ -1,16 +1,16 @@ public final class A /* pack.A*/ { @org.jetbrains.annotations.NotNull() - private static final java.lang.String cv = "A" /* initializer type: java.lang.String */; + private static java.lang.String v; @org.jetbrains.annotations.NotNull() - private static java.lang.String v; + public static final java.lang.String cv = "A" /* initializer type: java.lang.String */; @org.jetbrains.annotations.NotNull() public static final pack.A INSTANCE; private static final int c; - private static final int cc = 1 /* initializer type: int */; + public static final int cc = 1 /* initializer type: int */; @org.jetbrains.annotations.NotNull() public final java.lang.String getV();// getV() diff --git a/compiler/testData/asJava/ultraLightClasses/objects.fir.java b/compiler/testData/asJava/ultraLightClasses/objects.fir.java index 597f9053399..6cb49ef7fcc 100644 --- a/compiler/testData/asJava/ultraLightClasses/objects.fir.java +++ b/compiler/testData/asJava/ultraLightClasses/objects.fir.java @@ -116,23 +116,23 @@ public final class Obj /* Obj*/ implements java.lang.Runnable { } public final class ConstContainer /* ConstContainer*/ { - @org.jetbrains.annotations.NotNull() - private static final java.lang.String str = "one" /* initializer type: java.lang.String */; - @org.jetbrains.annotations.NotNull() public static final ConstContainer INSTANCE; - private static final double complexFloat = 5.118281745910645 /* initializer type: double */; + @org.jetbrains.annotations.NotNull() + public static final java.lang.String str = "one" /* initializer type: java.lang.String */; - private static final double e = 2.7182818284 /* initializer type: double */; + public static final double complexFloat = 5.118281745910645 /* initializer type: double */; - private static final float eFloat = 2.7182817f /* initializer type: float */; + public static final double e = 2.7182818284 /* initializer type: double */; - private static final int one = 1 /* initializer type: int */; + public static final float eFloat = 2.7182817f /* initializer type: float */; - private static final long complexLong = 2L /* initializer type: long */; + public static final int one = 1 /* initializer type: int */; - private static final long oneLong = 1L /* initializer type: long */; + public static final long complexLong = 2L /* initializer type: long */; + + public static final long oneLong = 1L /* initializer type: long */; private ConstContainer();// .ctor() diff --git a/compiler/testData/asJava/ultraLightClasses/properties.fir.java b/compiler/testData/asJava/ultraLightClasses/properties.fir.java index 581cd254b65..38a80e14ef4 100644 --- a/compiler/testData/asJava/ultraLightClasses/properties.fir.java +++ b/compiler/testData/asJava/ultraLightClasses/properties.fir.java @@ -8,12 +8,6 @@ public final class Foo /* Foo*/ { @org.jetbrains.annotations.NotNull() private final java.lang.Object arrayConst; - @org.jetbrains.annotations.NotNull() - private final java.lang.String CONSTANT_WITH_ESCAPES = "A\tB\nC\rD'E\"F\\G$H" /* initializer type: java.lang.String */; - - @org.jetbrains.annotations.NotNull() - private final java.lang.String SUBSYSTEM_DEPRECATED = "This subsystem is deprecated" /* initializer type: java.lang.String */; - @org.jetbrains.annotations.NotNull() private final kotlin.jvm.functions.Function1 sum; @@ -32,6 +26,12 @@ public final class Foo /* Foo*/ { @org.jetbrains.annotations.NotNull() private kotlin.Lazy lazyProp$delegate; + @org.jetbrains.annotations.NotNull() + public final java.lang.String CONSTANT_WITH_ESCAPES = "A\tB\nC\rD'E\"F\\G$H" /* initializer type: java.lang.String */; + + @org.jetbrains.annotations.NotNull() + public final java.lang.String SUBSYSTEM_DEPRECATED = "This subsystem is deprecated" /* initializer type: java.lang.String */; + @org.jetbrains.annotations.NotNull() public static final Foo.Companion Companion;