KT-11811 There is no intention "Make protected" for a val declared in parameters of constructor

#KT-11811 Fixed
This commit is contained in:
Valentin Kipyatkov
2016-04-07 12:52:41 +03:00
parent a9fe999e0e
commit 6a65442095
6 changed files with 22 additions and 4 deletions
@@ -130,11 +130,12 @@ open class ChangeVisibilityModifierIntention protected constructor(
}
private fun canBeProtected(declaration: KtDeclaration): Boolean {
var parent = declaration.parent
if (parent is KtClassBody) {
parent = parent.parent
val parent = declaration.parent
return when (parent) {
is KtClassBody -> parent.parent is KtClass
is KtParameterList -> parent.parent is KtPrimaryConstructor
else -> false
}
return parent is KtClass
}
}
@@ -0,0 +1 @@
abstract class C(<caret>val p: Int)
@@ -0,0 +1 @@
abstract class C(<caret>protected val p: Int)
@@ -0,0 +1,2 @@
// IS_APPLICABLE: false
abstract class C(<caret>p: Int)
@@ -1,6 +1,7 @@
// "Remove 'val' from parameter" "false"
// ACTION: Make internal
// ACTION: Make private
// ACTION: Make protected
// ACTION: Create test
class C(<caret>val x: String) {
}
@@ -2528,12 +2528,24 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
doTest(fileName);
}
@TestMetadata("constructorParameter.kt")
public void testConstructorParameter() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/changeVisibility/protected/constructorParameter.kt");
doTest(fileName);
}
@TestMetadata("noModifier.kt")
public void testNoModifier() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/changeVisibility/protected/noModifier.kt");
doTest(fileName);
}
@TestMetadata("notForNonValParameter.kt")
public void testNotForNonValParameter() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/changeVisibility/protected/notForNonValParameter.kt");
doTest(fileName);
}
@TestMetadata("notForObjectMember.kt")
public void testNotForObjectMember() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/changeVisibility/protected/notForObjectMember.kt");