diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/migration/MigrateExternalExtensionFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/migration/MigrateExternalExtensionFix.kt index 2daad4110e4..4730151286a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/migration/MigrateExternalExtensionFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/migration/MigrateExternalExtensionFix.kt @@ -39,6 +39,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject +import org.jetbrains.kotlin.psi.psiUtil.getParentOfType import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode @@ -246,16 +247,6 @@ class MigrateExternalExtensionFix(declaration: KtNamedDeclaration) (psiElement is KtProperty && psiElement.receiverTypeReference == null) } - private inline fun getContainingElement(e: PsiElement): T? { - var element: PsiElement? = e - while (element != null) { - if (element is T) - return element - - element = element.parent - } - return null - } override fun createAction(diagnostic: Diagnostic): IntentionAction? { val e = diagnostic.psiElement when (diagnostic.factory) { @@ -265,8 +256,8 @@ class MigrateExternalExtensionFix(declaration: KtNamedDeclaration) } } Errors.DEPRECATION_ERROR, Errors.DEPRECATION -> { - if (getContainingElement(e)?.isJsNativeAnnotation() == true) { - getContainingElement(e)?.let { + if (e.getParentOfType(false)?.isJsNativeAnnotation() == true) { + e.getParentOfType(false)?.let { return MigrateExternalExtensionFix(it) } }