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