Using JetClsMethod interface to recognize method compiled from kotlin
This commit is contained in:
committed by
Natalia.Ukhorskaya
parent
461e83a5d1
commit
7e9ced290d
@@ -23,7 +23,6 @@ import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiCompiledElement;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.impl.java.stubs.PsiClassStub;
|
||||
@@ -161,12 +160,10 @@ public class LightClassUtil {
|
||||
List<PsiMethod> methods = new SmartList<PsiMethod>();
|
||||
for (PsiMethod method : psiClass.getMethods()) {
|
||||
try {
|
||||
if (method instanceof JetClsMethod) {
|
||||
if (method instanceof PsiCompiledElement && ((PsiCompiledElement) method).getMirror() == declaration) {
|
||||
methods.add(method);
|
||||
if (!collectAll) {
|
||||
return methods;
|
||||
}
|
||||
if (method instanceof JetClsMethod && ((JetClsMethod) method).getOrigin() == declaration) {
|
||||
methods.add(method);
|
||||
if (!collectAll) {
|
||||
return methods;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.QueryExecutorBase;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiCompiledElement;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.search.searches.ClassInheritorsSearch;
|
||||
@@ -30,6 +29,7 @@ import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.asJava.LightClassUtil;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.JetClsMethod;
|
||||
|
||||
public class KotlinDefinitionsSearcher extends QueryExecutorBase<PsiElement, PsiElement> {
|
||||
@Override
|
||||
@@ -107,7 +107,7 @@ public class KotlinDefinitionsSearcher extends QueryExecutorBase<PsiElement, Psi
|
||||
for (PsiMethod method : accessors) {
|
||||
PsiMethod[] implementations = MethodImplementationsSearch.getMethodImplementations(method);
|
||||
for (PsiMethod implementation : implementations) {
|
||||
PsiElement mirrorElement = implementation instanceof PsiCompiledElement ? ((PsiCompiledElement) implementation).getMirror() : null;
|
||||
PsiElement mirrorElement = implementation instanceof JetClsMethod ? ((JetClsMethod) implementation).getOrigin() : null;
|
||||
if (mirrorElement instanceof JetProperty || mirrorElement instanceof JetParameter) {
|
||||
consumer.process(mirrorElement);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user