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:
+1
-1
@@ -29,7 +29,7 @@ import com.intellij.psi.stubs.StubElement;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
class ClsWrapperStubPsiFactory extends StubPsiFactory {
|
public class ClsWrapperStubPsiFactory extends StubPsiFactory {
|
||||||
public static final Key<LightElementOrigin> ORIGIN = Key.create("ORIGIN");
|
public static final Key<LightElementOrigin> ORIGIN = Key.create("ORIGIN");
|
||||||
private final StubPsiFactory delegate = new ClsStubPsiFactory();
|
private final StubPsiFactory delegate = new ClsStubPsiFactory();
|
||||||
|
|
||||||
|
|||||||
+1
@@ -331,6 +331,7 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
|
|||||||
correspondingClassOrObject: KtClassOrObject?
|
correspondingClassOrObject: KtClassOrObject?
|
||||||
): ClsClassImpl? {
|
): ClsClassImpl? {
|
||||||
val javaFileStub = ClsJavaStubByVirtualFileCache.getInstance(project).get(classFile) ?: return null
|
val javaFileStub = ClsJavaStubByVirtualFileCache.getInstance(project).get(classFile) ?: return null
|
||||||
|
javaFileStub.psiFactory = ClsWrapperStubPsiFactory()
|
||||||
val manager = PsiManager.getInstance(mirrorFile.project)
|
val manager = PsiManager.getInstance(mirrorFile.project)
|
||||||
val fakeFile = object : ClsFileImpl(ClassFileViewProvider(manager, classFile)) {
|
val fakeFile = object : ClsFileImpl(ClassFileViewProvider(manager, classFile)) {
|
||||||
override fun getNavigationElement(): PsiElement {
|
override fun getNavigationElement(): PsiElement {
|
||||||
|
|||||||
Reference in New Issue
Block a user