From 28aeaa040e13d8f8adf2bfaa0a343156f5d8fff4 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 27 Nov 2018 12:33:09 +0300 Subject: [PATCH] New J2K: Split conversions to Java --> Kotlin conversions and Kotlin --> Kotlin conversions --- .../jetbrains/kotlin/j2k/ConversionsRunner.kt | 9 +++++--- .../j2k/conversions/MainFunctionConversion.kt | 21 ++++++++----------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/ConversionsRunner.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/ConversionsRunner.kt index f4c6a299b8c..2908f7ee6a4 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/ConversionsRunner.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/ConversionsRunner.kt @@ -23,6 +23,7 @@ object ConversionsRunner { private fun createRootConversion(context: ConversionContext) = batchPipe { + //Java --> Kotlin conversions +JavaModifiersConversion() +InternalClassConversion(context) +ModalityConversion(context) @@ -49,14 +50,16 @@ object ConversionsRunner { +MainFunctionConversion(context) +LiteralConversion() +AssertStatementConversion(context) - +InnerClassConversion() - +StaticsToCompanionExtractConversion() - +ClassToObjectPromotionConversion(context) +PolyadicExpressionConversion() +SwitchStatementConversion(context) +InstanceOfConversion() +ForConversion(context) +ForInConversion() + + //Kotlin --> Kotlin conversions + +InnerClassConversion() + +StaticsToCompanionExtractConversion() + +ClassToObjectPromotionConversion(context) +LabeledStatementConversion() +SortClassMembersConversion() } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/MainFunctionConversion.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/MainFunctionConversion.kt index 8916ddce8da..d648b8a8748 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/MainFunctionConversion.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/MainFunctionConversion.kt @@ -15,15 +15,14 @@ import org.jetbrains.kotlin.util.collectionUtils.concatInOrder //TODO temporary class MainFunctionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { - if (element !is JKKtFunction) return recurse(element) + if (element !is JKMethod) return recurse(element) if (element.isMainFunctionDeclaration()) { element.parameters.single().apply { - val oldType = type.type as JKClassType - val oldTypeParameter = oldType.parameters.single() as JKClassType + val oldType = type.type as JKJavaArrayType + val oldTypeParameter = oldType.type as JKClassType val newType = - JKClassTypeImpl( - oldType.classReference, - listOf(oldTypeParameter.updateNullability(Nullability.NotNull)), + JKJavaArrayTypeImpl( + oldTypeParameter.updateNullability(Nullability.NotNull), Nullability.NotNull ) type = JKTypeElementImpl(newType) @@ -37,11 +36,9 @@ class MainFunctionConversion(private val context: ConversionContext) : Recursive return recurse(element) } - fun JKKtFunction.isMainFunctionDeclaration(): Boolean { - val type = parameters.singleOrNull()?.type?.type as? JKClassType ?: return false - val typeArgument = type.parameters.singleOrNull() as? JKClassType ?: return false - return name.value == "main" && - type.classReference.name == "Array" && - typeArgument.classReference.name == "String" + private fun JKMethod.isMainFunctionDeclaration(): Boolean { + val type = parameters.singleOrNull()?.type?.type as? JKJavaArrayType ?: return false + val typeArgument = type.type as? JKClassType ?: return false + return name.value == "main" && typeArgument.classReference.name == "String" } } \ No newline at end of file