diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/ClsWrapperStubPsiFactory.java b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/ClsWrapperStubPsiFactory.java index 58be0a0c8a1..e05152c40a3 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/ClsWrapperStubPsiFactory.java +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/ClsWrapperStubPsiFactory.java @@ -31,8 +31,12 @@ import org.jetbrains.annotations.Nullable; public class ClsWrapperStubPsiFactory extends StubPsiFactory { public static final Key ORIGIN = Key.create("ORIGIN"); + public static final ClsWrapperStubPsiFactory INSTANCE = new ClsWrapperStubPsiFactory(); + private final StubPsiFactory delegate = new ClsStubPsiFactory(); + private ClsWrapperStubPsiFactory() { } + @Nullable public static LightMemberOriginForDeclaration getMemberOrigin(@NotNull PsiMember member) { if (member instanceof ClsRepositoryPsiElement) { diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassDataProvider.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassDataProvider.kt index 4d3eba42eda..bf88a452ad4 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassDataProvider.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassDataProvider.kt @@ -127,7 +127,7 @@ abstract class LightClassDataProvider( private fun createJavaFileStub(packageFqName: FqName, files: Collection): PsiJavaFileStub { val javaFileStub = PsiJavaFileStubImpl(packageFqName.asString(), true) - javaFileStub.psiFactory = ClsWrapperStubPsiFactory() + javaFileStub.psiFactory = ClsWrapperStubPsiFactory.INSTANCE val manager = PsiManager.getInstance(project) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt index 00d958f59a7..c994b54dbc5 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt @@ -348,7 +348,7 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG correspondingClassOrObject: KtClassOrObject? ): ClsClassImpl? { val javaFileStub = ClsJavaStubByVirtualFileCache.getInstance(project).get(classFile) ?: return null - javaFileStub.psiFactory = ClsWrapperStubPsiFactory() + javaFileStub.psiFactory = ClsWrapperStubPsiFactory.INSTANCE val manager = PsiManager.getInstance(mirrorFile.project) val fakeFile = object : ClsFileImpl(ClassFileViewProvider(manager, classFile)) { override fun getNavigationElement(): PsiElement {