From 1ff51356b976a57220544fae34fb08689138df71 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 28 Jul 2022 11:32:07 +0300 Subject: [PATCH] [AA LC] Fix visibility of fields from companion objects ^KTIJ-22541 --- .../SymbolLightClassForClassOrObject.kt | 7 +++++-- .../ClassObjectField.fir.java | 20 ------------------- .../asJava/ultraLightClasses/objects.fir.java | 14 ++++++------- .../ultraLightClasses/properties.fir.java | 12 +++++------ 4 files changed, 18 insertions(+), 35 deletions(-) delete mode 100644 compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.fir.java diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassOrObject.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassOrObject.kt index 5e2ada33305..567a8f84e73 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassOrObject.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassOrObject.kt @@ -135,7 +135,7 @@ internal abstract class SymbolLightClassForClassOrObject( getDeclaredMemberScope().getCallableSymbols() .filterIsInstance() .applyIf(isInterface) { - filter { it.hasJvmFieldAnnotation() || it.isConst } + filter { it.isConstOrJvmField } } .mapTo(result) { SymbolLightFieldForProperty( @@ -145,12 +145,15 @@ internal abstract class SymbolLightClassForClassOrObject( lightMemberOrigin = null, isTopLevel = false, forceStatic = true, - takePropertyVisibility = true + takePropertyVisibility = it.isConstOrJvmField ) } } } + private val KtPropertySymbol.isConstOrJvmField: Boolean + get() = isConst || hasJvmFieldAnnotation() + private val KtPropertySymbol.isConst: Boolean get() = (this as? KtKotlinPropertySymbol)?.isConst == true diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.fir.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.fir.java deleted file mode 100644 index defa422abbb..00000000000 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.fir.java +++ /dev/null @@ -1,20 +0,0 @@ -public final class ClassObjectField /* ClassObjectField*/ { - @org.jetbrains.annotations.NotNull() - public static final ClassObjectField.Companion Companion; - - @org.jetbrains.annotations.Nullable() - private static final java.lang.String y; - - @org.jetbrains.annotations.Nullable() - public static final java.lang.String x; - - public ClassObjectField();// .ctor() - - -public static final class Companion /* ClassObjectField.Companion*/ { - @org.jetbrains.annotations.Nullable() - public final java.lang.String getX();// getX() - - private Companion();// .ctor() - -}} diff --git a/compiler/testData/asJava/ultraLightClasses/objects.fir.java b/compiler/testData/asJava/ultraLightClasses/objects.fir.java index 728a09900de..597f9053399 100644 --- a/compiler/testData/asJava/ultraLightClasses/objects.fir.java +++ b/compiler/testData/asJava/ultraLightClasses/objects.fir.java @@ -1,17 +1,17 @@ public final class C /* C*/ { @kotlin.jvm.JvmStatic() @org.jetbrains.annotations.NotNull() - public static java.lang.String x; + private static java.lang.String x; + + @org.jetbrains.annotations.NotNull() + private static java.lang.String c1; + + @org.jetbrains.annotations.NotNull() + private static java.lang.String c; @org.jetbrains.annotations.NotNull() public static final C.Companion Companion; - @org.jetbrains.annotations.NotNull() - public static java.lang.String c1; - - @org.jetbrains.annotations.NotNull() - public static java.lang.String c; - @kotlin.jvm.JvmStatic() public static final void foo();// foo() diff --git a/compiler/testData/asJava/ultraLightClasses/properties.fir.java b/compiler/testData/asJava/ultraLightClasses/properties.fir.java index f5a554d1c8a..581cd254b65 100644 --- a/compiler/testData/asJava/ultraLightClasses/properties.fir.java +++ b/compiler/testData/asJava/ultraLightClasses/properties.fir.java @@ -74,18 +74,18 @@ public final class Foo /* Foo*/ { private static final error.NonExistentClass contextBean; + private static final int f1; + + private static final int prop3; + + private static int prop7; + protected java.lang.String protectedLateinitVar; public error.NonExistentClass subject; public java.lang.String internalVarPrivateSet; - public static final int f1; - - public static final int prop3; - - public static int prop7; - @org.jetbrains.annotations.NotNull() protected final java.lang.String getProtectedLateinitVar();// getProtectedLateinitVar()