From cfe8bc682c0185ab1bdcb2b77b135e2571bd215f Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Wed, 4 Jan 2023 13:35:32 +0100 Subject: [PATCH] [LC] fix compatibility --- .../asJava/elements/KtLightMethodImpl.kt | 27 ++++++++++++++ .../jetbrains/kotlin/asJava/elements/utils.kt | 35 ------------------- 2 files changed, 27 insertions(+), 35 deletions(-) delete mode 100644 analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/elements/utils.kt diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/elements/KtLightMethodImpl.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/elements/KtLightMethodImpl.kt index 8baeb454c25..d8de764c32a 100644 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/elements/KtLightMethodImpl.kt +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/elements/KtLightMethodImpl.kt @@ -10,6 +10,7 @@ import com.intellij.psi.* import com.intellij.psi.scope.PsiScopeProcessor import com.intellij.psi.util.MethodSignature import com.intellij.psi.util.MethodSignatureBackedByPsiMethod +import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.kotlin.asJava.* import org.jetbrains.kotlin.asJava.builder.LightMemberOriginForDeclaration import org.jetbrains.kotlin.asJava.classes.KtLightClass @@ -166,3 +167,29 @@ abstract class KtLightMethodImpl protected constructor( abstract override fun findSuperMethods(parentClass: PsiClass?): Array } + +fun KtLightMethod.isTraitFakeOverride(): Boolean { + val methodOrigin = this.kotlinOrigin + if (!(methodOrigin is KtNamedFunction || methodOrigin is KtPropertyAccessor || methodOrigin is KtProperty)) { + return false + } + + val parentOfMethodOrigin = PsiTreeUtil.getParentOfType(methodOrigin, KtClassOrObject::class.java) + val thisClassDeclaration = this.containingClass.kotlinOrigin + + // Method was generated from declaration in some other trait + return (parentOfMethodOrigin != null && thisClassDeclaration !== parentOfMethodOrigin && KtPsiUtil.isTrait(parentOfMethodOrigin)) +} + +fun KtLightMethod.isAccessor(getter: Boolean): Boolean { + val origin = kotlinOrigin as? KtCallableDeclaration ?: return false + if (origin !is KtProperty && origin !is KtParameter) return false + val expectedParametersCount = (if (getter) 0 else 1) + (if (origin.receiverTypeReference != null) 1 else 0) + return parameterList.parametersCount == expectedParametersCount +} + +val KtLightMethod.isGetter: Boolean + get() = isAccessor(true) + +val KtLightMethod.isSetter: Boolean + get() = isAccessor(false) diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/elements/utils.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/elements/utils.kt deleted file mode 100644 index a25c7ee1c8f..00000000000 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/elements/utils.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2010-2022 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.asJava.elements - -import com.intellij.psi.util.PsiTreeUtil -import org.jetbrains.kotlin.psi.* - -fun KtLightMethod.isTraitFakeOverride(): Boolean { - val methodOrigin = this.kotlinOrigin - if (!(methodOrigin is KtNamedFunction || methodOrigin is KtPropertyAccessor || methodOrigin is KtProperty)) { - return false - } - - val parentOfMethodOrigin = PsiTreeUtil.getParentOfType(methodOrigin, KtClassOrObject::class.java) - val thisClassDeclaration = this.containingClass.kotlinOrigin - - // Method was generated from declaration in some other trait - return (parentOfMethodOrigin != null && thisClassDeclaration !== parentOfMethodOrigin && KtPsiUtil.isTrait(parentOfMethodOrigin)) -} - -fun KtLightMethod.isAccessor(getter: Boolean): Boolean { - val origin = kotlinOrigin as? KtCallableDeclaration ?: return false - if (origin !is KtProperty && origin !is KtParameter) return false - val expectedParametersCount = (if (getter) 0 else 1) + (if (origin.receiverTypeReference != null) 1 else 0) - return parameterList.parametersCount == expectedParametersCount -} - -val KtLightMethod.isGetter: Boolean - get() = isAccessor(true) - -val KtLightMethod.isSetter: Boolean - get() = isAccessor(false)