diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/impl/PsiJetFileStubImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/impl/PsiJetFileStubImpl.java index fc04bea18a1..c46c0e1d84a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/impl/PsiJetFileStubImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/impl/PsiJetFileStubImpl.java @@ -16,14 +16,21 @@ package org.jetbrains.jet.lang.psi.stubs.impl; +import com.google.common.collect.Lists; +import com.intellij.psi.PsiClass; +import com.intellij.psi.impl.java.stubs.PsiClassStub; +import com.intellij.psi.stubs.PsiClassHolderFileStub; import com.intellij.psi.stubs.PsiFileStubImpl; +import com.intellij.psi.stubs.StubElement; import com.intellij.psi.tree.IStubFileElementType; import com.intellij.util.io.StringRef; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.stubs.PsiJetFileStub; import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes; -public class PsiJetFileStubImpl extends PsiFileStubImpl implements PsiJetFileStub { +import java.util.List; + +public class PsiJetFileStubImpl extends PsiFileStubImpl implements PsiJetFileStub, PsiClassHolderFileStub { private final StringRef packageName; private final boolean isScript; @@ -65,4 +72,15 @@ public class PsiJetFileStubImpl extends PsiFileStubImpl implements PsiJ return builder.toString(); } + + @Override + public PsiClass[] getClasses() { + List result = Lists.newArrayList(); + for (StubElement child : getChildrenStubs()) { + if (child instanceof PsiClassStub) { + result.add((PsiClass) child.getPsi()); + } + } + return result.toArray(new PsiClass[result.size()]); + } }