Refactor: get rid of LightClassUtil#getPsiClass() in favor of KtClassOrObject:toLightClass extension
This commit is contained in:
@@ -45,6 +45,8 @@ import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.jetbrains.kotlin.asJava.LightClassUtilsKt.toLightClass;
|
||||
|
||||
public class JavaElementFinder extends PsiElementFinder implements KotlinFinderMarker {
|
||||
|
||||
@NotNull
|
||||
@@ -133,7 +135,7 @@ public class JavaElementFinder extends PsiElementFinder implements KotlinFinderM
|
||||
|
||||
for (KtClassOrObject declaration : classOrObjectDeclarations) {
|
||||
if (!(declaration instanceof KtEnumEntry)) {
|
||||
PsiClass lightClass = LightClassUtil.INSTANCE.getPsiClass(declaration);
|
||||
PsiClass lightClass = toLightClass(declaration);
|
||||
if (lightClass != null) {
|
||||
answer.add(lightClass);
|
||||
}
|
||||
@@ -149,7 +151,7 @@ public class JavaElementFinder extends PsiElementFinder implements KotlinFinderM
|
||||
for (KtClassOrObject classOrObject : lightClassGenerationSupport.findClassOrObjectDeclarations(qualifiedName.parent(), scope)) {
|
||||
//NOTE: can't filter out more interfaces right away because decompiled declarations do not have member bodies
|
||||
if (classOrObject instanceof KtClass && ((KtClass) classOrObject).isInterface()) {
|
||||
PsiClass interfaceClass = LightClassUtil.INSTANCE.getPsiClass(classOrObject);
|
||||
PsiClass interfaceClass = toLightClass(classOrObject);
|
||||
if (interfaceClass != null) {
|
||||
PsiClass implsClass = interfaceClass.findInnerClassByName(JvmAbi.DEFAULT_IMPLS_CLASS_NAME, false);
|
||||
if (implsClass != null) {
|
||||
@@ -224,7 +226,7 @@ public class JavaElementFinder extends PsiElementFinder implements KotlinFinderM
|
||||
|
||||
Collection<KtClassOrObject> declarations = lightClassGenerationSupport.findClassOrObjectDeclarationsInPackage(packageFQN, scope);
|
||||
for (KtClassOrObject declaration : declarations) {
|
||||
PsiClass aClass = LightClassUtil.INSTANCE.getPsiClass(declaration);
|
||||
PsiClass aClass = toLightClass(declaration);
|
||||
if (aClass != null) {
|
||||
answer.add(aClass);
|
||||
}
|
||||
|
||||
+2
-2
@@ -116,12 +116,12 @@ open class KtLightClassForExplicitDeclaration(
|
||||
val grandparent = parent.parent
|
||||
|
||||
if (parent is KtClassBody && grandparent is KtClassOrObject) {
|
||||
return LightClassUtil.getPsiClass(grandparent)
|
||||
return grandparent.toLightClass()
|
||||
}
|
||||
}
|
||||
|
||||
if (declaration is KtClass) {
|
||||
return LightClassUtil.getPsiClass(declaration)
|
||||
return declaration.toLightClass()
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -48,12 +48,6 @@ object LightClassUtil {
|
||||
return null
|
||||
}/*package*/
|
||||
|
||||
fun getPsiClass(classOrObject: KtClassOrObject?): KtLightClass? {
|
||||
return classOrObject?.let {
|
||||
return LightClassGenerationSupport.getInstance(it.project).getLightClass(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun getLightClassAccessorMethod(accessor: KtPropertyAccessor): PsiMethod? =
|
||||
getLightClassAccessorMethods(accessor).firstOrNull()
|
||||
|
||||
@@ -94,7 +88,7 @@ object LightClassUtil {
|
||||
if (origin is KtObjectDeclaration && origin.isCompanion()) {
|
||||
val containingClass = PsiTreeUtil.getParentOfType(origin, KtClass::class.java)
|
||||
if (containingClass != null) {
|
||||
val containingLightClass = getPsiClass(containingClass)
|
||||
val containingLightClass = containingClass.toLightClass()
|
||||
if (containingLightClass != null) {
|
||||
psiClass = containingLightClass
|
||||
}
|
||||
@@ -156,7 +150,7 @@ object LightClassUtil {
|
||||
if (declaration is KtParameter) {
|
||||
val constructorClass = KtPsiUtil.getClassIfParameterIsProperty(declaration)
|
||||
if (constructorClass != null) {
|
||||
return getPsiClass(constructorClass)
|
||||
return constructorClass.toLightClass()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +159,7 @@ object LightClassUtil {
|
||||
}
|
||||
|
||||
if (declaration is KtConstructor<*>) {
|
||||
return getPsiClass(declaration.getContainingClassOrObject())
|
||||
return declaration.getContainingClassOrObject().toLightClass()
|
||||
}
|
||||
|
||||
if (!canGenerateLightClass(declaration)) {
|
||||
@@ -184,7 +178,7 @@ object LightClassUtil {
|
||||
}
|
||||
else if (parent is KtClassBody) {
|
||||
assert(parent.parent is KtClassOrObject)
|
||||
return getPsiClass(parent.parent as KtClassOrObject)
|
||||
return (parent.parent as KtClassOrObject).toLightClass()
|
||||
}
|
||||
|
||||
return null
|
||||
|
||||
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.singletonList
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.singletonOrEmptyList
|
||||
import java.util.*
|
||||
|
||||
fun KtClassOrObject.toLightClass(): KtLightClass? = LightClassUtil.getPsiClass(this)
|
||||
fun KtClassOrObject.toLightClass(): KtLightClass? = LightClassGenerationSupport.getInstance(project).getLightClass(this)
|
||||
|
||||
fun KtFile.findFacadeClass(): KtLightClass? {
|
||||
return LightClassGenerationSupport.getInstance(project)
|
||||
@@ -38,7 +38,7 @@ fun KtFile.findFacadeClass(): KtLightClass? {
|
||||
|
||||
fun KtDeclaration.toLightElements(): List<PsiNamedElement> =
|
||||
when (this) {
|
||||
is KtClassOrObject -> LightClassUtil.getPsiClass(this).singletonOrEmptyList()
|
||||
is KtClassOrObject -> toLightClass().singletonOrEmptyList()
|
||||
is KtNamedFunction,
|
||||
is KtSecondaryConstructor -> LightClassUtil.getLightClassMethods(this as KtFunction)
|
||||
is KtProperty -> LightClassUtil.getLightClassPropertyMethods(this).toList()
|
||||
@@ -59,7 +59,7 @@ fun PsiElement.toLightMethods(): List<PsiMethod> =
|
||||
is KtProperty -> LightClassUtil.getLightClassPropertyMethods(this).toList()
|
||||
is KtParameter -> LightClassUtil.getLightClassPropertyMethods(this).toList()
|
||||
is KtPropertyAccessor -> LightClassUtil.getLightClassAccessorMethods(this)
|
||||
is KtClass -> LightClassUtil.getPsiClass(this)?.getConstructors()?.first().singletonOrEmptyList()
|
||||
is KtClass -> toLightClass()?.getConstructors()?.first().singletonOrEmptyList()
|
||||
is PsiMethod -> this.singletonList()
|
||||
else -> listOf()
|
||||
}
|
||||
|
||||
+3
-2
@@ -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
|
||||
|
||||
+6
-7
@@ -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
|
||||
}
|
||||
|
||||
+4
-4
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ import com.intellij.codeInsight.lookup.LookupElementPresentation
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.search.searches.ClassInheritorsSearch
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
@@ -114,7 +114,7 @@ class TypeInstantiationItems(
|
||||
|
||||
val psiClass: PsiClass = when (declaration) {
|
||||
is PsiClass -> declaration
|
||||
is KtClassOrObject -> LightClassUtil.getPsiClass(declaration) ?: return
|
||||
is KtClassOrObject -> declaration.toLightClass() ?: return
|
||||
else -> return
|
||||
}
|
||||
add(InheritanceSearcher(psiClass, kotlinClassDescriptor, typeArgs, freeParameters, tail))
|
||||
|
||||
+3
-2
@@ -30,7 +30,6 @@ import com.intellij.psi.PsiModifier;
|
||||
import com.intellij.ui.SimpleColoredComponent;
|
||||
import com.intellij.ui.StateRestoringCheckBox;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil;
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtilsKt;
|
||||
import org.jetbrains.kotlin.idea.KotlinBundle;
|
||||
import org.jetbrains.kotlin.idea.findUsages.KotlinClassFindUsagesOptions;
|
||||
@@ -41,6 +40,8 @@ import org.jetbrains.kotlin.psi.psiUtil.KtPsiUtilKt;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import static org.jetbrains.kotlin.asJava.LightClassUtilsKt.toLightClass;
|
||||
|
||||
public class KotlinFindClassUsagesDialog extends FindClassUsagesDialog {
|
||||
private StateRestoringCheckBox constructorUsages;
|
||||
private StateRestoringCheckBox derivedClasses;
|
||||
@@ -62,7 +63,7 @@ public class KotlinFindClassUsagesDialog extends FindClassUsagesDialog {
|
||||
|
||||
@NotNull
|
||||
private static PsiClass getRepresentingPsiClass(@NotNull KtClassOrObject classOrObject) {
|
||||
PsiClass lightClass = LightClassUtil.INSTANCE.getPsiClass(classOrObject);
|
||||
PsiClass lightClass = toLightClass(classOrObject);
|
||||
if (lightClass != null) return lightClass;
|
||||
|
||||
// TODO: Remove this code when light classes are generated for builtins
|
||||
|
||||
+1
-2
@@ -31,7 +31,6 @@ import com.intellij.usageView.UsageInfo
|
||||
import com.intellij.util.FilteredQuery
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.asJava.KtLightMethod
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.findUsages.KotlinClassFindUsagesOptions
|
||||
@@ -193,7 +192,7 @@ class KotlinFindClassUsagesHandler(
|
||||
override fun getStringsToSearch(element: PsiElement): Collection<String> {
|
||||
val psiClass = when (element) {
|
||||
is PsiClass -> element
|
||||
is KtClassOrObject -> LightClassUtil.getPsiClass(getElement())
|
||||
is KtClassOrObject -> getElement().toLightClass()
|
||||
else -> null
|
||||
} ?: return Collections.emptyList()
|
||||
|
||||
|
||||
@@ -35,6 +35,8 @@ import org.jetbrains.kotlin.psi.psiUtil.PsiUtilsKt;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static org.jetbrains.kotlin.asJava.LightClassUtilsKt.toLightClass;
|
||||
|
||||
public abstract class KotlinCallTreeStructure extends HierarchyTreeStructure {
|
||||
protected final String scopeType;
|
||||
|
||||
@@ -102,7 +104,7 @@ public abstract class KotlinCallTreeStructure extends HierarchyTreeStructure {
|
||||
}
|
||||
|
||||
if (element instanceof KtClassOrObject) {
|
||||
PsiClass psiClass = LightClassUtil.INSTANCE.getPsiClass((KtClassOrObject) element);
|
||||
PsiClass psiClass = toLightClass((KtClassOrObject) element);
|
||||
if (psiClass == null) return null;
|
||||
|
||||
PsiMethod[] constructors = psiClass.getConstructors();
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiMethod
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtFunction
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
@@ -45,8 +46,8 @@ internal fun getPsiClass(element: PsiElement?): PsiClass? {
|
||||
return when {
|
||||
element == null -> null
|
||||
element is PsiClass -> element
|
||||
element is KtClass -> LightClassUtil.getPsiClass(element)
|
||||
element.parent is KtClass -> LightClassUtil.getPsiClass(element.parent as KtClass)
|
||||
element is KtClass -> element.toLightClass()
|
||||
element.parent is KtClass -> (element.parent as KtClass).toLightClass()
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,13 +28,16 @@ import com.intellij.openapi.project.DumbService
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.search.searches.ClassInheritorsSearch
|
||||
import com.intellij.util.NullableFunction
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isOverridable
|
||||
import java.awt.event.MouseEvent
|
||||
import java.util.*
|
||||
@@ -141,7 +144,7 @@ private fun collectInheritedClassMarker(element: KtClass, result: MutableCollect
|
||||
return
|
||||
}
|
||||
|
||||
val lightClass = LightClassUtil.getPsiClass(element) ?: return
|
||||
val lightClass = element.toLightClass() ?: return
|
||||
|
||||
if (ClassInheritorsSearch.search(lightClass, false).findFirst() == null) return
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ import com.intellij.util.VisibilityUtil
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import org.jetbrains.kotlin.asJava.KtLightMethod
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
@@ -548,8 +549,7 @@ fun createJavaClass(klass: KtClass, targetClass: PsiClass?, forcePlainClass: Boo
|
||||
}
|
||||
val javaClass = (targetClass?.add(javaClassToAdd) ?: javaClassToAdd) as PsiClass
|
||||
|
||||
val template = LightClassUtil.getPsiClass(klass)
|
||||
?: throw AssertionError("Can't generate light class: ${klass.getElementTextWithContext()}")
|
||||
val template = klass.toLightClass() ?: throw AssertionError("Can't generate light class: ${klass.getElementTextWithContext()}")
|
||||
|
||||
copyModifierListItems(template.modifierList!!, javaClass.modifierList!!)
|
||||
if (template.isInterface) {
|
||||
|
||||
@@ -24,13 +24,13 @@ import com.intellij.refactoring.RefactoringBundle
|
||||
import com.intellij.refactoring.rename.naming.AutomaticRenamer
|
||||
import com.intellij.refactoring.rename.naming.AutomaticRenamerFactory
|
||||
import com.intellij.usageView.UsageInfo
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.asJava.unwrapped
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
|
||||
class AutomaticInheritorRenamer(klass: KtClass, newName: String): AutomaticRenamer() {
|
||||
init {
|
||||
val lightClass = LightClassUtil.getPsiClass(klass)
|
||||
val lightClass = klass.toLightClass()
|
||||
if (lightClass != null) {
|
||||
for (inheritorLightClass in ClassInheritorsSearch.search(lightClass, true).findAll()) {
|
||||
if ((inheritorLightClass.unwrapped as? PsiNamedElement)?.name != null) {
|
||||
|
||||
@@ -28,7 +28,7 @@ import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
@@ -141,7 +141,7 @@ class KotlinJUnitRunConfigurationProducer : RunConfigurationProducer<JUnitConfig
|
||||
val owner = PsiTreeUtil.getParentOfType(function, KtFunction::class.java, KtClass::class.java)
|
||||
|
||||
if (owner is KtClass) {
|
||||
val delegate = LightClassUtil.getPsiClass(owner) ?: return null
|
||||
val delegate = owner.toLightClass() ?: return null
|
||||
val method = delegate.methods.firstOrNull() { it.navigationElement == function } ?: return null
|
||||
val methodLocation = PsiLocation.fromPsiElement(method)
|
||||
if (JUnitUtil.isTestMethod(methodLocation, false)) {
|
||||
@@ -157,14 +157,11 @@ class KotlinJUnitRunConfigurationProducer : RunConfigurationProducer<JUnitConfig
|
||||
if (!jetClass.isJUnitTestClass()) {
|
||||
jetClass = getTestClassInFile(containingFile)
|
||||
}
|
||||
if (jetClass != null) {
|
||||
return LightClassUtil.getPsiClass(jetClass)
|
||||
}
|
||||
return null
|
||||
return jetClass?.toLightClass()
|
||||
}
|
||||
|
||||
private fun KtClass?.isJUnitTestClass() =
|
||||
LightClassUtil.getPsiClass(this)?.let { JUnitUtil.isTestClass(it, false, true) } ?: false
|
||||
this?.toLightClass()?.let { JUnitUtil.isTestClass(it, false, true) } ?: false
|
||||
|
||||
private fun getTestClassInFile(jetFile: KtFile) =
|
||||
jetFile.declarations.filterIsInstance<KtClass>().singleOrNull { it.isJUnitTestClass() }
|
||||
|
||||
@@ -36,7 +36,6 @@ import com.theoryinpractice.testng.util.TestNGUtil;
|
||||
import kotlin.collections.CollectionsKt;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil;
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtilsKt;
|
||||
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil;
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil;
|
||||
@@ -44,6 +43,8 @@ import org.jetbrains.kotlin.psi.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.jetbrains.kotlin.asJava.LightClassUtilsKt.toLightClass;
|
||||
|
||||
public class KotlinTestNgConfigurationProducer extends TestNGConfigurationProducer {
|
||||
@Override
|
||||
public boolean shouldReplace(ConfigurationFromContext self, ConfigurationFromContext other) {
|
||||
@@ -88,7 +89,7 @@ public class KotlinTestNgConfigurationProducer extends TestNGConfigurationProduc
|
||||
KtElement owner = PsiTreeUtil.getParentOfType(function, KtFunction.class, KtClass.class);
|
||||
|
||||
if (owner instanceof KtClass) {
|
||||
PsiClass delegate = LightClassUtil.INSTANCE.getPsiClass((KtClass) owner);
|
||||
PsiClass delegate = toLightClass((KtClass) owner);
|
||||
if (delegate != null) {
|
||||
for (PsiMethod method : delegate.getMethods()) {
|
||||
if (method.getNavigationElement() == function) {
|
||||
@@ -103,7 +104,7 @@ public class KotlinTestNgConfigurationProducer extends TestNGConfigurationProduc
|
||||
}
|
||||
|
||||
if (declarationToRun instanceof KtClass) {
|
||||
PsiClass delegate = LightClassUtil.INSTANCE.getPsiClass((KtClassOrObject) declarationToRun);
|
||||
PsiClass delegate = toLightClass((KtClassOrObject) declarationToRun);
|
||||
if (!isTestNGClass(delegate)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
+2
-1
@@ -29,6 +29,7 @@ import com.intellij.util.Processor
|
||||
import com.intellij.util.QueryExecutor
|
||||
import com.intellij.util.indexing.FileBasedIndex
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.stubindex.KotlinAnnotationsIndex
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
@@ -45,7 +46,7 @@ class KotlinAnnotatedElementsSearcher : QueryExecutor<PsiModifierListOwner, Anno
|
||||
return processAnnotatedMembers(p.annotationClass, p.scope) { declaration ->
|
||||
when (declaration) {
|
||||
is KtClass -> {
|
||||
val lightClass = LightClassUtil.getPsiClass(declaration)
|
||||
val lightClass = declaration.toLightClass()
|
||||
consumer.process(lightClass)
|
||||
}
|
||||
is KtNamedFunction, is KtSecondaryConstructor -> {
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.search.searches.ClassesWithAnnotatedMembersSearch
|
||||
import com.intellij.psi.search.searches.ScopedQueryExecutor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.search.allScope
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
@@ -39,7 +39,7 @@ class KotlinClassesWithAnnotatedMembersSearcher : ScopedQueryExecutor<PsiClass,
|
||||
{ it.getNonStrictParentOfType<KtClassOrObject>() !in processed}) { declaration ->
|
||||
val ktClass = declaration.getNonStrictParentOfType<KtClassOrObject>()
|
||||
if (ktClass != null && processed.add(ktClass)) {
|
||||
val lightClass = LightClassUtil.getPsiClass(ktClass)
|
||||
val lightClass = ktClass.toLightClass()
|
||||
if (lightClass != null) consumer.process(lightClass) else true
|
||||
}
|
||||
else
|
||||
|
||||
+4
-2
@@ -36,6 +36,8 @@ import org.jetbrains.kotlin.psi.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.jetbrains.kotlin.asJava.LightClassUtilsKt.toLightClass;
|
||||
|
||||
public class KotlinDefinitionsSearcher implements QueryExecutor<PsiElement, DefinitionsScopedSearch.SearchParameters> {
|
||||
@Override
|
||||
public boolean execute(@NotNull DefinitionsScopedSearch.SearchParameters queryParameters, @NotNull Processor<PsiElement> consumer) {
|
||||
@@ -82,11 +84,11 @@ public class KotlinDefinitionsSearcher implements QueryExecutor<PsiElement, Defi
|
||||
return element instanceof KtLightMethod && ((KtLightMethod) element).isDelegated();
|
||||
}
|
||||
|
||||
private static boolean processClassImplementations(final KtClass klass, Processor<PsiElement> consumer) {
|
||||
private static boolean processClassImplementations(@NotNull final KtClass klass, Processor<PsiElement> consumer) {
|
||||
PsiClass psiClass = ApplicationManager.getApplication().runReadAction(new Computable<PsiClass>() {
|
||||
@Override
|
||||
public PsiClass compute() {
|
||||
return LightClassUtil.INSTANCE.getPsiClass(klass);
|
||||
return toLightClass(klass);
|
||||
}
|
||||
});
|
||||
if (psiClass != null) {
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.testFramework.LightProjectDescriptor
|
||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.KtLightClassForDecompiledDeclaration
|
||||
import org.jetbrains.kotlin.idea.test.JdkAndMockLibraryProjectDescriptor
|
||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||
@@ -50,7 +50,7 @@ class NavigateFromLibrarySourcesTest: LightCodeInsightFixtureTestCase() {
|
||||
fun testLightClassForLibrarySource() {
|
||||
val navigationElement = navigationElementForReferenceInLibrarySource("Foo")
|
||||
assertTrue(navigationElement is KtClassOrObject, "Foo should navigate to JetClassOrObject")
|
||||
val lightClass = LightClassUtil.getPsiClass(navigationElement as KtClassOrObject)
|
||||
val lightClass = (navigationElement as KtClassOrObject).toLightClass()
|
||||
assertTrue(lightClass is KtLightClassForDecompiledDeclaration,
|
||||
"Light classes for decompiled declaration should be provided for library source")
|
||||
assertEquals("Foo", lightClass!!.name)
|
||||
|
||||
@@ -30,6 +30,8 @@ import org.jetbrains.kotlin.idea.test.PluginTestCaseBase;
|
||||
import org.jetbrains.kotlin.name.SpecialNames;
|
||||
import org.jetbrains.kotlin.psi.*;
|
||||
|
||||
import static org.jetbrains.kotlin.asJava.LightClassUtilsKt.toLightClass;
|
||||
|
||||
public class KotlinJavaFacadeTest extends KotlinLightCodeInsightFixtureTestCase {
|
||||
@NotNull
|
||||
@Override
|
||||
@@ -212,7 +214,7 @@ public class KotlinJavaFacadeTest extends KotlinLightCodeInsightFixtureTestCase
|
||||
assertInstanceOf(element, KtClass.class);
|
||||
KtClass aClass = (KtClass) element;
|
||||
|
||||
PsiClass createdByWrapDelegate = LightClassUtil.INSTANCE.getPsiClass(aClass);
|
||||
PsiClass createdByWrapDelegate = toLightClass(aClass);
|
||||
assertNull(createdByWrapDelegate);
|
||||
}
|
||||
|
||||
@@ -296,7 +298,7 @@ public class KotlinJavaFacadeTest extends KotlinLightCodeInsightFixtureTestCase
|
||||
assertNotNull("Caret should be placed to class definition", ktClass);
|
||||
|
||||
// Should not fail!
|
||||
KtLightClass lightClass = (KtLightClass) LightClassUtil.INSTANCE.getPsiClass(ktClass);
|
||||
KtLightClass lightClass = toLightClass(ktClass);
|
||||
|
||||
assertNotNull(String.format("Failed to wrap jetClass '%s' to class", ktClass.getText()), lightClass);
|
||||
|
||||
|
||||
@@ -22,12 +22,13 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.asJava.KtLightClass;
|
||||
import org.jetbrains.kotlin.asJava.KtLightClassForExplicitDeclaration;
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil;
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.KtLightClassForDecompiledDeclaration;
|
||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase;
|
||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor;
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject;
|
||||
|
||||
import static org.jetbrains.kotlin.asJava.LightClassUtilsKt.toLightClass;
|
||||
|
||||
public class LightClassEqualsTest extends KotlinLightCodeInsightFixtureTestCase {
|
||||
@NotNull
|
||||
@Override
|
||||
@@ -58,8 +59,8 @@ public class LightClassEqualsTest extends KotlinLightCodeInsightFixtureTestCase
|
||||
private static void doTestEquals(@Nullable KtClassOrObject origin) {
|
||||
assertNotNull(origin);
|
||||
|
||||
PsiClass lightClass1 = LightClassUtil.INSTANCE.getPsiClass(origin);
|
||||
PsiClass lightClass2 = LightClassUtil.INSTANCE.getPsiClass(origin);
|
||||
PsiClass lightClass1 = toLightClass(origin);
|
||||
PsiClass lightClass2 = toLightClass(origin);
|
||||
assertNotNull(lightClass1);
|
||||
assertNotNull(lightClass2);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user