Handle modifiers correctly in "val to object" #KT-18919 Fixed

GitOrigin-RevId: 1ea405bef2224e6e6c7a01c9aea37ae3cdc3805b
This commit is contained in:
Mikhail Glukhikh
2017-10-10 22:48:33 +03:00
committed by intellij-monorepo-bot
parent 51b2b6dfb1
commit 2e14b29bfd
4 changed files with 19 additions and 2 deletions
@@ -41,14 +41,13 @@ class ValToObjectIntention : SelfTargetingIntention<KtProperty>(KtProperty::clas
}
override fun applyTo(element: KtProperty, editor: Editor?) {
val modifier = element.visibilityModifier()
val name = element.name ?: return
val objectLiteral = element.initializer as? KtObjectLiteralExpression ?: return
val declaration = objectLiteral.objectDeclaration
val superTypeList = declaration.getSuperTypeList()
val body = declaration.getBody() ?: return
val prefix = modifier?.text?.plus(" ") ?: ""
val prefix = element.modifierList?.text?.plus(" ") ?: ""
val superTypesText = superTypeList?.text?.plus(" ") ?: ""
val replacementText = "${prefix}object $name: $superTypesText${body.text}"
@@ -16214,6 +16214,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
doTest(fileName);
}
@TestMetadata("expected.kt")
public void testExpected() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/valToObject/expected.kt");
doTest(fileName);
}
@TestMetadata("getter.kt")
public void testGetter() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/valToObject/getter.kt");
@@ -0,0 +1,6 @@
// SKIP_ERRORS_BEFORE
// SKIP_ERRORS_AFTER
expect interface EmptyInterface
expect val <caret>ofInterface = object : EmptyInterface{}
@@ -0,0 +1,6 @@
// SKIP_ERRORS_BEFORE
// SKIP_ERRORS_AFTER
expect interface EmptyInterface
expect object ofInterface : EmptyInterface {}