diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java index 8d7ee23d0c4..c8ca5463897 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java @@ -25,11 +25,9 @@ import com.intellij.openapi.util.Key; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.PsiClassImplUtil; -import com.intellij.psi.impl.java.stubs.PsiClassStub; import com.intellij.psi.impl.java.stubs.PsiJavaFileStub; import com.intellij.psi.impl.java.stubs.impl.PsiJavaFileStubImpl; import com.intellij.psi.impl.light.AbstractLightClass; -import com.intellij.psi.stubs.PsiFileStub; import com.intellij.psi.stubs.StubElement; import com.intellij.psi.util.*; import com.intellij.util.containers.Stack; @@ -108,7 +106,7 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa @Override public PsiClass getDelegate() { if (delegate == null) { - delegate = findClass(qualifiedName, getStub()); + delegate = LightClassUtil.findClass(qualifiedName, getStub()); if (delegate == null) { throw new IllegalStateException("Class not found for qualified name: " + qualifiedName); } @@ -121,21 +119,6 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa return file; } - private static PsiClass findClass(FqName fqn, StubElement stub) { - if (stub instanceof PsiClassStub && Comparing.equal(fqn.getFqName(), ((PsiClassStub)stub).getQualifiedName())) { - return (PsiClass)stub.getPsi(); - } - - if (stub instanceof PsiClassStub || stub instanceof PsiFileStub) { - for (StubElement child : stub.getChildrenStubs()) { - PsiClass answer = findClass(fqn, child); - if (answer != null) return answer; - } - } - - return null; - } - @Override public String getQualifiedName() { return qualifiedName.getFqName(); diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java index d4060de241a..5fef33db891 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java @@ -17,8 +17,13 @@ package org.jetbrains.jet.asJava; import com.intellij.openapi.diagnostic.Logger; +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.impl.java.stubs.PsiClassStub; +import com.intellij.psi.stubs.PsiFileStub; +import com.intellij.psi.stubs.StubElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.psi.JetFile; @@ -81,4 +86,20 @@ public class LightClassUtil { } private LightClassUtil() {} + + @Nullable + /*package*/ static PsiClass findClass(@NotNull FqName fqn, @NotNull StubElement stub) { + if (stub instanceof PsiClassStub && Comparing.equal(fqn.getFqName(), ((PsiClassStub) stub).getQualifiedName())) { + return (PsiClass)stub.getPsi(); + } + + if (stub instanceof PsiClassStub || stub instanceof PsiFileStub) { + for (StubElement child : stub.getChildrenStubs()) { + PsiClass answer = findClass(fqn, child); + if (answer != null) return answer; + } + } + + return null; + } }