diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt index 4b1adbaa06a..81108c2beb7 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt @@ -129,7 +129,7 @@ public fun JetDeclaration.isOverridable(): Boolean { hasModifier(JetTokens.ABSTRACT_KEYWORD) || hasModifier(JetTokens.OPEN_KEYWORD) || hasModifier(JetTokens.OVERRIDE_KEYWORD) } -public fun PsiElement.isExtensionDeclaration(): Boolean { +public fun JetDeclaration.isExtensionDeclaration(): Boolean { val callable: JetCallableDeclaration? = when (this) { is JetNamedFunction, is JetProperty -> this as JetCallableDeclaration is JetPropertyAccessor -> getNonStrictParentOfType() @@ -139,7 +139,7 @@ public fun PsiElement.isExtensionDeclaration(): Boolean { return callable?.getReceiverTypeReference() != null } -public fun PsiElement.isObjectLiteral(): Boolean = this is JetObjectDeclaration && isObjectLiteral() +public fun JetClassOrObject.isObjectLiteral(): Boolean = this is JetObjectDeclaration && isObjectLiteral() //TODO: git rid of this method public fun PsiElement.deleteElementAndCleanParent() { diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt index ed9beb4c0a3..faa1b6382c9 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt @@ -70,7 +70,7 @@ public fun JetParameter.toPsiParameter(): PsiParameter? { val paramIndex = paramList.getParameters().indexOf(this) val owner = paramList.getParent() - val lightParamIndex = if (owner != null && owner.isExtensionDeclaration()) paramIndex + 1 else paramIndex + val lightParamIndex = if (owner is JetDeclaration && owner.isExtensionDeclaration()) paramIndex + 1 else paramIndex val method: PsiMethod? = when (owner) { is JetFunction -> LightClassUtil.getLightClassMethod(owner) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt index 159ad1f1a57..fcbcb20a084 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt @@ -166,7 +166,7 @@ fun createMoveUsageInfoIfPossible( val endOffset = range.getEndOffset() if (reference is JetReference - && referencedElement.namedUnwrappedElement!!.isExtensionDeclaration() + && (referencedElement.namedUnwrappedElement as? JetDeclaration)?.isExtensionDeclaration() ?: false && element.getNonStrictParentOfType() == null) { return MoveRenameUsageInfoForExtension( element, reference, startOffset, endOffset, referencedElement, element.getContainingFile()!!, addImportToOriginalFile diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/utils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/utils.kt index c281983b18d..1ad062fa4b3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/utils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/utils.kt @@ -16,16 +16,15 @@ package org.jetbrains.kotlin.idea.refactoring.safeDelete -import com.intellij.psi.PsiMethod import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.lexer.JetTokens +import com.intellij.psi.PsiMethod import com.intellij.psi.search.searches.OverridingMethodsSearch import org.jetbrains.kotlin.asJava.unwrapped +import org.jetbrains.kotlin.lexer.JetTokens import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.* public fun PsiElement.canDeleteElement(): Boolean { - if (isObjectLiteral()) return false + if (this is JetObjectDeclaration && isObjectLiteral()) return false if (this is JetParameter) { val parameterList = getParent() as? JetParameterList ?: return false