Convert Function to Property: Forbid for properties with both initializer and getter

#KT-23293 Fixed
This commit is contained in:
Alexey Sedunov
2018-03-16 17:11:00 +03:00
parent 43b4a496e3
commit 0a0043a851
3 changed files with 12 additions and 1 deletions
@@ -191,7 +191,7 @@ class ConvertPropertyToFunctionIntention : SelfTargetingIntention<KtProperty>(Kt
override fun isApplicableTo(element: KtProperty, caretOffset: Int): Boolean {
val identifier = element.nameIdentifier ?: return false
if (!identifier.textRange.containsOffset(caretOffset)) return false
return element.delegate == null && !element.isVar && !element.isLocal
return element.delegate == null && !element.isVar && !element.isLocal && (element.initializer == null || element.getter == null)
}
override fun applyTo(element: KtProperty, editor: Editor?) {
@@ -0,0 +1,5 @@
// IS_APPLICABLE: false
val <caret>foo = 1
get() {
return field
}
@@ -6147,6 +6147,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
doTest(fileName);
}
@TestMetadata("initializerWithGetter.kt")
public void testInitializerWithGetter() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertPropertyToFunction/initializerWithGetter.kt");
doTest(fileName);
}
@TestMetadata("javaUsageAsField.kt")
public void testJavaUsageAsField() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertPropertyToFunction/javaUsageAsField.kt");