From 585348c5909fac4839b044eddc559ab0db28a11a Mon Sep 17 00:00:00 2001 From: Nicolay Mitropolsky Date: Wed, 21 Feb 2018 23:24:32 +0300 Subject: [PATCH] 181: LightClasses: using viewProvider from KtFile #KT-22929 --- compiler/light-classes/build.gradle.kts.181 | 2 +- .../kotlin/asJava/builder/LightClassBuilder.kt.181 | 3 +-- .../asJava/elements/FakeFileForLightClass.kt.181 | 13 +------------ 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/compiler/light-classes/build.gradle.kts.181 b/compiler/light-classes/build.gradle.kts.181 index b083039080a..5f931fe8869 100644 --- a/compiler/light-classes/build.gradle.kts.181 +++ b/compiler/light-classes/build.gradle.kts.181 @@ -12,7 +12,7 @@ dependencies { compile(project(":compiler:frontend")) compile(project(":compiler:frontend.java")) compileOnly(intellijCoreDep()) { includeJars("intellij-core") } - compileOnly(intellijDep()) { includeJars("annotations", "platform-impl", "asm-all", "trove4j", "guava", rootProject = rootProject) } + compileOnly(intellijDep()) { includeJars("annotations", "asm-all", "trove4j", "guava", rootProject = rootProject) } } sourceSets { diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/builder/LightClassBuilder.kt.181 b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/builder/LightClassBuilder.kt.181 index 0346594da4c..711075fe613 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/builder/LightClassBuilder.kt.181 +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/builder/LightClassBuilder.kt.181 @@ -26,7 +26,6 @@ import com.intellij.psi.PsiElement import com.intellij.psi.impl.compiled.ClsFileImpl import com.intellij.psi.impl.java.stubs.PsiJavaFileStub import com.intellij.psi.impl.java.stubs.impl.PsiJavaFileStubImpl -import org.jetbrains.kotlin.asJava.elements.getFileViewProviderForLightClass import com.intellij.psi.impl.source.tree.TreeElement import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.config.CompilerConfiguration @@ -79,7 +78,7 @@ private fun createJavaFileStub(project: Project, packageFqName: FqName, files: C val javaFileStub = PsiJavaFileStubImpl(packageFqName.asString(), /*compiled = */true) javaFileStub.psiFactory = ClsWrapperStubPsiFactory.INSTANCE - val fakeFile = object : ClsFileImpl(getFileViewProviderForLightClass(files.first())) { + val fakeFile = object : ClsFileImpl(files.first().viewProvider) { override fun getStub() = javaFileStub override fun getPackageName() = packageFqName.asString() diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/FakeFileForLightClass.kt.181 b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/FakeFileForLightClass.kt.181 index 0357157e0b7..debfbb5698c 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/FakeFileForLightClass.kt.181 +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/FakeFileForLightClass.kt.181 @@ -17,26 +17,22 @@ package org.jetbrains.kotlin.asJava.elements import com.intellij.pom.java.LanguageLevel -import com.intellij.psi.ClassFileViewProvider -import com.intellij.psi.FileViewProvider import com.intellij.psi.PsiElement import com.intellij.psi.PsiElementVisitor import com.intellij.psi.impl.compiled.ClsFileImpl -import com.intellij.psi.impl.source.tree.injected.InjectedFileViewProvider import com.intellij.psi.stubs.PsiClassHolderFileStub import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.utils.addToStdlib.safeAs open class FakeFileForLightClass( val ktFile: KtFile, private val lightClass: () -> KtLightClass, private val stub: () -> PsiClassHolderFileStub<*>, private val packageFqName: FqName = ktFile.packageFqName -) : ClsFileImpl(getFileViewProviderForLightClass(ktFile)) { +) : ClsFileImpl(ktFile.viewProvider) { override fun getPackageName() = packageFqName.asString() override fun getStub() = stub() @@ -85,10 +81,3 @@ open class FakeFileForLightClass( override fun isPhysical() = false } - -fun getFileViewProviderForLightClass(ktFile: KtFile): FileViewProvider { - ktFile.viewProvider.safeAs()?.let { return it } - return ClassFileViewProvider( - ktFile.manager, ktFile.virtualFile ?: ktFile.originalFile.virtualFile ?: ktFile.viewProvider.virtualFile - ) -} \ No newline at end of file