diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAnnotationsMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAnnotationsMethod.kt index 81f1b4703c1..3945702148f 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAnnotationsMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAnnotationsMethod.kt @@ -19,7 +19,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.light.classes.symbol.* import org.jetbrains.kotlin.light.classes.symbol.annotations.* import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase -import org.jetbrains.kotlin.light.classes.symbol.modifierLists.InitializedModifiersBox +import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterForReceiver import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterList @@ -80,7 +80,15 @@ internal class SymbolLightAnnotationsMethod private constructor( return@lazyPub containingPropertySymbolPointer.withSymbol(ktModule) { propertySymbol -> SymbolLightMemberModifierList( containingDeclaration = this@SymbolLightAnnotationsMethod, - modifiersBox = InitializedModifiersBox(PsiModifier.PUBLIC, PsiModifier.STATIC), + modifiersBox = GranularModifiersBox(mapOf(PsiModifier.STATIC to true)) { modifier -> + when (modifier) { + in GranularModifiersBox.VISIBILITY_MODIFIERS -> GranularModifiersBox.computeVisibilityForMember( + ktModule, + containingPropertySymbolPointer, + ) + else -> null + } + }, annotationsBox = GranularAnnotationsBox( annotationsProvider = SymbolAnnotationsProvider( ktModule = ktModule, diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.fir.java index 8f741927c60..589a3d3f67b 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.fir.java @@ -35,6 +35,24 @@ public static final class Companion /* C.Companion*/ { public final int getY();// getY() } +public class O /* O*/ { + private final int protectedProperty = 1 /* initializer type: int */; + + @Anno(p = "private") + @java.lang.Deprecated() + private static void getPrivateProperty$annotations();// getPrivateProperty$annotations() + + @Anno(p = "protected") + @java.lang.Deprecated() + protected static void getProtectedProperty$annotations();// getProtectedProperty$annotations() + + private final int getPrivateProperty();// getPrivateProperty() + + protected final int getProtectedProperty();// getProtectedProperty() + + public O();// .ctor() +} + public final class PropertyAnnotationsKt /* PropertyAnnotationsKt*/ { @kotlin.jvm.Transient() @kotlin.jvm.Volatile() diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.java index c4a61961f90..5ebeba3a654 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.java @@ -26,6 +26,16 @@ public static final class Companion /* C.Companion*/ { public final int getY();// getY() } +public class O /* O*/ { + private final int protectedProperty; + + private final int getPrivateProperty();// getPrivateProperty() + + protected final int getProtectedProperty();// getProtectedProperty() + + public O();// .ctor() +} + public final class PropertyAnnotationsKt /* PropertyAnnotationsKt*/ { @kotlin.jvm.Transient() @kotlin.jvm.Volatile() diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.kt b/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.kt index 963bcb645e4..081d01f4d58 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.kt +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.kt @@ -29,4 +29,12 @@ val @receiver:Anno("receiver") List.extensionProperty: Int val nullable: String? = null @Anno("nonNullable") -val nonNullable: String = "" \ No newline at end of file +val nonNullable: String = "" + +open class O { + @Anno("private") + private val privateProperty: Int get() = 1 + + @Anno("protected") + protected val protectedProperty = 1 +} \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.lib.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.lib.java index 770d5653273..2600bb131bc 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.lib.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/propertyAnnotations.lib.java @@ -26,6 +26,16 @@ public static final class Companion /* C.Companion*/ { public final int getY();// getY() } +public class O /* O*/ { + private final int protectedProperty; + + private final int getPrivateProperty();// getPrivateProperty() + + protected final int getProtectedProperty();// getProtectedProperty() + + public O();// .ctor() +} + public final class PropertyAnnotationsKt /* PropertyAnnotationsKt*/ { @org.jetbrains.annotations.NotNull() private static final java.lang.String nonNullable;