diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVisibilityFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVisibilityFix.kt index 8317a1d8cf7..1d2a5f61657 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVisibilityFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVisibilityFix.kt @@ -23,6 +23,7 @@ import com.intellij.openapi.project.Project import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.idea.core.canBeInternal import org.jetbrains.kotlin.idea.core.canBePrivate import org.jetbrains.kotlin.idea.core.canBeProtected import org.jetbrains.kotlin.idea.core.setVisibility @@ -65,7 +66,13 @@ open class ChangeVisibilityFix( } protected class ChangeToInternalFix(element: KtModifierListOwner, elementName: String) : - ChangeVisibilityFix(element, elementName, KtTokens.INTERNAL_KEYWORD) + ChangeVisibilityFix(element, elementName, KtTokens.INTERNAL_KEYWORD) { + + override fun isAvailable(project: Project, editor: Editor?, file: KtFile): Boolean { + val element = element ?: return false + return element.canBeInternal() + } + } protected class ChangeToPrivateFix(element: KtModifierListOwner, elementName: String) : ChangeVisibilityFix(element, elementName, KtTokens.PRIVATE_KEYWORD), HighPriorityAction { diff --git a/idea/testData/quickfix/decreaseVisibility/exposedTypeInAnnotation.kt b/idea/testData/quickfix/decreaseVisibility/exposedTypeInAnnotation.kt new file mode 100644 index 00000000000..c039e031a1e --- /dev/null +++ b/idea/testData/quickfix/decreaseVisibility/exposedTypeInAnnotation.kt @@ -0,0 +1,7 @@ +// "Make '' internal" "false" +// DISABLE-ERRORS +// ACTION: Make 'My' public + +internal class My + +annotation class Your(val x: My) \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index a2f1c63f492..ca07c38e46a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -5240,6 +5240,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { runTest("idea/testData/quickfix/decreaseVisibility/exposedSuperInterfacePrivate.kt"); } + @TestMetadata("exposedTypeInAnnotation.kt") + public void testExposedTypeInAnnotation() throws Exception { + runTest("idea/testData/quickfix/decreaseVisibility/exposedTypeInAnnotation.kt"); + } + @TestMetadata("exposedTypeParameterBound.kt") public void testExposedTypeParameterBound() throws Exception { runTest("idea/testData/quickfix/decreaseVisibility/exposedTypeParameterBound.kt");