New J2K: Separate new j2k from old j2k

This commit is contained in:
Ilya Kirillov
2019-02-04 11:30:59 +03:00
committed by Ilya Kirillov
parent e6f0a242fd
commit c827247272
109 changed files with 909 additions and 558 deletions
@@ -58,10 +58,4 @@ private object IdeaJavaDataFlowAnalyzerFacade : JavaDataFlowAnalyzerFacade {
IntellijNullability.NOT_NULL -> Nullability.NotNull IntellijNullability.NOT_NULL -> Nullability.NotNull
IntellijNullability.NULLABLE -> Nullability.Nullable IntellijNullability.NULLABLE -> Nullability.Nullable
} }
}
object IdeaNewJavaToKotlinServices : NewJavaToKotlinServices {
override val oldServices: JavaToKotlinConverterServices
get() = IdeaJavaToKotlinServices
} }
@@ -16,24 +16,15 @@
package org.jetbrains.kotlin.idea.j2k package org.jetbrains.kotlin.idea.j2k
import com.intellij.codeInsight.actions.OptimizeImportsProcessor import com.intellij.codeInspection.ProblemHighlightType
import com.intellij.codeInspection.*
import com.intellij.codeInspection.ex.LocalInspectionToolWrapper
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiElement
import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.LocalSearchScope
import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.psi.search.searches.ReferencesSearch
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.idea.analysis.analyzeInContext
import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny import org.jetbrains.kotlin.idea.core.moveFunctionLiteralOutsideParenthesesIfPossible
import org.jetbrains.kotlin.idea.core.replaced import org.jetbrains.kotlin.idea.core.replaced
import org.jetbrains.kotlin.idea.core.setVisibility import org.jetbrains.kotlin.idea.core.setVisibility
import org.jetbrains.kotlin.idea.inspections.* import org.jetbrains.kotlin.idea.inspections.*
@@ -44,23 +35,19 @@ import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.F
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody
import org.jetbrains.kotlin.idea.quickfix.ChangeVariableMutabilityFix
import org.jetbrains.kotlin.idea.quickfix.QuickFixActionBase
import org.jetbrains.kotlin.idea.quickfix.RemoveModifierFix import org.jetbrains.kotlin.idea.quickfix.RemoveModifierFix
import org.jetbrains.kotlin.idea.quickfix.RemoveUselessCastFix import org.jetbrains.kotlin.idea.quickfix.RemoveUselessCastFix
import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.idea.references.mainReference
import org.jetbrains.kotlin.idea.util.getResolutionScope
import org.jetbrains.kotlin.j2k.ConversionContext
import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.* import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
import org.jetbrains.kotlin.psi.psiUtil.isAncestor
import org.jetbrains.kotlin.psi.psiUtil.visibilityModifierType
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.calls.callUtil.getType import org.jetbrains.kotlin.resolve.calls.callUtil.getType
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.types.isNullable
import org.jetbrains.kotlin.types.typeUtil.makeNotNullable
import org.jetbrains.kotlin.utils.mapToIndex import org.jetbrains.kotlin.utils.mapToIndex
import java.util.* import java.util.*
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.idea.j2k package org.jetbrains.kotlin.idea.j2k
import com.intellij.codeInsight.actions.OptimizeImportsProcessor
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.ModalityState import com.intellij.openapi.application.ModalityState
import com.intellij.openapi.editor.RangeMarker import com.intellij.openapi.editor.RangeMarker
@@ -33,8 +32,6 @@ import org.jetbrains.kotlin.idea.core.util.EDT
import org.jetbrains.kotlin.idea.util.ImportInsertHelper import org.jetbrains.kotlin.idea.util.ImportInsertHelper
import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.j2k.ConversionContext
import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.j2k.PostProcessor import org.jetbrains.kotlin.j2k.PostProcessor
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtElement
@@ -43,10 +40,7 @@ import org.jetbrains.kotlin.psi.psiUtil.elementsInRange
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import java.util.* import java.util.*
class J2kPostProcessor( class J2kPostProcessor(private val formatCode: Boolean) : PostProcessor {
private val formatCode: Boolean,
private val postProcessingRegistrar: J2KPostProcessingRegistrar = J2KPostProcessingRegistrarImpl
) : PostProcessor {
override fun insertImport(file: KtFile, fqName: FqName) { override fun insertImport(file: KtFile, fqName: FqName) {
ApplicationManager.getApplication().invokeAndWait { ApplicationManager.getApplication().invokeAndWait {
runWriteAction { runWriteAction {
@@ -62,49 +56,36 @@ class J2kPostProcessor(
PROCESS PROCESS
} }
override fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?) =
override fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?,settings: ConverterSettings??) {
fun Processing.flattenToGroups(): List<List<J2kPostProcessing>> =
when (this) {
is SingleProcessing -> listOf(listOf(this.processing))
is ProcessingGroup ->
if (processings.all { it is SingleProcessing }) {
listOf(processings.map { (it as SingleProcessing).processing })
} else {
processings.flatMap { it.flattenToGroups() }
}
else -> error("Processing tree is corrupted")
}
OptimizeImportsProcessor(file.project, file.containingKtFile).run()
val groupsOfProcessings = postProcessingRegistrar.mainProcessings.flattenToGroups()
runBlocking(EDT.ModalityStateElement(ModalityState.defaultModalityState())) { runBlocking(EDT.ModalityStateElement(ModalityState.defaultModalityState())) {
for (processings in groupsOfProcessings) { do {
do { var modificationStamp: Long? = file.modificationStamp
var modificationStamp: Long? = file.modificationStamp val elementToActions = runReadAction {
val elementToActions = runReadAction { collectAvailableActions(file, rangeMarker)
collectAvailableActions(processings, file, rangeMarker, settings) }
}
withContext(EDT) { withContext(EDT) {
for ((element, action, _, writeActionNeeded) in elementToActions) { for ((element, action, _, writeActionNeeded) in elementToActions) {
if (element.isValid) { if (element.isValid) {
if (writeActionNeeded) { if (writeActionNeeded) {
runWriteAction { runWriteAction {
action()
}
} else {
action() action()
} }
} else { }
modificationStamp = null else {
action()
} }
} }
else {
modificationStamp = null
}
} }
}
if (modificationStamp == file.modificationStamp) break if (modificationStamp == file.modificationStamp) break
} while (elementToActions.isNotEmpty())
} }
while (elementToActions.isNotEmpty())
if (formatCode) { if (formatCode) {
withContext(EDT) { withContext(EDT) {
@@ -114,7 +95,8 @@ class J2kPostProcessor(
if (rangeMarker.isValid) { if (rangeMarker.isValid) {
codeStyleManager.reformatRange(file, rangeMarker.startOffset, rangeMarker.endOffset) codeStyleManager.reformatRange(file, rangeMarker.startOffset, rangeMarker.endOffset)
} }
} else { }
else {
codeStyleManager.reformat(file) codeStyleManager.reformat(file)
} }
Unit Unit
@@ -122,17 +104,11 @@ class J2kPostProcessor(
} }
} }
} }
}
private data class ActionData(val element: KtElement, val action: () -> Unit, val priority: Int, val writeActionNeeded: Boolean) private data class ActionData(val element: KtElement, val action: () -> Unit, val priority: Int, val writeActionNeeded: Boolean)
private fun collectAvailableActions( private fun collectAvailableActions(file: KtFile, rangeMarker: RangeMarker?): List<ActionData> {
processings: Collection<J2kPostProcessing>,
file: KtFile,
rangeMarker: RangeMarker?,
settings: ConverterSettings??
): List<ActionData> {
val diagnostics = analyzeFileRange(file, rangeMarker) val diagnostics = analyzeFileRange(file, rangeMarker)
val availableActions = ArrayList<ActionData>() val availableActions = ArrayList<ActionData>()
@@ -146,16 +122,12 @@ class J2kPostProcessor(
super.visitElement(element) super.visitElement(element)
if (rangeResult == RangeFilterResult.PROCESS) { if (rangeResult == RangeFilterResult.PROCESS) {
processings.forEach { processing -> J2KPostProcessingRegistrar.processings.forEach { processing ->
val action = processing.createAction(element, diagnostics, settings) val action = processing.createAction(element, diagnostics)
if (action != null) { if (action != null) {
availableActions.add( availableActions.add(ActionData(element, action,
ActionData( J2KPostProcessingRegistrar.priority(processing),
element, action, processing.writeActionNeeded))
postProcessingRegistrar.priority(processing),
processing.writeActionNeeded
)
)
} }
} }
} }
@@ -1154,7 +1154,7 @@ internal fun <D : KtNamedDeclaration> placeDeclarationInContainer(
return declarationInPlace return declarationInPlace
} }
internal fun KtNamedDeclaration.getReturnTypeReference() = getReturnTypeReferences().singleOrNull() fun KtNamedDeclaration.getReturnTypeReference() = getReturnTypeReferences().singleOrNull()
internal fun KtNamedDeclaration.getReturnTypeReferences(): List<KtTypeReference> { internal fun KtNamedDeclaration.getReturnTypeReferences(): List<KtTypeReference> {
return when (this) { return when (this) {
@@ -33,6 +33,6 @@ class AfterConversionPass(val project: Project, val postProcessor: PostProcessor
null null
} }
postProcessor.doAdditionalProcessing(kotlinFile, rangeMarker, null) postProcessor.doAdditionalProcessing(kotlinFile, rangeMarker)
} }
} }
@@ -39,7 +39,7 @@ import java.util.*
interface PostProcessor { interface PostProcessor {
fun insertImport(file: KtFile, fqName: FqName) fun insertImport(file: KtFile, fqName: FqName)
fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?, settings: ConverterSettings?) fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?)
} }
enum class ParseContext { enum class ParseContext {
@@ -48,9 +48,9 @@ enum class ParseContext {
} }
class JavaToKotlinConverter( class JavaToKotlinConverter(
private val project: Project, private val project: Project,
private val settings: ConverterSettings, private val settings: ConverterSettings,
private val services: JavaToKotlinConverterServices private val services: JavaToKotlinConverterServices
) { ) {
private val LOG = Logger.getInstance("#org.jetbrains.kotlin.j2k.JavaToKotlinConverter") private val LOG = Logger.getInstance("#org.jetbrains.kotlin.j2k.JavaToKotlinConverter")
@@ -141,25 +141,25 @@ class JavaToKotlinConverter(
} }
private data class ReferenceInfo( private data class ReferenceInfo(
val reference: PsiReference, val reference: PsiReference,
val target: PsiElement, val target: PsiElement,
val file: PsiFile, val file: PsiFile,
val processings: Collection<UsageProcessing> val processings: Collection<UsageProcessing>
) { ) {
val depth: Int by lazy(LazyThreadSafetyMode.NONE) { target.parentsWithSelf.takeWhile { it !is PsiFile }.count() } val depth: Int by lazy(LazyThreadSafetyMode.NONE) { target.parentsWithSelf.takeWhile { it !is PsiFile }.count() }
val offset: Int by lazy(LazyThreadSafetyMode.NONE) { reference.element.textRange.startOffset } val offset: Int by lazy(LazyThreadSafetyMode.NONE) { reference.element.textRange.startOffset }
} }
private fun buildExternalCodeProcessing( private fun buildExternalCodeProcessing(
usageProcessings: Map<PsiElement, Collection<UsageProcessing>>, usageProcessings: Map<PsiElement, Collection<UsageProcessing>>,
inConversionScope: (PsiElement) -> Boolean inConversionScope: (PsiElement) -> Boolean
): ExternalCodeProcessing? { ): ExternalCodeProcessing? {
if (usageProcessings.isEmpty()) return null if (usageProcessings.isEmpty()) return null
val map: Map<PsiElement, Collection<UsageProcessing>> = usageProcessings.values val map: Map<PsiElement, Collection<UsageProcessing>> = usageProcessings.values
.flatten() .flatten()
.filter { it.javaCodeProcessors.isNotEmpty() || it.kotlinCodeProcessors.isNotEmpty() } .filter { it.javaCodeProcessors.isNotEmpty() || it.kotlinCodeProcessors.isNotEmpty() }
.groupBy { it.targetElement } .groupBy { it.targetElement }
if (map.isEmpty()) return null if (map.isEmpty()) return null
return object: ExternalCodeProcessing { return object: ExternalCodeProcessing {
@@ -176,14 +176,14 @@ class JavaToKotlinConverter(
progress.checkCanceled() progress.checkCanceled()
ProgressManager.getInstance().runProcess( ProgressManager.getInstance().runProcess(
{ {
val searchJava = processings.any { it.javaCodeProcessors.isNotEmpty() } val searchJava = processings.any { it.javaCodeProcessors.isNotEmpty() }
val searchKotlin = processings.any { it.kotlinCodeProcessors.isNotEmpty() } val searchKotlin = processings.any { it.kotlinCodeProcessors.isNotEmpty() }
services.referenceSearcher.findUsagesForExternalCodeProcessing(psiElement, searchJava, searchKotlin) services.referenceSearcher.findUsagesForExternalCodeProcessing(psiElement, searchJava, searchKotlin)
.filterNot { inConversionScope(it.element) } .filterNot { inConversionScope(it.element) }
.mapTo(refs) { ReferenceInfo(it, psiElement, it.element.containingFile, processings) } .mapTo(refs) { ReferenceInfo(it, psiElement, it.element.containingFile, processings) }
}, },
ProgressPortionReporter(progress, i / map.size.toDouble(), 1.0 / map.size)) ProgressPortionReporter(progress, i / map.size.toDouble(), 1.0 / map.size))
} }
@@ -245,37 +245,37 @@ class JavaToKotlinConverter(
private var pass = 1 private var pass = 1
fun <TInputItem, TOutputItem> processItems( fun <TInputItem, TOutputItem> processItems(
fractionPortion: Double, fractionPortion: Double,
inputItems: Iterable<TInputItem>, inputItems: Iterable<TInputItem>,
processItem: (TInputItem) -> TOutputItem processItem: (TInputItem) -> TOutputItem
): List<TOutputItem> { ): List<TOutputItem> {
val outputItems = ArrayList<TOutputItem>() val outputItems = ArrayList<TOutputItem>()
// we use special process with EmptyProgressIndicator to avoid changing text in our progress by inheritors search inside etc // we use special process with EmptyProgressIndicator to avoid changing text in our progress by inheritors search inside etc
ProgressManager.getInstance().runProcess( ProgressManager.getInstance().runProcess(
{ {
progress?.text = "$progressText ($fileCountText) - pass $pass of 3" progress?.text = "$progressText ($fileCountText) - pass $pass of 3"
for ((i, item) in inputItems.withIndex()) { for ((i, item) in inputItems.withIndex()) {
progress?.checkCanceled() progress?.checkCanceled()
progress?.fraction = fraction + fractionPortion * i / fileCount progress?.fraction = fraction + fractionPortion * i / fileCount
progress?.text2 = files!![i].virtualFile.presentableUrl progress?.text2 = files!![i].virtualFile.presentableUrl
outputItems.add(processItem(item)) outputItems.add(processItem(item))
} }
pass++ pass++
fraction += fractionPortion fraction += fractionPortion
}, },
EmptyProgressIndicator()) EmptyProgressIndicator())
return outputItems return outputItems
} }
} }
private class ProgressPortionReporter( private class ProgressPortionReporter(
indicator: ProgressIndicator, indicator: ProgressIndicator,
private val start: Double, private val start: Double,
private val portion: Double private val portion: Double
) : DelegatingProgressIndicator(indicator) { ) : DelegatingProgressIndicator(indicator) {
init { init {
@@ -1,5 +1,6 @@
// !forceNotNullTypes: false // !forceNotNullTypes: false
// !specifyLocalVariableTypeByDefault: true // !specifyLocalVariableTypeByDefault: true
import java.util.HashSet;
class Foo { class Foo {
void foo(HashSet o) { void foo(HashSet o) {
+1 -1
View File
@@ -1,6 +1,6 @@
package test package test
import javaApi.Listener import javaApi.*
class Test { class Test {
private val listener = Listener { visibility -> val a = visibility and 1 } private val listener = Listener { visibility -> val a = visibility and 1 }
+95
View File
@@ -0,0 +1,95 @@
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
plugins {
kotlin("jvm")
id("jps-compatible")
}
dependencies {
testRuntime(intellijDep())
compile(project(":j2k"))
testCompile(files(project(":j2k").dependencyProject.sourceSets.getByName("test").output))
compile(project(":idea:idea-core"))
compile(project(":kotlin-stdlib"))
compile(project(":compiler:frontend"))
compile(project(":compiler:frontend.java"))
compile(project(":compiler:light-classes"))
compile(project(":compiler:util"))
compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
testCompile(project(":idea"))
compile(project(":nj2k:nj2k-services"))
testCompile(projectTests(":idea:idea-test-framework"))
testCompile(project(":compiler:light-classes"))
testCompile(project(":kotlin-test:kotlin-test-junit"))
testCompile(commonDep("junit:junit"))
when {
Ide.IJ181.orHigher() || Ide.AS33.orHigher() -> testCompileOnly(intellijDep()) { includeJars("platform-api", "platform-impl") }
Ide.AS32() -> testCompileOnly(intellijDep()) { includeJars("idea") }
}
testCompile(project(":idea:idea-native")) { isTransitive = false }
testCompile(project(":idea:idea-gradle-native")) { isTransitive = false }
testRuntime(project(":kotlin-native:kotlin-native-library-reader")) { isTransitive = false }
testRuntime(project(":kotlin-native:kotlin-native-utils")) { isTransitive = false }
testRuntime(project(":plugins:kapt3-idea")) { isTransitive = false }
testRuntime(project(":idea:idea-jvm"))
testRuntime(project(":idea:idea-android"))
testRuntime(project(":plugins:android-extensions-ide"))
testRuntime(project(":sam-with-receiver-ide-plugin"))
testRuntime(project(":allopen-ide-plugin"))
testRuntime(project(":noarg-ide-plugin"))
testRuntime(project(":kotlin-scripting-idea"))
testRuntime(project(":kotlinx-serialization-ide-plugin"))
testRuntime(intellijPluginDep("properties"))
testRuntime(intellijPluginDep("gradle"))
testRuntime(intellijPluginDep("Groovy"))
testRuntime(intellijPluginDep("coverage"))
Ide.IJ {
testRuntime(intellijPluginDep("maven"))
}
testRuntime(intellijPluginDep("android"))
testRuntime(intellijPluginDep("smali"))
testRuntime(intellijPluginDep("junit"))
testRuntime(intellijPluginDep("testng"))
testRuntime(intellijPluginDep("IntelliLang"))
testRuntime(intellijPluginDep("testng"))
testRuntime(intellijPluginDep("copyright"))
testRuntime(intellijPluginDep("properties"))
testRuntime(intellijPluginDep("java-i18n"))
testRuntime(intellijPluginDep("java-decompiler"))
}
sourceSets {
"main" { projectDefault() }
"test" { projectDefault() }
}
projectTest {
dependsOn(":dist")
workingDir = rootDir
}
testsJar()
val test: Test by tasks
val cleanTest by tasks
configureFreeCompilerArg(true, "-Xeffect-system")
configureFreeCompilerArg(true, "-Xnew-inference")
fun configureFreeCompilerArg(isEnabled: Boolean, compilerArgument: String) {
if (isEnabled) {
allprojects {
tasks.withType<KotlinCompile<*>> {
kotlinOptions {
freeCompilerArgs += listOf(compilerArgument)
}
}
}
}
}
+76
View File
@@ -0,0 +1,76 @@
plugins {
kotlin("jvm")
id("jps-compatible")
}
dependencies {
testRuntime(intellijDep())
compile(project(":kotlin-stdlib-jdk8"))
compileOnly(project(":kotlin-reflect-api"))
compile(project(":core:descriptors"))
compile(project(":core:descriptors.jvm"))
compile(project(":compiler:backend"))
compile(project(":compiler:cli-common"))
compile(project(":compiler:frontend"))
compile(project(":compiler:frontend.common"))
compile(project(":compiler:frontend.java"))
compile(project(":compiler:frontend.script"))
compile(project(":js:js.frontend"))
compile(project(":js:js.serializer"))
compile(project(":compiler:light-classes"))
compile(project(":compiler:util"))
compile(project(":kotlin-build-common"))
compile(project(":compiler:daemon-common"))
compile(projectRuntimeJar(":kotlin-daemon-client"))
compile(project(":kotlin-compiler-runner")) { isTransitive = false }
compile(project(":compiler:plugin-api"))
compile(project(":eval4j"))
compile(project(":j2k"))
compile(project(":idea"))
compile(project(":idea:formatter"))
compile(project(":idea:fir-view"))
compile(project(":idea:idea-core"))
compile(project(":idea:ide-common"))
compile(project(":idea:idea-jps-common"))
compile(project(":idea:kotlin-gradle-tooling"))
compile(project(":plugins:uast-kotlin"))
compile(project(":plugins:uast-kotlin-idea"))
compile(project(":kotlin-script-util")) { isTransitive = false }
compile(project(":kotlin-scripting-intellij"))
compile(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false }
compileOnly(project(":kotlin-daemon-client"))
compileOnly(intellijDep())
compileOnly(commonDep("com.google.code.findbugs", "jsr305"))
compileOnly(intellijPluginDep("IntelliLang"))
compileOnly(intellijPluginDep("copyright"))
compileOnly(intellijPluginDep("properties"))
compileOnly(intellijPluginDep("java-i18n"))
testCompile(project(":kotlin-test:kotlin-test-junit"))
testCompile(projectTests(":compiler:tests-common"))
testCompile(projectTests(":idea:idea-test-framework")) { isTransitive = false }
testCompile(project(":idea:idea-jvm")) { isTransitive = false }
testCompile(project(":idea:idea-gradle")) { isTransitive = false }
testCompile(project(":idea:idea-maven")) { isTransitive = false }
testCompile(project(":idea:idea-native")) { isTransitive = false }
testCompile(project(":idea:idea-gradle-native")) { isTransitive = false }
testCompile(commonDep("junit:junit"))
testRuntime(commonDep("org.jetbrains", "markdown"))
testRuntime(project(":plugins:kapt3-idea")) { isTransitive = false }
testRuntime(project(":kotlin-reflect"))
testRuntime(project(":kotlin-preloader"))
testCompile(project(":kotlin-sam-with-receiver-compiler-plugin")) { isTransitive = false }
}
sourceSets {
"main" { projectDefault() }
}
@@ -0,0 +1,19 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.nj2k
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
import org.jetbrains.kotlin.j2k.JavaToKotlinConverterServices
interface NewJavaToKotlinServices {
val oldServices: JavaToKotlinConverterServices
}
object IdeaNewJavaToKotlinServices : NewJavaToKotlinServices {
override val oldServices: JavaToKotlinConverterServices
get() = IdeaJavaToKotlinServices
}
@@ -0,0 +1,192 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.nj2k
import com.intellij.codeInsight.actions.OptimizeImportsProcessor
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.ModalityState
import com.intellij.openapi.editor.RangeMarker
import com.intellij.openapi.util.TextRange
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiRecursiveElementVisitor
import com.intellij.psi.codeStyle.CodeStyleManager
import kotlinx.coroutines.experimental.withContext
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
import org.jetbrains.kotlin.idea.conversion.copy.range
import org.jetbrains.kotlin.idea.core.util.EDT
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.j2k.PostProcessor
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.psiUtil.elementsInRange
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import java.util.*
class NewJ2kPostProcessor(
private val formatCode: Boolean,
private val settings: ConverterSettings?
) : PostProcessor {
override fun insertImport(file: KtFile, fqName: FqName) {
ApplicationManager.getApplication().invokeAndWait {
runWriteAction {
val descriptors = file.resolveImportReference(fqName)
descriptors.firstOrNull()?.let { ImportInsertHelper.getInstance(file.project).importDescriptor(file, it) }
}
}
}
private enum class RangeFilterResult {
SKIP,
GO_INSIDE,
PROCESS
}
override fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?) {
fun Processing.flattenToGroups(): List<List<NewJ2kPostProcessing>> =
when (this) {
is SingleProcessing -> listOf(listOf(this.processing))
is ProcessingGroup ->
if (processings.all { it is SingleProcessing }) {
listOf(processings.map { (it as SingleProcessing).processing })
} else {
processings.flatMap { it.flattenToGroups() }
}
else -> error("Processing tree is corrupted")
}
OptimizeImportsProcessor(file.project, file.containingKtFile).run()
val groupsOfProcessings = NewJ2KPostProcessingRegistrar.mainProcessings.flattenToGroups()
runBlocking(EDT.ModalityStateElement(ModalityState.defaultModalityState())) {
for (processings in groupsOfProcessings) {
do {
var modificationStamp: Long? = file.modificationStamp
val elementToActions = runReadAction {
collectAvailableActions(processings, file, rangeMarker)
}
withContext(EDT) {
for ((element, action, _, writeActionNeeded) in elementToActions) {
if (element.isValid) {
if (writeActionNeeded) {
runWriteAction {
action()
}
} else {
action()
}
} else {
modificationStamp = null
}
}
}
if (modificationStamp == file.modificationStamp) break
} while (elementToActions.isNotEmpty())
}
if (formatCode) {
withContext(EDT) {
runWriteAction {
val codeStyleManager = CodeStyleManager.getInstance(file.project)
if (rangeMarker != null) {
if (rangeMarker.isValid) {
codeStyleManager.reformatRange(file, rangeMarker.startOffset, rangeMarker.endOffset)
}
} else {
codeStyleManager.reformat(file)
}
Unit
}
}
}
}
}
private data class ActionData(val element: KtElement, val action: () -> Unit, val priority: Int, val writeActionNeeded: Boolean)
private fun collectAvailableActions(
processings: Collection<NewJ2kPostProcessing>,
file: KtFile,
rangeMarker: RangeMarker?
): List<ActionData> {
val diagnostics = analyzeFileRange(file, rangeMarker)
val availableActions = ArrayList<ActionData>()
file.accept(object : PsiRecursiveElementVisitor() {
override fun visitElement(element: PsiElement) {
if (element is KtElement) {
val rangeResult = rangeFilter(element, rangeMarker)
if (rangeResult == RangeFilterResult.SKIP) return
super.visitElement(element)
if (rangeResult == RangeFilterResult.PROCESS) {
processings.forEach { processing ->
val action = processing.createAction(element, diagnostics, settings)
if (action != null) {
availableActions.add(
ActionData(
element, action,
NewJ2KPostProcessingRegistrar.priority(processing),
processing.writeActionNeeded
)
)
}
}
}
}
}
})
availableActions.sortBy { it.priority }
return availableActions
}
private fun analyzeFileRange(file: KtFile, rangeMarker: RangeMarker?): Diagnostics {
val elements = if (rangeMarker == null)
listOf(file)
else
file.elementsInRange(rangeMarker.range!!).filterIsInstance<KtElement>()
return if (elements.isNotEmpty())
file.getResolutionFacade().analyzeWithAllCompilerChecks(elements).bindingContext.diagnostics
else
Diagnostics.EMPTY
}
private fun rangeFilter(element: PsiElement, rangeMarker: RangeMarker?): RangeFilterResult {
if (rangeMarker == null) return RangeFilterResult.PROCESS
if (!rangeMarker.isValid) return RangeFilterResult.SKIP
val range = TextRange(rangeMarker.startOffset, rangeMarker.endOffset)
val elementRange = element.textRange
return when {
range.contains(elementRange) -> RangeFilterResult.PROCESS
range.intersects(elementRange) -> RangeFilterResult.GO_INSIDE
else -> RangeFilterResult.SKIP
}
}
}
@@ -1,20 +1,9 @@
/* /*
* Copyright 2010-2015 JetBrains s.r.o. * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* * that can be found in the license/LICENSE.txt file.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/ */
package org.jetbrains.kotlin.idea.j2k package org.jetbrains.kotlin.nj2k
import com.intellij.codeInsight.actions.OptimizeImportsProcessor import com.intellij.codeInsight.actions.OptimizeImportsProcessor
import com.intellij.codeInspection.* import com.intellij.codeInspection.*
@@ -43,16 +32,16 @@ import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.F
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody
import org.jetbrains.kotlin.idea.j2k.postProcessing.ConvertDataClass
import org.jetbrains.kotlin.idea.j2k.postProcessing.ConvertGettersAndSetters
import org.jetbrains.kotlin.idea.j2k.postProcessing.resolve
import org.jetbrains.kotlin.idea.j2k.postProcessing.topLevelContainingClassOrObject
import org.jetbrains.kotlin.idea.quickfix.* import org.jetbrains.kotlin.idea.quickfix.*
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.idea.references.mainReference
import org.jetbrains.kotlin.idea.references.readWriteAccess import org.jetbrains.kotlin.idea.references.readWriteAccess
import org.jetbrains.kotlin.idea.util.getResolutionScope import org.jetbrains.kotlin.idea.util.getResolutionScope
import org.jetbrains.kotlin.j2k.ConverterSettings import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.nj2k.postProcessing.ConvertDataClass
import org.jetbrains.kotlin.nj2k.postProcessing.ConvertGettersAndSetters
import org.jetbrains.kotlin.nj2k.postProcessing.resolve
import org.jetbrains.kotlin.nj2k.postProcessing.topLevelContainingClassOrObject
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.* import org.jetbrains.kotlin.psi.psiUtil.*
@@ -65,9 +54,25 @@ import org.jetbrains.kotlin.types.typeUtil.makeNotNullable
import org.jetbrains.kotlin.utils.mapToIndex import org.jetbrains.kotlin.utils.mapToIndex
import java.util.* import java.util.*
object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar { interface NewJ2kPostProcessing {
fun createAction(element: KtElement, diagnostics: Diagnostics, settings: ConverterSettings?): (() -> Unit)? =
createAction(element, diagnostics)
private fun Processing.processings(): Sequence<J2kPostProcessing> = fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? =
createAction(element, diagnostics, null)
val writeActionNeeded: Boolean
}
interface Processing
data class SingleProcessing(val processing: NewJ2kPostProcessing) : Processing
data class ProcessingGroup(val processings: List<Processing>) : Processing {
constructor(vararg processings: Processing) : this(processings.toList())
}
object NewJ2KPostProcessingRegistrar {
private fun Processing.processings(): Sequence<NewJ2kPostProcessing> =
when (this) { when (this) {
is SingleProcessing -> sequenceOf(processing) is SingleProcessing -> sequenceOf(processing)
is ProcessingGroup -> processings.asSequence().flatMap { it.processings() } is ProcessingGroup -> processings.asSequence().flatMap { it.processings() }
@@ -75,11 +80,11 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
private val processingsToPriorityMap = HashMap<J2kPostProcessing, Int>() private val processingsToPriorityMap = HashMap<NewJ2kPostProcessing, Int>()
override fun priority(processing: J2kPostProcessing): Int = processingsToPriorityMap[processing]!! fun priority(processing: NewJ2kPostProcessing): Int = processingsToPriorityMap[processing]!!
override val mainProcessings = ProcessingGroup( val mainProcessings = ProcessingGroup(
SingleProcessing(VarToVal()), SingleProcessing(VarToVal()),
ProcessingGroup( ProcessingGroup(
SingleProcessing(ConvertGettersAndSetters()), SingleProcessing(ConvertGettersAndSetters()),
@@ -107,7 +112,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
SingleProcessing(UseExpressionBodyProcessing()), SingleProcessing(UseExpressionBodyProcessing()),
registerInspectionBasedProcessing(UnnecessaryVariableInspection()), registerInspectionBasedProcessing(UnnecessaryVariableInspection()),
SingleProcessing( SingleProcessing(
object : J2kPostProcessing { object : NewJ2kPostProcessing {
override val writeActionNeeded: Boolean = true override val writeActionNeeded: Boolean = true
private val processing = registerGeneralInspectionBasedProcessing(RedundantExplicitTypeInspection()) private val processing = registerGeneralInspectionBasedProcessing(RedundantExplicitTypeInspection())
@@ -210,17 +215,18 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
}, },
registerDiagnosticBasedProcessingFactory( registerDiagnosticBasedProcessingFactory(
Errors.VAL_REASSIGNMENT, Errors.CAPTURED_VAL_INITIALIZATION, Errors.CAPTURED_MEMBER_VAL_INITIALIZATION Errors.VAL_REASSIGNMENT, Errors.CAPTURED_VAL_INITIALIZATION, Errors.CAPTURED_MEMBER_VAL_INITIALIZATION
) { element: KtSimpleNameExpression, _: Diagnostic -> ) { element: KtSimpleNameExpression, _: Diagnostic ->
val property = element.mainReference.resolve() as? KtProperty val property = element.mainReference.resolve() as? KtProperty
if (property == null) { if (property == null) {
null null
} else { } else {
{ val action = {
if (!property.isVar) { if (!property.isVar) {
property.valOrVarKeyword.replace(KtPsiFactory(element.project).createVarKeyword()) property.valOrVarKeyword.replace(KtPsiFactory(element.project).createVarKeyword())
} }
} }
action
} }
}, },
@@ -235,7 +241,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
) )
) )
override val processings: Collection<J2kPostProcessing> = val processings: Collection<NewJ2kPostProcessing> =
mainProcessings.processings().toList() mainProcessings.processings().toList()
@@ -247,7 +253,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
private inline fun <reified TElement : KtElement, TIntention : SelfTargetingRangeIntention<TElement>> registerIntentionBasedProcessing( private inline fun <reified TElement : KtElement, TIntention : SelfTargetingRangeIntention<TElement>> registerIntentionBasedProcessing(
intention: TIntention, intention: TIntention,
noinline additionalChecker: (TElement) -> Boolean = { true } noinline additionalChecker: (TElement) -> Boolean = { true }
) = SingleProcessing(object : J2kPostProcessing { ) = SingleProcessing(object : NewJ2kPostProcessing {
// Intention can either need or not need write action // Intention can either need or not need write action
override val writeActionNeeded = intention.startInWriteAction() override val writeActionNeeded = intention.startInWriteAction()
@@ -269,7 +275,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
private inline fun <TInspection : AbstractKotlinInspection> registerGeneralInspectionBasedProcessing( private inline fun <TInspection : AbstractKotlinInspection> registerGeneralInspectionBasedProcessing(
inspection: TInspection, inspection: TInspection,
acceptInformationLevel: Boolean = false acceptInformationLevel: Boolean = false
) = SingleProcessing(object : J2kPostProcessing { ) = SingleProcessing(object : NewJ2kPostProcessing {
override val writeActionNeeded = false override val writeActionNeeded = false
fun <D : CommonProblemDescriptor> QuickFix<D>.applyFixSmart(project: Project, descriptor: D) { fun <D : CommonProblemDescriptor> QuickFix<D>.applyFixSmart(project: Project, descriptor: D) {
@@ -341,7 +347,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
inspection: TInspection, inspection: TInspection,
acceptInformationLevel: Boolean = false acceptInformationLevel: Boolean = false
) = SingleProcessing(object : J2kPostProcessing { ) = SingleProcessing(object : NewJ2kPostProcessing {
// Inspection can either need or not need write action // Inspection can either need or not need write action
override val writeActionNeeded = inspection.startFixInWriteAction override val writeActionNeeded = inspection.startFixInWriteAction
@@ -379,7 +385,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
private inline fun <reified TElement : KtElement> registerDiagnosticBasedProcessingFactory( private inline fun <reified TElement : KtElement> registerDiagnosticBasedProcessingFactory(
vararg diagnosticFactory: DiagnosticFactory<*>, vararg diagnosticFactory: DiagnosticFactory<*>,
crossinline fixFactory: (TElement, Diagnostic) -> (() -> Unit)? crossinline fixFactory: (TElement, Diagnostic) -> (() -> Unit)?
) = SingleProcessing(object : J2kPostProcessing { ) = SingleProcessing(object : NewJ2kPostProcessing {
// ??? // ???
override val writeActionNeeded = true override val writeActionNeeded = true
@@ -391,7 +397,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
}) })
private class RemoveExplicitPropertyType : J2kPostProcessing { private class RemoveExplicitPropertyType : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
override fun createAction(element: KtElement, diagnostics: Diagnostics, settings: ConverterSettings?): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics, settings: ConverterSettings?): (() -> Unit)? {
@@ -425,7 +431,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
private class RemoveRedundantNullability : J2kPostProcessing { private class RemoveRedundantNullability : NewJ2kPostProcessing {
override val writeActionNeeded: Boolean = true override val writeActionNeeded: Boolean = true
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
@@ -463,7 +469,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class RemoveExplicitTypeArgumentsProcessing : J2kPostProcessing { private class RemoveExplicitTypeArgumentsProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
@@ -481,7 +487,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class RemoveRedundantOverrideVisibilityProcessing : J2kPostProcessing { private class RemoveRedundantOverrideVisibilityProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
@@ -491,7 +497,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class ConvertToStringTemplateProcessing : J2kPostProcessing { private class ConvertToStringTemplateProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
private val intention = ConvertToStringTemplateIntention() private val intention = ConvertToStringTemplateIntention()
@@ -508,7 +514,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class UsePropertyAccessSyntaxProcessing : J2kPostProcessing { private class UsePropertyAccessSyntaxProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
private val intention = UsePropertyAccessSyntaxIntention() private val intention = UsePropertyAccessSyntaxIntention()
@@ -520,7 +526,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class RemoveRedundantSamAdaptersProcessing : J2kPostProcessing { private class RemoveRedundantSamAdaptersProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
@@ -536,7 +542,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class UseExpressionBodyProcessing : J2kPostProcessing { private class UseExpressionBodyProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
@@ -553,7 +559,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class RemoveRedundantCastToNullableProcessing : J2kPostProcessing { private class RemoveRedundantCastToNullableProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
@@ -574,7 +580,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class FixObjectStringConcatenationProcessing : J2kPostProcessing { private class FixObjectStringConcatenationProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
@@ -604,7 +610,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class UninitializedVariableReferenceFromInitializerToThisReferenceProcessing : J2kPostProcessing { private class UninitializedVariableReferenceFromInitializerToThisReferenceProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
@@ -624,7 +630,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class UnresolvedVariableReferenceFromInitializerToThisReferenceProcessing : J2kPostProcessing { private class UnresolvedVariableReferenceFromInitializerToThisReferenceProcessing : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
@@ -644,7 +650,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class VarToVal : J2kPostProcessing { private class VarToVal : NewJ2kPostProcessing {
override val writeActionNeeded = true override val writeActionNeeded = true
private fun KtProperty.hasWriteUsages(): Boolean = private fun KtProperty.hasWriteUsages(): Boolean =
@@ -678,7 +684,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
} }
} }
private class RemoveRedundantExpressionQualifierProcessing : J2kPostProcessing { private class RemoveRedundantExpressionQualifierProcessing : NewJ2kPostProcessing {
private fun check(qualifiedExpression: KtQualifiedExpression): Boolean { private fun check(qualifiedExpression: KtQualifiedExpression): Boolean {
val qualifier = (qualifiedExpression.receiverExpression as? KtNameReferenceExpression) val qualifier = (qualifiedExpression.receiverExpression as? KtNameReferenceExpression)
?.referenceExpression() ?.referenceExpression()
@@ -700,7 +706,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
override val writeActionNeeded: Boolean = true override val writeActionNeeded: Boolean = true
} }
private class RemoveRedundantTypeQualifierProcessing : J2kPostProcessing { private class RemoveRedundantTypeQualifierProcessing : NewJ2kPostProcessing {
private fun check(reference: KtUserType): Boolean { private fun check(reference: KtUserType): Boolean {
val qualifierClass = reference.qualifier val qualifierClass = reference.qualifier
?.referenceExpression ?.referenceExpression
@@ -1,9 +1,9 @@
/* /*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.idea.j2k.postProcessing package org.jetbrains.kotlin.nj2k.postProcessing
import com.intellij.psi.impl.source.tree.PsiWhiteSpaceImpl import com.intellij.psi.impl.source.tree.PsiWhiteSpaceImpl
import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.LocalSearchScope
@@ -11,8 +11,8 @@ import com.intellij.psi.search.searches.ReferencesSearch
import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
import org.jetbrains.kotlin.idea.core.setDefaultValue import org.jetbrains.kotlin.idea.core.setDefaultValue
import org.jetbrains.kotlin.idea.j2k.J2kPostProcessing
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
import org.jetbrains.kotlin.nj2k.NewJ2kPostProcessing
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.addRemoveModifier.setModifierList import org.jetbrains.kotlin.psi.addRemoveModifier.setModifierList
import org.jetbrains.kotlin.psi.psiUtil.asAssignment import org.jetbrains.kotlin.psi.psiUtil.asAssignment
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.psi.psiUtil.containingClass
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
class ConvertDataClass : J2kPostProcessing { class ConvertDataClass : NewJ2kPostProcessing {
override val writeActionNeeded: Boolean = true override val writeActionNeeded: Boolean = true
fun KtCallableDeclaration.rename(newName: String) { fun KtCallableDeclaration.rename(newName: String) {
@@ -1,17 +1,17 @@
/* /*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.idea.j2k.postProcessing package org.jetbrains.kotlin.nj2k.postProcessing
import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.LocalSearchScope
import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.psi.search.searches.ReferencesSearch
import com.intellij.psi.util.parentOfType import com.intellij.psi.util.parentOfType
import org.jetbrains.kotlin.idea.core.setVisibility import org.jetbrains.kotlin.idea.core.setVisibility
import org.jetbrains.kotlin.idea.j2k.J2kPostProcessing
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.getReturnTypeReference import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.getReturnTypeReference
import org.jetbrains.kotlin.idea.refactoring.isInterfaceClass import org.jetbrains.kotlin.idea.refactoring.isInterfaceClass
import org.jetbrains.kotlin.nj2k.NewJ2kPostProcessing
import org.jetbrains.kotlin.lexer.KtKeywordToken import org.jetbrains.kotlin.lexer.KtKeywordToken
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.JvmAbi
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.psi.addRemoveModifier.setModifierList
import org.jetbrains.kotlin.psi.psiUtil.* import org.jetbrains.kotlin.psi.psiUtil.*
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
class ConvertGettersAndSetters : J2kPostProcessing { class ConvertGettersAndSetters : NewJ2kPostProcessing {
override val writeActionNeeded: Boolean = true override val writeActionNeeded: Boolean = true
data class PropertyData( data class PropertyData(
@@ -1,9 +1,9 @@
/* /*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.idea.j2k.postProcessing package org.jetbrains.kotlin.nj2k.postProcessing
import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.LocalSearchScope
import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.psi.search.searches.ReferencesSearch
@@ -3,11 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.j2k.tree.JKElement import org.jetbrains.kotlin.j2k.*
import org.jetbrains.kotlin.nj2k.tree.JKElement
data class ConversionContext( data class ConversionContext(
val symbolProvider: JKSymbolProvider, val symbolProvider: JKSymbolProvider,
@@ -14,10 +14,10 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import org.jetbrains.kotlin.j2k.conversions.* import org.jetbrains.kotlin.nj2k.conversions.*
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
object ConversionsRunner { object ConversionsRunner {
@@ -3,15 +3,15 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import com.intellij.psi.* import com.intellij.psi.*
import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration
import org.jetbrains.kotlin.j2k.conversions.multiResolveFqName import org.jetbrains.kotlin.nj2k.conversions.multiResolveFqName
import org.jetbrains.kotlin.j2k.conversions.resolveFqName import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.name.FqNameUnsafe
@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import com.intellij.lang.jvm.JvmAnnotatedElement import com.intellij.lang.jvm.JvmAnnotatedElement
import com.intellij.psi.* import com.intellij.psi.*
@@ -30,10 +30,11 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.asJava.elements.KtLightField import org.jetbrains.kotlin.asJava.elements.KtLightField
import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.asJava.elements.KtLightMethod
import org.jetbrains.kotlin.idea.j2k.content import org.jetbrains.kotlin.idea.j2k.content
import org.jetbrains.kotlin.j2k.ReferenceSearcher
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.* import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.lexer.KtToken import org.jetbrains.kotlin.lexer.KtToken
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
@@ -14,14 +14,14 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import org.jetbrains.kotlin.j2k.NewCodeBuilder.ParenthesisKind.* import org.jetbrains.kotlin.nj2k.NewCodeBuilder.ParenthesisKind.*
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.conversions.parentOfType import org.jetbrains.kotlin.nj2k.conversions.parentOfType
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitorVoid import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorVoid
import org.jetbrains.kotlin.lexer.KtKeywordToken import org.jetbrains.kotlin.lexer.KtKeywordToken
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
@@ -14,15 +14,16 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import com.intellij.openapi.progress.EmptyProgressIndicator import com.intellij.openapi.progress.EmptyProgressIndicator
import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.PsiJavaFile import com.intellij.psi.PsiJavaFile
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.j2k.tree.prettyDebugPrintTree import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
import org.jetbrains.kotlin.nj2k.tree.prettyDebugPrintTree
class NewJavaToKotlinConverter( class NewJavaToKotlinConverter(
val project: Project, val project: Project,
@@ -3,7 +3,9 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import org.jetbrains.kotlin.j2k.JavaToKotlinConverterServices
interface NewJavaToKotlinServices { interface NewJavaToKotlinServices {
val oldServices: JavaToKotlinConverterServices val oldServices: JavaToKotlinConverterServices
@@ -3,10 +3,10 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import org.jetbrains.kotlin.j2k.tree.JKElement import org.jetbrains.kotlin.nj2k.tree.JKElement
import org.jetbrains.kotlin.j2k.tree.impl.JKElementBase import org.jetbrains.kotlin.nj2k.tree.impl.JKElementBase
fun <T : JKElement> T.copyTree(): T = fun <T : JKElement> T.copyTree(): T =
when (this) { when (this) {
@@ -3,9 +3,9 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.tree.JKElement import org.jetbrains.kotlin.nj2k.tree.JKElement
inline fun <reified T : JKElement> JKElement.parentOfType(): T? { inline fun <reified T : JKElement> JKElement.parentOfType(): T? {
return generateSequence(parent) { it.parent }.filterIsInstance<T>().firstOrNull() return generateSequence(parent) { it.parent }.filterIsInstance<T>().firstOrNull()
@@ -3,13 +3,13 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.toExpression import org.jetbrains.kotlin.nj2k.toExpression
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class AnnotationClassConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class AnnotationClassConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,16 +3,16 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.isVarargsArgument import org.jetbrains.kotlin.nj2k.isVarargsArgument
import org.jetbrains.kotlin.j2k.primaryConstructor import org.jetbrains.kotlin.nj2k.primaryConstructor
import org.jetbrains.kotlin.j2k.toExpression import org.jetbrains.kotlin.nj2k.toExpression
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKAnnotationNameParameterImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKAnnotationNameParameterImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKAnnotationParameterImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKAnnotationParameterImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKUniverseClassSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKUniverseClassSymbol
class AnnotationConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class AnnotationConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,14 +3,14 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.PrimitiveType import org.jetbrains.kotlin.builtins.PrimitiveType
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.resolve.CollectionLiteralResolver import org.jetbrains.kotlin.resolve.CollectionLiteralResolver
@@ -8,14 +8,14 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldAccessExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldAccessExpressionImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldSymbol
import org.jetbrains.kotlin.j2k.tree.impl.JKKtThrowExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtThrowExpressionImpl
class ArrayOperationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class ArrayOperationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,14 +3,14 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKJavaOperatorImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKJavaOperatorImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKLambdaExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKLambdaExpressionImpl
import org.jetbrains.kotlin.j2k.tree.impl.toKtToken import org.jetbrains.kotlin.nj2k.tree.impl.toKtToken
class AssertStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class AssertStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.utils.addToStdlib.cast import org.jetbrains.kotlin.utils.addToStdlib.cast
class AssignmentAsExpressionToAlsoConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() { class AssignmentAsExpressionToAlsoConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,14 +3,14 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import com.intellij.psi.JavaTokenType import com.intellij.psi.JavaTokenType
import org.jetbrains.kotlin.j2k.copyTreeAndDetach import org.jetbrains.kotlin.nj2k.copyTreeAndDetach
import org.jetbrains.kotlin.j2k.tree.JKKtAssignmentStatement import org.jetbrains.kotlin.nj2k.tree.JKKtAssignmentStatement
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
import org.jetbrains.kotlin.j2k.tree.detached import org.jetbrains.kotlin.nj2k.tree.detached
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class AssignmentStatementOperatorConversion : RecursiveApplicableConversionBase() { class AssignmentStatementOperatorConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKStubExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKStubExpressionImpl
class AssignmentStatementSimplifyAlsoConversion : RecursiveApplicableConversionBase() { class AssignmentStatementSimplifyAlsoConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,10 +3,10 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKStubExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKStubExpressionImpl
class AssignmentStatementSimplifyValConversion : RecursiveApplicableConversionBase() { class AssignmentStatementSimplifyValConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.copyTreeAndDetach import org.jetbrains.kotlin.nj2k.copyTreeAndDetach
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class AssignmentStatementSplitAlsoConversion : RecursiveApplicableConversionBase() { class AssignmentStatementSplitAlsoConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class AssignmentStatementValCreationConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() { class AssignmentStatementValCreationConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -14,10 +14,10 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
interface BatchBaseConversion { interface BatchBaseConversion {
fun runConversion(treeRoots: List<JKTreeElement>, context: ConversionContext): Boolean fun runConversion(treeRoots: List<JKTreeElement>, context: ConversionContext): Boolean
@@ -3,15 +3,15 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.JKBlock import org.jetbrains.kotlin.nj2k.tree.JKBlock
import org.jetbrains.kotlin.j2k.tree.JKBlockStatement import org.jetbrains.kotlin.nj2k.tree.JKBlockStatement
import org.jetbrains.kotlin.j2k.tree.JKDeclaration import org.jetbrains.kotlin.nj2k.tree.JKDeclaration
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
class BlockToRunConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class BlockToRunConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionListImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionListImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKKtCallExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtCallExpressionImpl
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
class BoxedTypeOperationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class BoxedTypeOperationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.parenthesizeIfBinaryExpression import org.jetbrains.kotlin.nj2k.parenthesizeIfBinaryExpression
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class BuiltinMembersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class BuiltinMembersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
class ClassToObjectPromotionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class ClassToObjectPromotionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,10 +3,10 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
class BatchPipelineConversion(val conversions: List<BatchBaseConversion>) : BatchBaseConversion { class BatchPipelineConversion(val conversions: List<BatchBaseConversion>) : BatchBaseConversion {
override fun runConversion(treeRoots: List<JKTreeElement>, context: ConversionContext): Boolean { override fun runConversion(treeRoots: List<JKTreeElement>, context: ConversionContext): Boolean {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class ConstructorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class ConstructorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,14 +3,14 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.jvmAnnotation import org.jetbrains.kotlin.nj2k.jvmAnnotation
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldAccessExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldAccessExpressionImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKUniverseMethodSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKUniverseMethodSymbol
import org.jetbrains.kotlin.j2k.tree.impl.psi import org.jetbrains.kotlin.nj2k.tree.impl.psi
import org.jetbrains.kotlin.utils.addToStdlib.safeAs import org.jetbrains.kotlin.utils.addToStdlib.safeAs
class DefaultArgumentsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class DefaultArgumentsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl
class DefaultNullabilityToNullableConversion : RecursiveApplicableConversionBase() { class DefaultNullabilityToNullableConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,15 +3,15 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.equalsExpression import org.jetbrains.kotlin.nj2k.equalsExpression
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
class EqualsOperatorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class EqualsOperatorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,10 +3,10 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class FieldToPropertyConversion : RecursiveApplicableConversionBase() { class FieldToPropertyConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,13 +3,15 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import com.intellij.psi.* import com.intellij.psi.*
import com.intellij.util.IncorrectOperationException import com.intellij.util.IncorrectOperationException
import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.j2k.ReferenceSearcher
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.j2k.hasWriteAccesses
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import com.intellij.psi.* import com.intellij.psi.*
import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
class ImplicitCastsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class ImplicitCastsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.findUsages import org.jetbrains.kotlin.nj2k.findUsages
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class ImplicitInitializerConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class ImplicitInitializerConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -8,13 +8,13 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import com.intellij.psi.CommonClassNames import com.intellij.psi.CommonClassNames
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKImportStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKImportStatementImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKNameIdentifierImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKNameIdentifierImpl
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitorVoid import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorVoid
class ImportStatementConversion : RecursiveApplicableConversionBase() { class ImportStatementConversion : RecursiveApplicableConversionBase() {
@@ -3,9 +3,9 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
class InnerClassConversion : RecursiveApplicableConversionBase() { class InnerClassConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class InsertDefaultPrimaryConstructorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class InsertDefaultPrimaryConstructorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,10 +3,10 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
class InterfaceWithFieldConversion : RecursiveApplicableConversionBase() { class InterfaceWithFieldConversion : RecursiveApplicableConversionBase() {
@@ -3,9 +3,9 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
class InternalClassConversion : RecursiveApplicableConversionBase() { class InternalClassConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,13 +3,13 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKAnnotationParameterImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKAnnotationParameterImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldAccessExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldAccessExpressionImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKKtLiteralExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtLiteralExpressionImpl
import org.jetbrains.kotlin.utils.addToStdlib.safeAs import org.jetbrains.kotlin.utils.addToStdlib.safeAs
class JavaAnnotationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class JavaAnnotationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -14,15 +14,15 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.throwAnnotation import org.jetbrains.kotlin.nj2k.throwAnnotation
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKKtFunctionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtFunctionImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl
import org.jetbrains.kotlin.j2k.tree.impl.psi import org.jetbrains.kotlin.nj2k.tree.impl.psi
class JavaMethodToKotlinFunctionConversion(private val context: ConversionContext) : TransformerBasedConversion() { class JavaMethodToKotlinFunctionConversion(private val context: ConversionContext) : TransformerBasedConversion() {
override fun visitTreeElement(element: JKTreeElement) { override fun visitTreeElement(element: JKTreeElement) {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.annotationByFqName import org.jetbrains.kotlin.nj2k.annotationByFqName
import org.jetbrains.kotlin.j2k.jvmAnnotation import org.jetbrains.kotlin.nj2k.jvmAnnotation
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
class JavaModifiersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class JavaModifiersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class JavaStandartMethodsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class JavaStandartMethodsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl
class JetbrainsNullableAnnotationsConverter(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class JetbrainsNullableAnnotationsConverter(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.blockStatement import org.jetbrains.kotlin.nj2k.blockStatement
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class LabeledStatementConversion : RecursiveApplicableConversionBase() { class LabeledStatementConversion : RecursiveApplicableConversionBase() {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.fixLiteral import org.jetbrains.kotlin.nj2k.fixLiteral
import org.jetbrains.kotlin.j2k.tree.JKJavaLiteralExpression import org.jetbrains.kotlin.nj2k.tree.JKJavaLiteralExpression
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
class LiteralConversion : RecursiveApplicableConversionBase() { class LiteralConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,13 +3,13 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldSymbol
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl
class LowerNullabilityInFunctionParametersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class LowerNullabilityInFunctionParametersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.util.collectionUtils.concatInOrder import org.jetbrains.kotlin.util.collectionUtils.concatInOrder
@@ -3,15 +3,15 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
import org.jetbrains.kotlin.j2k.tree.impl.JKBranchElementBase import org.jetbrains.kotlin.nj2k.tree.impl.JKBranchElementBase
abstract class MatchBasedConversion : SequentialBaseConversion { abstract class MatchBasedConversion : SequentialBaseConversion {
fun <R : JKTreeElement, T> applyRecursive(element: R, data: T, func: (JKTreeElement, T) -> JKTreeElement): R = fun <R : JKTreeElement, T> applyRecursive(element: R, data: T, func: (JKTreeElement, T) -> JKTreeElement): R =
org.jetbrains.kotlin.j2k.tree.applyRecursive(element, data, ::onElementChanged, func) org.jetbrains.kotlin.nj2k.tree.applyRecursive(element, data, ::onElementChanged, func)
inline fun <R : JKTreeElement> applyRecursive(element: R, crossinline func: (JKTreeElement) -> JKTreeElement): R { inline fun <R : JKTreeElement> applyRecursive(element: R, crossinline func: (JKTreeElement) -> JKTreeElement): R {
return applyRecursive(element, null) { it, _ -> func(it) } return applyRecursive(element, null) { it, _ -> func(it) }
@@ -3,13 +3,13 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import com.intellij.psi.PsiClass import com.intellij.psi.PsiClass
import com.intellij.psi.PsiMethod import com.intellij.psi.PsiMethod
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.psi import org.jetbrains.kotlin.nj2k.tree.impl.psi
class ModalityConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class ModalityConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,13 +3,13 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.bangedBangedExpr import org.jetbrains.kotlin.nj2k.bangedBangedExpr
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class NullableQualifierConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class NullableQualifierConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import com.intellij.psi.JavaTokenType import com.intellij.psi.JavaTokenType
import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
@@ -3,14 +3,14 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.asAssignmentFromTarget import org.jetbrains.kotlin.nj2k.asAssignmentFromTarget
import org.jetbrains.kotlin.j2k.findUsages import org.jetbrains.kotlin.nj2k.findUsages
import org.jetbrains.kotlin.j2k.hasWritableUsages import org.jetbrains.kotlin.nj2k.hasWritableUsages
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class ParameterModificationInMethodCallsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class ParameterModificationInMethodCallsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.kotlinBinaryExpression import org.jetbrains.kotlin.nj2k.kotlinBinaryExpression
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class PolyadicExpressionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class PolyadicExpressionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKKtInitDeclarationImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtInitDeclarationImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKKtPrimaryConstructorImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtPrimaryConstructorImpl
class PrimaryConstructorDetectConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class PrimaryConstructorDetectConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,13 +3,13 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKKtCallExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtCallExpressionImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKMethodSymbol
import org.jetbrains.kotlin.j2k.tree.impl.psi import org.jetbrains.kotlin.nj2k.tree.impl.psi
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
// TODO: Full special methods conversion // TODO: Full special methods conversion
@@ -3,10 +3,10 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
abstract class RecursiveApplicableConversionBase : MatchBasedConversion() { abstract class RecursiveApplicableConversionBase : MatchBasedConversion() {
override fun onElementChanged(new: JKTreeElement, old: JKTreeElement) { override fun onElementChanged(new: JKTreeElement, old: JKTreeElement) {
@@ -3,9 +3,9 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
//TODO temporary //TODO temporary
class SortClassMembersConversion : RecursiveApplicableConversionBase() { class SortClassMembersConversion : RecursiveApplicableConversionBase() {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.getOrCreateCompainonObject import org.jetbrains.kotlin.nj2k.getOrCreateCompainonObject
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class StaticsToCompanionExtractConversion : RecursiveApplicableConversionBase() { class StaticsToCompanionExtractConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
@@ -3,18 +3,18 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.controlFlow.ControlFlowFactory import com.intellij.psi.controlFlow.ControlFlowFactory
import com.intellij.psi.controlFlow.ControlFlowUtil import com.intellij.psi.controlFlow.ControlFlowUtil
import com.intellij.psi.controlFlow.LocalsOrMyInstanceFieldsControlFlowPolicy import com.intellij.psi.controlFlow.LocalsOrMyInstanceFieldsControlFlowPolicy
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.blockStatement import org.jetbrains.kotlin.nj2k.blockStatement
import org.jetbrains.kotlin.j2k.copyTreeAndDetach import org.jetbrains.kotlin.nj2k.copyTreeAndDetach
import org.jetbrains.kotlin.j2k.runExpression import org.jetbrains.kotlin.nj2k.runExpression
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class SwitchStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class SwitchStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class SynchronizedStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class SynchronizedStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,14 +3,14 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.tree.JKExpressionStatement import org.jetbrains.kotlin.nj2k.tree.JKExpressionStatement
import org.jetbrains.kotlin.j2k.tree.JKJavaThrowStatement import org.jetbrains.kotlin.nj2k.tree.JKJavaThrowStatement
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
import org.jetbrains.kotlin.j2k.tree.detached import org.jetbrains.kotlin.nj2k.tree.detached
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKKtThrowExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtThrowExpressionImpl
class ThrowStatementConversion : RecursiveApplicableConversionBase() { class ThrowStatementConversion : RecursiveApplicableConversionBase() {
@@ -14,11 +14,11 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitorVoid import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorVoid
abstract class TransformerBasedConversion : SequentialBaseConversion, JKVisitorVoid { abstract class TransformerBasedConversion : SequentialBaseConversion, JKVisitorVoid {
protected var somethingChanged = false protected var somethingChanged = false
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class TryStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { class TryStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
@@ -3,7 +3,7 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.PsiMethod import com.intellij.psi.PsiMethod
@@ -12,10 +12,11 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.PrimitiveType import org.jetbrains.kotlin.builtins.PrimitiveType
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
import org.jetbrains.kotlin.j2k.* import org.jetbrains.kotlin.j2k.*
import org.jetbrains.kotlin.nj2k.*
import org.jetbrains.kotlin.j2k.ast.Mutability import org.jetbrains.kotlin.j2k.ast.Mutability
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
@@ -3,11 +3,11 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
class TypeParametersNullabilityConversion : RecursiveApplicableConversionBase() { class TypeParametersNullabilityConversion : RecursiveApplicableConversionBase() {
@@ -3,13 +3,13 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.nj2k.conversions
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.PsiPolyVariantReference import com.intellij.psi.PsiPolyVariantReference
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
import org.jetbrains.kotlin.j2k.tree.impl.psi import org.jetbrains.kotlin.nj2k.tree.impl.psi
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.psi.KtDotQualifiedExpression import org.jetbrains.kotlin.psi.KtDotQualifiedExpression
import org.jetbrains.kotlin.psi.KtImportDirective import org.jetbrains.kotlin.psi.KtImportDirective
@@ -3,18 +3,18 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import com.intellij.psi.PsiClass import com.intellij.psi.PsiClass
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.tree.TokenSet import com.intellij.psi.tree.TokenSet
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.conversions.RecursiveApplicableConversionBase import org.jetbrains.kotlin.nj2k.conversions.RecursiveApplicableConversionBase
import org.jetbrains.kotlin.j2k.conversions.multiResolveFqName import org.jetbrains.kotlin.nj2k.conversions.multiResolveFqName
import org.jetbrains.kotlin.j2k.conversions.resolveFqName import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.lexer.KtSingleValueToken import org.jetbrains.kotlin.lexer.KtSingleValueToken
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
@@ -3,12 +3,13 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k package org.jetbrains.kotlin.nj2k
import com.intellij.codeInsight.generation.GenerateEqualsHelper.getEqualsSignature import com.intellij.codeInsight.generation.GenerateEqualsHelper.getEqualsSignature
import com.intellij.psi.* import com.intellij.psi.*
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.util.MethodSignatureUtil import com.intellij.psi.util.MethodSignatureUtil
import org.jetbrains.kotlin.j2k.isNullLiteral
//copied from old j2k //copied from old j2k
fun canKeepEqEq(left: PsiExpression, right: PsiExpression?): Boolean { fun canKeepEqEq(left: PsiExpression, right: PsiExpression?): Boolean {
@@ -14,10 +14,10 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.tree package org.jetbrains.kotlin.nj2k.tree
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitorVoid import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorVoid
import org.jetbrains.kotlin.utils.Printer import org.jetbrains.kotlin.utils.Printer
private class DebugTreePrinter : JKVisitorVoid { private class DebugTreePrinter : JKVisitorVoid {
@@ -3,12 +3,12 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.tree.impl package org.jetbrains.kotlin.nj2k.tree.impl
import org.jetbrains.kotlin.j2k.tree.JKBranchElement import org.jetbrains.kotlin.nj2k.tree.JKBranchElement
import org.jetbrains.kotlin.j2k.tree.JKElement import org.jetbrains.kotlin.nj2k.tree.JKElement
import org.jetbrains.kotlin.j2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
import kotlin.properties.ReadWriteProperty import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty import kotlin.reflect.KProperty
@@ -14,16 +14,15 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.tree.impl package org.jetbrains.kotlin.nj2k.tree.impl
import com.intellij.psi.JavaTokenType import com.intellij.psi.JavaTokenType
import com.intellij.psi.impl.source.tree.ElementType.OPERATION_BIT_SET import com.intellij.psi.impl.source.tree.ElementType.OPERATION_BIT_SET
import com.intellij.psi.tree.IElementType import com.intellij.psi.tree.IElementType
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.ast.Parameter import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType.*
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.* import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
@@ -14,19 +14,19 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.tree.impl package org.jetbrains.kotlin.nj2k.tree.impl
import com.intellij.psi.PsiClass import com.intellij.psi.PsiClass
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.j2k.JKSymbolProvider import org.jetbrains.kotlin.nj2k.JKSymbolProvider
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.conversions.resolveFqName import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.BOOLEAN import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType.BOOLEAN
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.NULL import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType.NULL
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.psi.KtClass import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.psi.KtNamedFunction
@@ -14,13 +14,13 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.tree.impl package org.jetbrains.kotlin.nj2k.tree.impl
import com.intellij.psi.JavaTokenType import com.intellij.psi.JavaTokenType
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import com.intellij.psi.tree.IElementType import com.intellij.psi.tree.IElementType
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
import org.jetbrains.kotlin.lexer.KtSingleValueToken import org.jetbrains.kotlin.lexer.KtSingleValueToken
import org.jetbrains.kotlin.types.expressions.OperatorConventions import org.jetbrains.kotlin.types.expressions.OperatorConventions
import org.jetbrains.kotlin.utils.addToStdlib.cast import org.jetbrains.kotlin.utils.addToStdlib.cast
@@ -3,7 +3,7 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.tree.impl package org.jetbrains.kotlin.nj2k.tree.impl
import com.intellij.psi.PsiClass import com.intellij.psi.PsiClass
import com.intellij.psi.PsiMethod import com.intellij.psi.PsiMethod
@@ -14,11 +14,11 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName
import org.jetbrains.kotlin.idea.search.declarationsSearch.findDeepestSuperMethodsKotlinAware import org.jetbrains.kotlin.idea.search.declarationsSearch.findDeepestSuperMethodsKotlinAware
import org.jetbrains.kotlin.idea.search.declarationsSearch.findDeepestSuperMethodsNoWrapping import org.jetbrains.kotlin.idea.search.declarationsSearch.findDeepestSuperMethodsNoWrapping
import org.jetbrains.kotlin.j2k.JKSymbolProvider import org.jetbrains.kotlin.nj2k.JKSymbolProvider
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.conversions.parentOfType import org.jetbrains.kotlin.nj2k.conversions.parentOfType
import org.jetbrains.kotlin.j2k.conversions.resolveFqName import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.psi.KtCallableDeclaration import org.jetbrains.kotlin.psi.KtCallableDeclaration
import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtClassOrObject
@@ -14,10 +14,10 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.tree package org.jetbrains.kotlin.nj2k.tree
import org.jetbrains.kotlin.idea.search.usagesSearch.constructor import org.jetbrains.kotlin.idea.search.usagesSearch.constructor
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
interface JKField : JKVariable, JKVisibilityOwner, JKMutabilityOwner, JKModalityOwner, JKExtraModifiersOwner, JKAnnotationListOwner interface JKField : JKVariable, JKVisibilityOwner, JKMutabilityOwner, JKModalityOwner, JKExtraModifiersOwner, JKAnnotationListOwner
@@ -14,13 +14,13 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.tree package org.jetbrains.kotlin.nj2k.tree
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.j2k.tree.impl.JKClassSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKClassSymbol
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldSymbol
import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKMethodSymbol
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
interface JKTreeElement : JKElement { interface JKTreeElement : JKElement {
fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R
@@ -14,9 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.tree package org.jetbrains.kotlin.nj2k.tree
import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKMethodSymbol
interface JKKtGetterOrSetter : JKTreeElement, JKVisibilityOwner, JKBranchElement { interface JKKtGetterOrSetter : JKTreeElement, JKVisibilityOwner, JKBranchElement {
var body: JKStatement var body: JKStatement
@@ -14,11 +14,11 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.j2k.tree package org.jetbrains.kotlin.nj2k.tree
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.impl.JKBranchElementBase import org.jetbrains.kotlin.nj2k.tree.impl.JKBranchElementBase
import org.jetbrains.kotlin.j2k.tree.impl.JKClassSymbol import org.jetbrains.kotlin.nj2k.tree.impl.JKClassSymbol
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
import kotlin.reflect.KProperty0 import kotlin.reflect.KProperty0
import kotlin.jvm.internal.CallableReference import kotlin.jvm.internal.CallableReference
@@ -3,7 +3,7 @@
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
package org.jetbrains.kotlin.j2k.tree package org.jetbrains.kotlin.nj2k.tree
import com.intellij.psi.* import com.intellij.psi.*
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
@@ -11,13 +11,12 @@ import org.jetbrains.kotlin.builtins.PrimitiveType
import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor
import org.jetbrains.kotlin.j2k.ConversionContext import org.jetbrains.kotlin.nj2k.ConversionContext
import org.jetbrains.kotlin.j2k.JKSymbolProvider import org.jetbrains.kotlin.nj2k.JKSymbolProvider
import org.jetbrains.kotlin.j2k.ast.ArrayType
import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.conversions.resolveFqName import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
import org.jetbrains.kotlin.j2k.kotlinTypeByName import org.jetbrains.kotlin.nj2k.kotlinTypeByName
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.impl.*
import org.jetbrains.kotlin.js.descriptorUtils.getJetTypeFqName import org.jetbrains.kotlin.js.descriptorUtils.getJetTypeFqName
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
@@ -80,7 +80,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
val interfaceData = commonData + uncommonData val interfaceData = commonData + uncommonData
val pkg = "package org.jetbrains.kotlin.j2k.tree.visitors" val pkg = "package org.jetbrains.kotlin.nj2k.tree.visitors"
fun String.firstCommonInterfaceName(): String { fun String.firstCommonInterfaceName(): String {
val data = interfaceData.find { it.name == this }!! val data = interfaceData.find { it.name == this }!!
@@ -92,7 +92,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
File(JK_OUT_ROOT, "$visitorName.kt").writeText(buildString { File(JK_OUT_ROOT, "$visitorName.kt").writeText(buildString {
appendln(pkg) appendln(pkg)
appendln() appendln()
appendln("import org.jetbrains.kotlin.j2k.tree.*") appendln("import org.jetbrains.kotlin.nj2k.tree.*")
appendln() appendln()
appendln("interface $visitorName<out R, in D> {") appendln("interface $visitorName<out R, in D> {")
interfaceData.joinTo(this, separator = "\n") { (name, ext) -> interfaceData.joinTo(this, separator = "\n") { (name, ext) ->
@@ -111,7 +111,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
File(JK_OUT_ROOT, "${visitorName}Void.kt").writeText(buildString { File(JK_OUT_ROOT, "${visitorName}Void.kt").writeText(buildString {
appendln(pkg) appendln(pkg)
appendln() appendln()
appendln("import org.jetbrains.kotlin.j2k.tree.*") appendln("import org.jetbrains.kotlin.nj2k.tree.*")
appendln() appendln()
appendln("interface ${visitorName}Void : $visitorName<Unit, Nothing?> {") appendln("interface ${visitorName}Void : $visitorName<Unit, Nothing?> {")
@@ -132,7 +132,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
/*File(JK_OUT_ROOT, "$transformerName.kt").writeText(buildString { /*File(JK_OUT_ROOT, "$transformerName.kt").writeText(buildString {
appendln(pkg) appendln(pkg)
appendln() appendln()
appendln("import org.jetbrains.kotlin.j2k.tree.*") appendln("import org.jetbrains.kotlin.nj2k.tree.*")
appendln() appendln()
appendln("interface $transformerName<in D> : JKVisitor<JKTreeElement, D> {") appendln("interface $transformerName<in D> : JKVisitor<JKTreeElement, D> {")
@@ -158,7 +158,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
File(JK_OUT_ROOT, "${transformerName}Void.kt").writeText(buildString { File(JK_OUT_ROOT, "${transformerName}Void.kt").writeText(buildString {
appendln(pkg) appendln(pkg)
appendln() appendln()
appendln("import org.jetbrains.kotlin.j2k.tree.*") appendln("import org.jetbrains.kotlin.nj2k.tree.*")
appendln() appendln()
@@ -1,6 +1,6 @@
package org.jetbrains.kotlin.j2k.tree.visitors package org.jetbrains.kotlin.nj2k.tree.visitors
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
interface JKVisitor<out R, in D> { interface JKVisitor<out R, in D> {
fun visitTreeElement(treeElement: JKTreeElement, data: D): R fun visitTreeElement(treeElement: JKTreeElement, data: D): R
@@ -1,6 +1,6 @@
package org.jetbrains.kotlin.j2k.tree.visitors package org.jetbrains.kotlin.nj2k.tree.visitors
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.nj2k.tree.*
interface JKVisitorVoid : JKVisitor<Unit, Nothing?> { interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
fun visitTreeElement(treeElement: JKTreeElement) fun visitTreeElement(treeElement: JKTreeElement)

Some files were not shown because too many files have changed in this diff Show More