diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtClass.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/KtClass.kt index e4c2cea6293..d4dfcd7092a 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtClass.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtClass.kt @@ -1,30 +1,16 @@ /* - * Copyright 2010-2017 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. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.psi import com.intellij.lang.ASTNode -import com.intellij.openapi.util.text.StringUtil import com.intellij.psi.PsiElement import com.intellij.psi.tree.TokenSet -import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.stubs.KotlinClassStub import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes -import java.util.* open class KtClass : KtClassOrObject { constructor(node: ASTNode) : super(node) @@ -39,7 +25,7 @@ open class KtClass : KtClassOrObject { fun getColon(): PsiElement? = findChildByType(KtTokens.COLON) - fun getProperties(): List = getBody()?.properties.orEmpty() + fun getProperties(): List = body?.properties.orEmpty() fun isInterface(): Boolean = _stub?.isInterface() ?: (findChildByType(KtTokens.INTERFACE_KEYWORD) != null) @@ -49,7 +35,7 @@ open class KtClass : KtClassOrObject { fun isSealed(): Boolean = hasModifier(KtTokens.SEALED_KEYWORD) fun isInner(): Boolean = hasModifier(KtTokens.INNER_KEYWORD) - override fun getCompanionObjects(): List = getBody()?.allCompanionObjects.orEmpty() + override fun getCompanionObjects(): List = body?.allCompanionObjects.orEmpty() fun getClassOrInterfaceKeyword(): PsiElement? = findChildByType(TokenSet.create(KtTokens.CLASS_KEYWORD, KtTokens.INTERFACE_KEYWORD)) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertEnumToSealedClassIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertEnumToSealedClassIntention.kt index c8af1cc52b0..01ae65ced5d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertEnumToSealedClassIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertEnumToSealedClassIntention.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2016 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. + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.idea.intentions @@ -61,9 +50,11 @@ class ConvertEnumToSealedClassIntention : SelfTargetingRangeIntention(K val initializers = member.initializerList?.initializers ?: emptyList() if (initializers.isNotEmpty()) { initializers.forEach { obj.addSuperTypeListEntry(psiFactory.createSuperTypeCallEntry("${klass.name}${it.text}")) } - } - else { - val defaultEntry = if (isExpect) psiFactory.createSuperTypeEntry(name) else psiFactory.createSuperTypeCallEntry("$name()") + } else { + val defaultEntry = if (isExpect) + psiFactory.createSuperTypeEntry(name) + else + psiFactory.createSuperTypeCallEntry("$name()") obj.addSuperTypeListEntry(defaultEntry) } @@ -71,24 +62,23 @@ class ConvertEnumToSealedClassIntention : SelfTargetingRangeIntention(K obj.addModifier(KtTokens.ACTUAL_KEYWORD) } - member.getBody()?.let { body -> obj.add(body) } + member.body?.let { body -> obj.add(body) } member.delete() klass.addDeclaration(obj) } - klass.getBody()?.let { body -> - val semicolon = body - .allChildren - .takeWhile { it !is KtDeclaration } - .firstOrNull { it.node.elementType == KtTokens.SEMICOLON } - if (semicolon != null) { - val nonWhiteSibling = semicolon.siblings(forward = true, withItself = false).firstOrNull { it !is PsiWhiteSpace } - body.deleteChildRange(semicolon, nonWhiteSibling?.prevSibling ?: semicolon) - if (nonWhiteSibling != null) { - CodeStyleManager.getInstance(klass.project).reformat(nonWhiteSibling.firstChild ?: nonWhiteSibling) + klass.body?.let { body -> + body.allChildren + .takeWhile { it !is KtDeclaration } + .firstOrNull { it.node.elementType == KtTokens.SEMICOLON } + ?.let { semicolon -> + val nonWhiteSibling = semicolon.siblings(forward = true, withItself = false).firstOrNull { it !is PsiWhiteSpace } + body.deleteChildRange(semicolon, nonWhiteSibling?.prevSibling ?: semicolon) + if (nonWhiteSibling != null) { + CodeStyleManager.getInstance(klass.project).reformat(nonWhiteSibling.firstChild ?: nonWhiteSibling) + } } - } } } }