From 27e1462b006915ce375540467f5ff05bb3a988c0 Mon Sep 17 00:00:00 2001 From: shiraji Date: Sat, 11 Mar 2017 00:55:37 +0900 Subject: [PATCH] Apply quick-fix "Make visible" for INVISIBLE_FAKE #KT-16131 Fixed --- .../idea/quickfix/MakeVisibleFactory.kt | 4 +-- .../invisibleFake/methodToInternal.kt | 12 +++++++ .../invisibleFake/methodToInternal.kt.after | 12 +++++++ .../invisibleFake/methodToPublic.kt | 12 +++++++ .../invisibleFake/methodToPublic.kt.after | 12 +++++++ .../invisibleFake/propertyToInternal.kt | 11 +++++++ .../invisibleFake/propertyToInternal.kt.after | 11 +++++++ .../invisibleFake/propertyToPublic.kt | 11 +++++++ .../invisibleFake/propertyToPublic.kt.after | 11 +++++++ .../QuickFixMultiFileTestGenerated.java | 1 + .../idea/quickfix/QuickFixTestGenerated.java | 33 +++++++++++++++++++ 11 files changed, 128 insertions(+), 2 deletions(-) create mode 100644 idea/testData/quickfix/increaseVisibility/invisibleFake/methodToInternal.kt create mode 100644 idea/testData/quickfix/increaseVisibility/invisibleFake/methodToInternal.kt.after create mode 100644 idea/testData/quickfix/increaseVisibility/invisibleFake/methodToPublic.kt create mode 100644 idea/testData/quickfix/increaseVisibility/invisibleFake/methodToPublic.kt.after create mode 100644 idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToInternal.kt create mode 100644 idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToInternal.kt.after create mode 100644 idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToPublic.kt create mode 100644 idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToPublic.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/MakeVisibleFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/MakeVisibleFactory.kt index bbab3e04af1..48d2fbfaa7a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/MakeVisibleFactory.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/MakeVisibleFactory.kt @@ -40,11 +40,11 @@ object MakeVisibleFactory : KotlinIntentionActionsFactory() { @Suppress("UNCHECKED_CAST") val factory = diagnostic.factory as DiagnosticFactory3<*, DeclarationDescriptor, *, DeclarationDescriptor> val descriptor = factory.cast(diagnostic).c as? DeclarationDescriptorWithVisibility ?: return emptyList() - val declaration = DescriptorToSourceUtils.getSourceFromDescriptor(descriptor) as? KtModifierListOwner ?: return emptyList() + val declaration = DescriptorToSourceUtils.descriptorToDeclaration(descriptor) as? KtModifierListOwner ?: return emptyList() val module = DescriptorUtils.getContainingModule(descriptor) val targetVisibilities = when (descriptor.visibility) { - PRIVATE -> if (module != usageModule) listOf(PUBLIC) else listOf(PUBLIC, INTERNAL) + PRIVATE, INVISIBLE_FAKE -> if (module != usageModule) listOf(PUBLIC) else listOf(PUBLIC, INTERNAL) else -> listOf(PUBLIC) } diff --git a/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToInternal.kt b/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToInternal.kt new file mode 100644 index 00000000000..556bc694e39 --- /dev/null +++ b/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToInternal.kt @@ -0,0 +1,12 @@ +// "Make 'doSth' internal" "true" + +open class A { + private fun doSth() { + } +} + +class B : A() { + fun bar() { + doSth() + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToInternal.kt.after b/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToInternal.kt.after new file mode 100644 index 00000000000..4b25215962e --- /dev/null +++ b/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToInternal.kt.after @@ -0,0 +1,12 @@ +// "Make 'doSth' internal" "true" + +open class A { + internal fun doSth() { + } +} + +class B : A() { + fun bar() { + doSth() + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToPublic.kt b/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToPublic.kt new file mode 100644 index 00000000000..98aae4ae901 --- /dev/null +++ b/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToPublic.kt @@ -0,0 +1,12 @@ +// "Make 'doSth' public" "true" + +open class A { + private fun doSth() { + } +} + +class B : A() { + fun bar() { + doSth() + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToPublic.kt.after b/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToPublic.kt.after new file mode 100644 index 00000000000..7480fb90ed1 --- /dev/null +++ b/idea/testData/quickfix/increaseVisibility/invisibleFake/methodToPublic.kt.after @@ -0,0 +1,12 @@ +// "Make 'doSth' public" "true" + +open class A { + fun doSth() { + } +} + +class B : A() { + fun bar() { + doSth() + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToInternal.kt b/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToInternal.kt new file mode 100644 index 00000000000..d2e7b11b6da --- /dev/null +++ b/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToInternal.kt @@ -0,0 +1,11 @@ +// "Make 'foo' internal" "true" + +open class A { + private val foo = 1 +} + +class B : A() { + fun bar() { + foo + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToInternal.kt.after b/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToInternal.kt.after new file mode 100644 index 00000000000..3f59cb46b46 --- /dev/null +++ b/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToInternal.kt.after @@ -0,0 +1,11 @@ +// "Make 'foo' internal" "true" + +open class A { + internal val foo = 1 +} + +class B : A() { + fun bar() { + foo + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToPublic.kt b/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToPublic.kt new file mode 100644 index 00000000000..d1604595ffb --- /dev/null +++ b/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToPublic.kt @@ -0,0 +1,11 @@ +// "Make 'foo' public" "true" + +open class A { + private val foo = 1 +} + +class B : A() { + fun bar() { + foo + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToPublic.kt.after b/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToPublic.kt.after new file mode 100644 index 00000000000..bec6a4a5f6a --- /dev/null +++ b/idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToPublic.kt.after @@ -0,0 +1,11 @@ +// "Make 'foo' public" "true" + +open class A { + val foo = 1 +} + +class B : A() { + fun bar() { + foo + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java index b4c8cbc98e6..d7e342af8d0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java @@ -1663,6 +1663,7 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/increaseVisibility/privateTopLevelVarWithSetterInFile.before.Main.kt"); doTestWithExtraFile(fileName); } + } @TestMetadata("idea/testData/quickfix/migration") diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 1cf895106d4..af220b1f545 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -5815,6 +5815,39 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/increaseVisibility/protectedMemberToPublicSingleFile.kt"); doTest(fileName); } + + @TestMetadata("idea/testData/quickfix/increaseVisibility/invisibleFake") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class InvisibleFake extends AbstractQuickFixTest { + public void testAllFilesPresentInInvisibleFake() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/increaseVisibility/invisibleFake"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("methodToInternal.kt") + public void testMethodToInternal() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/increaseVisibility/invisibleFake/methodToInternal.kt"); + doTest(fileName); + } + + @TestMetadata("methodToPublic.kt") + public void testMethodToPublic() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/increaseVisibility/invisibleFake/methodToPublic.kt"); + doTest(fileName); + } + + @TestMetadata("propertyToInternal.kt") + public void testPropertyToInternal() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToInternal.kt"); + doTest(fileName); + } + + @TestMetadata("propertyToPublic.kt") + public void testPropertyToPublic() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/increaseVisibility/invisibleFake/propertyToPublic.kt"); + doTest(fileName); + } + } } @TestMetadata("idea/testData/quickfix/initializeWithConstructorParameter")