From cb320bc0ac1d8352ec5655b557c15115cb14e82f Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 11 May 2015 19:07:02 +0300 Subject: [PATCH] Moved function --- .../jetbrains/kotlin/idea/intentions/Utils.kt | 25 +++++++++- .../intentions/UnfoldPropertyToIfIntention.kt | 2 +- .../UnfoldPropertyToWhenIntention.kt | 2 +- .../declarations/DeclarationUtils.kt | 48 ------------------- .../SplitPropertyDeclarationIntention.kt | 1 + 5 files changed, 27 insertions(+), 51 deletions(-) delete mode 100644 idea/src/org/jetbrains/kotlin/idea/intentions/declarations/DeclarationUtils.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/Utils.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/Utils.kt index 882d47d1871..0aa98376356 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/Utils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/Utils.kt @@ -70,4 +70,27 @@ fun JetCallableDeclaration.canRemoveTypeSpecificationByVisibility(): Boolean { val isOverride = getModifierList()?.hasModifier(JetTokens.OVERRIDE_KEYWORD) ?: false if (!isOverride && (descriptor as? DeclarationDescriptorWithVisibility)?.getVisibility()?.isPublicAPI() ?: false) return false return true -} \ No newline at end of file +} + +// returns assignment which replaces initializer +fun splitPropertyDeclaration(property: JetProperty): JetBinaryExpression { + val parent = property.getParent()!! + + val initializer = property.getInitializer()!! + + val explicitTypeToSet = if (property.getTypeReference() != null) null else initializer.analyze().getType(initializer) + + val psiFactory = JetPsiFactory(property) + var assignment = psiFactory.createExpressionByPattern("$0 = $1", property.getName()!!, initializer) + + assignment = parent.addAfter(assignment, property) as JetBinaryExpression + parent.addAfter(psiFactory.createNewLine(), property) + + property.setInitializer(null) + + if (explicitTypeToSet != null) { + property.setType(explicitTypeToSet) + } + + return assignment +} diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToIfIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToIfIntention.kt index 32fc1df8b9c..85000da7687 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToIfIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToIfIntention.kt @@ -20,7 +20,7 @@ import com.intellij.openapi.editor.Editor import com.intellij.openapi.util.TextRange import org.jetbrains.kotlin.idea.intentions.JetSelfTargetingRangeIntention import org.jetbrains.kotlin.idea.intentions.branchedTransformations.BranchedUnfoldingUtils -import org.jetbrains.kotlin.idea.intentions.declarations.splitPropertyDeclaration +import org.jetbrains.kotlin.idea.intentions.splitPropertyDeclaration import org.jetbrains.kotlin.psi.JetIfExpression import org.jetbrains.kotlin.psi.JetProperty diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToWhenIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToWhenIntention.kt index aefe34928f4..993db3ac1a8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToWhenIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToWhenIntention.kt @@ -20,7 +20,7 @@ import com.intellij.openapi.editor.Editor import com.intellij.openapi.util.TextRange import org.jetbrains.kotlin.idea.intentions.JetSelfTargetingRangeIntention import org.jetbrains.kotlin.idea.intentions.branchedTransformations.BranchedUnfoldingUtils -import org.jetbrains.kotlin.idea.intentions.declarations.splitPropertyDeclaration +import org.jetbrains.kotlin.idea.intentions.splitPropertyDeclaration import org.jetbrains.kotlin.psi.JetProperty import org.jetbrains.kotlin.psi.JetPsiUtil import org.jetbrains.kotlin.psi.JetWhenExpression diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/DeclarationUtils.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/DeclarationUtils.kt deleted file mode 100644 index 0532225b695..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/DeclarationUtils.kt +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.idea.intentions.declarations - -import com.intellij.psi.PsiDocumentManager -import org.jetbrains.kotlin.idea.caches.resolve.analyze -import org.jetbrains.kotlin.idea.intentions.setType -import org.jetbrains.kotlin.psi.JetBinaryExpression -import org.jetbrains.kotlin.psi.JetProperty -import org.jetbrains.kotlin.psi.JetPsiFactory -import org.jetbrains.kotlin.psi.createExpressionByPattern - -// returns assignment which replaces initializer -public fun splitPropertyDeclaration(property: JetProperty): JetBinaryExpression { - val parent = property.getParent()!! - - val initializer = property.getInitializer()!! - - val explicitTypeToSet = if (property.getTypeReference() != null) null else initializer.analyze().getType(initializer) - - val psiFactory = JetPsiFactory(property) - var assignment = psiFactory.createExpressionByPattern("$0 = $1", property.getName()!!, initializer) - - assignment = parent.addAfter(assignment, property) as JetBinaryExpression - parent.addAfter(psiFactory.createNewLine(), property) - - property.setInitializer(null) - - if (explicitTypeToSet != null) { - property.setType(explicitTypeToSet) - } - - return assignment -} diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/SplitPropertyDeclarationIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/SplitPropertyDeclarationIntention.kt index 1c46c2199c0..48a5fd4a47a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/SplitPropertyDeclarationIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/SplitPropertyDeclarationIntention.kt @@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.intentions.declarations import com.intellij.openapi.editor.Editor import org.jetbrains.kotlin.idea.intentions.JetSelfTargetingOffsetIndependentIntention +import org.jetbrains.kotlin.idea.intentions.splitPropertyDeclaration import org.jetbrains.kotlin.psi.JetProperty public class SplitPropertyDeclarationIntention : JetSelfTargetingOffsetIndependentIntention(javaClass(), "Split property declaration") {