From 02a206bf7c46d46d56812e3985ceb56f7799ce0a Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 28 Mar 2019 14:15:47 +0300 Subject: [PATCH] New J2K: Fix converters spliting --- idea/build.gradle.kts | 1 + .../jetbrains/kotlin/j2k/JavaToKotlinConverter.kt | 8 ++++++-- nj2k/build.gradle.kts | 15 +++++---------- .../kotlin/nj2k/NewJavaToKotlinConverter.kt | 5 +++++ 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/idea/build.gradle.kts b/idea/build.gradle.kts index f3aa00daa5a..f2bc4359b44 100644 --- a/idea/build.gradle.kts +++ b/idea/build.gradle.kts @@ -96,6 +96,7 @@ dependencies { testRuntime(project(":idea:idea-android")) { isTransitive = false } testRuntime(project(":plugins:lint")) { isTransitive = false } testRuntime(project(":plugins:uast-kotlin")) + testRuntime(project(":nj2k:nj2k-services")) { isTransitive = false } (rootProject.extra["compilerModules"] as Array).forEach { testRuntime(project(it)) diff --git a/j2k/src/org/jetbrains/kotlin/j2k/JavaToKotlinConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/JavaToKotlinConverter.kt index 5dabb8a3822..0f01f009004 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/JavaToKotlinConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/JavaToKotlinConverter.kt @@ -67,6 +67,7 @@ data class FilesResult(val results: List, val externalCodeProcessing: Ex abstract class JavaToKotlinConverter(private val project: Project) { protected abstract fun elementsToKotlin(inputElements: List, processor: WithProgressProcessor): Result + protected abstract fun createDummyKtFile(text: String, project: Project, context: PsiElement): KtFile private val LOG = Logger.getInstance("#org.jetbrains.kotlin.j2k.JavaToKotlinConverter") @@ -84,7 +85,7 @@ abstract class JavaToKotlinConverter(private val project: Project) { val (i, result) = pair try { val kotlinFile = ApplicationManager.getApplication().runReadAction(Computable { - KtPsiFactory(project).createFileWithLightClassSupport("dummy.kt", result!!.text, files[i]) + createDummyKtFile(result!!.text, project, files[i]) }) @@ -119,7 +120,10 @@ class OldJavaToKotlinConverter( private val services: JavaToKotlinConverterServices ) : JavaToKotlinConverter(project) { - protected override fun elementsToKotlin(inputElements: List, processor: WithProgressProcessor): Result { + override fun createDummyKtFile(text: String, project: Project, context: PsiElement): KtFile = + KtPsiFactory(project).createAnalyzableFile("dummy.kt", text, context) + + override fun elementsToKotlin(inputElements: List, processor: WithProgressProcessor): Result { try { val usageProcessings = LinkedHashMap>() val usageProcessingCollector: (UsageProcessing) -> Unit = { diff --git a/nj2k/build.gradle.kts b/nj2k/build.gradle.kts index b1a57ce6602..4fcfd4a28fc 100644 --- a/nj2k/build.gradle.kts +++ b/nj2k/build.gradle.kts @@ -8,11 +8,9 @@ plugins { dependencies { testRuntime(intellijDep()) - compile(project(":j2k")) - testCompile(files(project(":j2k").dependencyProject.sourceSets.getByName("test").output)) - + compile(kotlinStdlib()) compile(project(":idea:idea-core")) - compile(project(":kotlin-stdlib")) + compile(project(":j2k")) compile(project(":compiler:frontend")) compile(project(":compiler:frontend.java")) compile(project(":compiler:light-classes")) @@ -20,6 +18,7 @@ dependencies { compileOnly(intellijCoreDep()) { includeJars("intellij-core") } testCompile(project(":idea")) + testCompile(projectTests(":j2k")) testCompile(project(":nj2k:nj2k-services")) testCompile(projectTests(":idea:idea-test-framework")) testCompile(project(":compiler:light-classes")) @@ -61,6 +60,7 @@ dependencies { testRuntime(intellijPluginDep("properties")) testRuntime(intellijPluginDep("java-i18n")) testRuntime(intellijPluginDep("java-decompiler")) + testRuntime(project(":plugins:kapt3-idea")) { isTransitive = false } } sourceSets { @@ -73,12 +73,9 @@ projectTest { workingDir = rootDir } + testsJar() - -val test: Test by tasks -val cleanTest by tasks - configureFreeCompilerArg(true, "-Xeffect-system") configureFreeCompilerArg(true, "-Xnew-inference") @@ -93,6 +90,4 @@ fun configureFreeCompilerArg(isEnabled: Boolean, compilerArgument: String) { } } } - ideaPlugin() - diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt index 4ccaf56a034..be40f7ebb41 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt @@ -21,6 +21,8 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.nj2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.prettyDebugPrintTree +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.psi.KtPsiFactory class NewJavaToKotlinConverter( val project: Project, @@ -31,6 +33,9 @@ class NewJavaToKotlinConverter( override val oldServices = oldConverterServices } + override fun createDummyKtFile(text: String, project: Project, context: PsiElement): KtFile = + KtPsiFactory(project).createFileWithLightClassSupport("dummy.kt", text, context) + private fun List.prettyPrintTrees() = buildString { for (tree in this@prettyPrintTrees) { appendln()