Prevent recursion when computing parameter list of KtLightMethod (part 2)

Use ClsWrapperStubPsiFactory when building light classes for decompiled kotlin classes
This commit is contained in:
Pavel V. Talanov
2016-02-03 19:24:27 +03:00
parent 5f037d372d
commit abcdae8e69
2 changed files with 2 additions and 1 deletions
@@ -29,7 +29,7 @@ import com.intellij.psi.stubs.StubElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
class ClsWrapperStubPsiFactory extends StubPsiFactory {
public class ClsWrapperStubPsiFactory extends StubPsiFactory {
public static final Key<LightElementOrigin> ORIGIN = Key.create("ORIGIN");
private final StubPsiFactory delegate = new ClsStubPsiFactory();
@@ -331,6 +331,7 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
correspondingClassOrObject: KtClassOrObject?
): ClsClassImpl? {
val javaFileStub = ClsJavaStubByVirtualFileCache.getInstance(project).get(classFile) ?: return null
javaFileStub.psiFactory = ClsWrapperStubPsiFactory()
val manager = PsiManager.getInstance(mirrorFile.project)
val fakeFile = object : ClsFileImpl(ClassFileViewProvider(manager, classFile)) {
override fun getNavigationElement(): PsiElement {