Use 'canBeInternal' in ChangeVisibilityFix (related to KT-27138)

This commit is contained in:
Mikhail Glukhikh
2018-10-09 15:49:03 +03:00
parent c65e246e02
commit 7488056249
3 changed files with 20 additions and 1 deletions
@@ -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 {
@@ -0,0 +1,7 @@
// "Make '<init>' internal" "false"
// DISABLE-ERRORS
// ACTION: Make 'My' public
internal class My
annotation class Your(val x: <caret>My)
@@ -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");