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