[SLC] fix visibility for lateinit properties from companion

^KTIJ-23519 Fixed
This commit is contained in:
Dmitrii Gridin
2022-12-01 13:34:31 +01:00
committed by Space Team
parent 7bfa900ce6
commit e2082fb0d7
6 changed files with 170 additions and 1 deletions
@@ -76,6 +76,7 @@ abstract class SymbolLightClassForNamedClassLike : SymbolLightClassForClassLike<
private val KtPropertySymbol.isConstOrJvmField: Boolean get() = isConst || hasJvmFieldAnnotation()
private val KtPropertySymbol.isConst: Boolean get() = (this as? KtKotlinPropertySymbol)?.isConst == true
private val KtPropertySymbol.isLateInit: Boolean get() = (this as? KtKotlinPropertySymbol)?.isLateInit == true
context(KtAnalysisSession)
protected fun addFieldsFromCompanionIfNeeded(
@@ -98,7 +99,7 @@ abstract class SymbolLightClassForNamedClassLike : SymbolLightClassForClassLike<
lightMemberOrigin = null,
isTopLevel = false,
forceStatic = true,
takePropertyVisibility = it.isConstOrJvmField,
takePropertyVisibility = it.isConstOrJvmField || it.isLateInit,
)
}
}
@@ -186,6 +186,12 @@ public class SymbolLightClassesLoadingForLibraryTestGenerated extends AbstractSy
runTest("compiler/testData/asJava/ultraLightClasses/jvmWildcardAnnotations.kt");
}
@Test
@TestMetadata("LateinitProperties.kt")
public void testLateinitProperties() throws Exception {
runTest("compiler/testData/asJava/ultraLightClasses/LateinitProperties.kt");
}
@Test
@TestMetadata("lateinitProperty.kt")
public void testLateinitProperty() throws Exception {
@@ -186,6 +186,12 @@ public class SymbolLightClassesLoadingForSourceTestGenerated extends AbstractSym
runTest("compiler/testData/asJava/ultraLightClasses/jvmWildcardAnnotations.kt");
}
@Test
@TestMetadata("LateinitProperties.kt")
public void testLateinitProperties() throws Exception {
runTest("compiler/testData/asJava/ultraLightClasses/LateinitProperties.kt");
}
@Test
@TestMetadata("lateinitProperty.kt")
public void testLateinitProperty() throws Exception {
@@ -0,0 +1,90 @@
public final class KotlinClass /* KotlinClass*/ {
@kotlin.jvm.JvmStatic()
public static Custom companionLateinitStaticVariable;
@org.jetbrains.annotations.NotNull()
public static final KotlinClass.Companion Companion;
public Custom classLateinitVariable;
public static Custom companionLateinitVariable;
@org.jetbrains.annotations.NotNull()
public final Custom getClassLateinitVariable();// getClassLateinitVariable()
@org.jetbrains.annotations.NotNull()
public static final Custom getCompanionLateinitStaticVariable();// getCompanionLateinitStaticVariable()
public KotlinClass();// .ctor()
public final void setClassLateinitVariable(@org.jetbrains.annotations.NotNull() Custom);// setClassLateinitVariable(Custom)
public static final void setCompanionLateinitStaticVariable(@org.jetbrains.annotations.NotNull() Custom);// setCompanionLateinitStaticVariable(Custom)
class Companion ...
}
public static final class Companion /* KotlinClass.Companion*/ {
@org.jetbrains.annotations.NotNull()
public final Custom getCompanionLateinitStaticVariable();// getCompanionLateinitStaticVariable()
@org.jetbrains.annotations.NotNull()
public final Custom getCompanionLateinitVariable();// getCompanionLateinitVariable()
private Companion();// .ctor()
public final void setCompanionLateinitStaticVariable(@org.jetbrains.annotations.NotNull() Custom);// setCompanionLateinitStaticVariable(Custom)
public final void setCompanionLateinitVariable(@org.jetbrains.annotations.NotNull() Custom);// setCompanionLateinitVariable(Custom)
}
public abstract class AbstractKotlinClass /* AbstractKotlinClass*/ {
@kotlin.jvm.JvmStatic()
public static Custom companionLateinitStaticVariable;
@org.jetbrains.annotations.NotNull()
public static final AbstractKotlinClass.Companion Companion;
public Custom classLateinitVariable;
public static Custom companionLateinitVariable;
@org.jetbrains.annotations.NotNull()
public final Custom getClassLateinitVariable();// getClassLateinitVariable()
@org.jetbrains.annotations.NotNull()
public static final Custom getCompanionLateinitStaticVariable();// getCompanionLateinitStaticVariable()
public AbstractKotlinClass();// .ctor()
public final void setClassLateinitVariable(@org.jetbrains.annotations.NotNull() Custom);// setClassLateinitVariable(Custom)
public static final void setCompanionLateinitStaticVariable(@org.jetbrains.annotations.NotNull() Custom);// setCompanionLateinitStaticVariable(Custom)
class Companion ...
}
public static final class Companion /* AbstractKotlinClass.Companion*/ {
@org.jetbrains.annotations.NotNull()
public final Custom getCompanionLateinitStaticVariable();// getCompanionLateinitStaticVariable()
@org.jetbrains.annotations.NotNull()
public final Custom getCompanionLateinitVariable();// getCompanionLateinitVariable()
private Companion();// .ctor()
public final void setCompanionLateinitStaticVariable(@org.jetbrains.annotations.NotNull() Custom);// setCompanionLateinitStaticVariable(Custom)
public final void setCompanionLateinitVariable(@org.jetbrains.annotations.NotNull() Custom);// setCompanionLateinitVariable(Custom)
}
public final class Custom /* Custom*/ {
public Custom();// .ctor()
}
@@ -0,0 +1,25 @@
class KotlinClass {
lateinit var classLateinitVariable: Custom
companion object {
lateinit var companionLateinitVariable: Custom
@JvmStatic
lateinit var companionLateinitStaticVariable: Custom
}
}
abstract class AbstractKotlinClass {
lateinit var classLateinitVariable: Custom
companion object {
lateinit var companionLateinitVariable: Custom
@JvmStatic
lateinit var companionLateinitStaticVariable: Custom
}
}
lateinit var topLevelLateinit: Custom
class Custom
@@ -0,0 +1,41 @@
public final class KotlinClass /* KotlinClass*/ {
@org.jetbrains.annotations.NotNull()
public static final KotlinClass.Companion Companion;
public Custom classLateinitVariable;
public static Custom companionLateinitStaticVariable;
public static Custom companionLateinitVariable;
@org.jetbrains.annotations.NotNull()
public final Custom getClassLateinitVariable();// getClassLateinitVariable()
@org.jetbrains.annotations.NotNull()
public static final Custom getCompanionLateinitStaticVariable();// getCompanionLateinitStaticVariable()
public KotlinClass();// .ctor()
public final void setClassLateinitVariable(@org.jetbrains.annotations.NotNull() Custom);// setClassLateinitVariable(Custom)
public static final void setCompanionLateinitStaticVariable(@org.jetbrains.annotations.NotNull() Custom);// setCompanionLateinitStaticVariable(Custom)
class Companion ...
}
public static final class Companion /* KotlinClass.Companion*/ {
@org.jetbrains.annotations.NotNull()
public final Custom getCompanionLateinitStaticVariable();// getCompanionLateinitStaticVariable()
@org.jetbrains.annotations.NotNull()
public final Custom getCompanionLateinitVariable();// getCompanionLateinitVariable()
private Companion();// .ctor()
public final void setCompanionLateinitStaticVariable(@org.jetbrains.annotations.NotNull() Custom);// setCompanionLateinitStaticVariable(Custom)
public final void setCompanionLateinitVariable(@org.jetbrains.annotations.NotNull() Custom);// setCompanionLateinitVariable(Custom)
}