Refactor: get rid of LightClassUtil#getPsiClass() in favor of KtClassOrObject:toLightClass extension

This commit is contained in:
Pavel V. Talanov
2016-01-21 18:49:02 +03:00
parent 2972dbca00
commit 1fe749c114
23 changed files with 75 additions and 69 deletions
@@ -38,7 +38,7 @@ import gnu.trove.THashSet;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
import org.jetbrains.kotlin.asJava.LightClassUtil;
import org.jetbrains.kotlin.asJava.LightClassUtilsKt;
import org.jetbrains.kotlin.builtins.DefaultBuiltIns;
import org.jetbrains.kotlin.codegen.binding.PsiCodegenPredictor;
import org.jetbrains.kotlin.context.ContextKt;
@@ -72,6 +72,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
import static org.jetbrains.kotlin.asJava.LightClassUtilsKt.toLightClass;
import static org.jetbrains.kotlin.idea.decompiler.navigation.MemberMatching.*;
public class SourceNavigationHelper {
@@ -375,7 +376,7 @@ public class SourceNavigationHelper {
);
}
}
return LightClassUtil.INSTANCE.getPsiClass(classOrObject);
return toLightClass(classOrObject);
}
@Nullable
@@ -16,19 +16,18 @@
package org.jetbrains.kotlin.idea.search.declarationsSearch
import com.intellij.psi.PsiClass
import com.intellij.util.Query
import com.intellij.psi.PsiModifier
import com.intellij.psi.PsiAnonymousClass
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.asJava.LightClassUtil
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiModifier
import com.intellij.psi.search.searches.ClassInheritorsSearch
import com.intellij.util.EmptyQuery
import com.intellij.util.Query
import org.jetbrains.kotlin.asJava.toLightClass
import org.jetbrains.kotlin.psi.KtClassOrObject
fun HierarchySearchRequest<*>.searchInheritors(): Query<PsiClass> {
val psiClass: PsiClass? = when (originalElement) {
is KtClassOrObject -> LightClassUtil.getPsiClass(originalElement)
is KtClassOrObject -> originalElement.toLightClass()
is PsiClass -> originalElement
else -> null
}
@@ -174,7 +174,7 @@ class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, ReferencesSearc
fun processKtClassOrObject(element: KtClassOrObject, queryParameters: ReferencesSearch.SearchParameters) {
val className = element.name
if (className != null) {
val lightClass = runReadAction { LightClassUtil.getPsiClass(element) }
val lightClass = runReadAction { element.toLightClass() }
if (lightClass != null) {
searchNamedElement(queryParameters, lightClass, className)
@@ -188,7 +188,7 @@ class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, ReferencesSearc
if (kotlinReferencesSearchOptions?.acceptCompanionObjectMembers == true) {
runReadAction {
val originClass = element.getStrictParentOfType<KtClass>()
val originLightClass = LightClassUtil.getPsiClass(originClass)
val originLightClass = originClass?.toLightClass()
if (originLightClass != null) {
val lightDeclarations: List<KtLightElement<*, *>?> =
originLightClass.methods.map { it as? KtLightMethod } +
@@ -214,7 +214,7 @@ class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, ReferencesSearc
.firstOrNull() as? KtObjectDeclaration ?: return null
if (originObject.isCompanion()) {
val originClass = originObject.getStrictParentOfType<KtClass>()
val originLightClass = LightClassUtil.getPsiClass(originClass)
val originLightClass = originClass?.toLightClass()
val allMethods = originLightClass?.allMethods
return allMethods?.find { it is KtLightMethod && it.getOrigin() == function }
}
@@ -266,7 +266,7 @@ class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, ReferencesSearc
runReadAction {
val componentFunctionDescriptor = element.dataClassComponentFunction()
if (componentFunctionDescriptor != null) {
val containingClass = LightClassUtil.getPsiClass(element.getStrictParentOfType<KtClassOrObject>())
val containingClass = element.getStrictParentOfType<KtClassOrObject>()?.toLightClass()
searchDataClassComponentUsages(queryParameters, containingClass, componentFunctionDescriptor)
}
}