From 6f94f45409986065f2d6febacdf7802078ae6e86 Mon Sep 17 00:00:00 2001 From: shiraji Date: Fri, 28 Apr 2017 05:17:46 +0300 Subject: [PATCH] Disable "Make constructor internal" for annotations #KT-17599 Fixed --- .../idea/intentions/ChangeVisibilityModifierIntention.kt | 7 ++++++- .../internal/notForAnnotationClassPrimaryConstructor.kt | 2 ++ .../kotlin/idea/intentions/IntentionTestGenerated.java | 6 ++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 idea/testData/intentions/changeVisibility/internal/notForAnnotationClassPrimaryConstructor.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ChangeVisibilityModifierIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ChangeVisibilityModifierIntention.kt index 799c3811f37..afb9fdcb004 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ChangeVisibilityModifierIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ChangeVisibilityModifierIntention.kt @@ -119,5 +119,10 @@ open class ChangeVisibilityModifierIntention protected constructor( } } - class Internal : ChangeVisibilityModifierIntention(KtTokens.INTERNAL_KEYWORD) + class Internal : ChangeVisibilityModifierIntention(KtTokens.INTERNAL_KEYWORD) { + override fun applicabilityRange(element: KtDeclaration): TextRange? { + if (isAnnotationClassPrimaryConstructor(element)) return null + return super.applicabilityRange(element) + } + } } diff --git a/idea/testData/intentions/changeVisibility/internal/notForAnnotationClassPrimaryConstructor.kt b/idea/testData/intentions/changeVisibility/internal/notForAnnotationClassPrimaryConstructor.kt new file mode 100644 index 00000000000..5880d690c49 --- /dev/null +++ b/idea/testData/intentions/changeVisibility/internal/notForAnnotationClassPrimaryConstructor.kt @@ -0,0 +1,2 @@ +// IS_APPLICABLE: false +annotation class C(val v: Int) \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 66b5e9e57ec..cfb5627fcf8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -2853,6 +2853,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/changeVisibility/internal"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true); } + @TestMetadata("notForAnnotationClassPrimaryConstructor.kt") + public void testNotForAnnotationClassPrimaryConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/changeVisibility/internal/notForAnnotationClassPrimaryConstructor.kt"); + doTest(fileName); + } + @TestMetadata("simple.kt") public void testSimple() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/changeVisibility/internal/simple.kt");