diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/BaseConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/BaseConversion.kt index 103f156783a..232a50efe2b 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/BaseConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/BaseConversion.kt @@ -7,11 +7,15 @@ package org.jetbrains.kotlin.nj2k import org.jetbrains.kotlin.nj2k.tree.JKTreeElement -interface BatchBaseConversion { +interface Conversion { + val context: NewJ2kConverterContext + val symbolProvider + get() = context.symbolProvider + fun runConversion(treeRoots: List, context: NewJ2kConverterContext): Boolean } -interface SequentialBaseConversion : BatchBaseConversion { +interface SequentialBaseConversion : Conversion { fun runConversion(treeRoot: JKTreeElement, context: NewJ2kConverterContext): Boolean override fun runConversion(treeRoots: List, context: NewJ2kConverterContext): Boolean { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt index 1555ac82a86..5e6834410b5 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt @@ -22,25 +22,25 @@ import org.jetbrains.kotlin.nj2k.tree.JKTreeRoot object ConversionsRunner { private fun createConversions(context: NewJ2kConverterContext) = listOf( - NonCodeElementsConversion(), + NonCodeElementsConversion(context), JavaModifiersConversion(context), JavaAnnotationsConversion(context), AnnotationClassConversion(context), AnnotationConversion(context), ModalityConversion(context), - FunctionAsAnonymousObjectToLambdaConversion(), - ReturnStatementInLambdaExpressionConversion(), + FunctionAsAnonymousObjectToLambdaConversion(context), + ReturnStatementInLambdaExpressionConversion(context), BoxedTypeOperationsConversion(context), AssignmentAsExpressionToAlsoConversion(context), AssignmentStatementValCreationConversion(context), - AssignmentStatementOperatorConversion(), - AssignmentStatementSimplifyValConversion(), - AssignmentStatementSimplifyAlsoConversion(), - AssignmentStatementSplitAlsoConversion(), - PolyadicExpressionConversion(), + AssignmentStatementOperatorConversion(context), + AssignmentStatementSimplifyValConversion(context), + AssignmentStatementSimplifyAlsoConversion(context), + AssignmentStatementSplitAlsoConversion(context), + PolyadicExpressionConversion(context), OperatorExpressionConversion(context), - AddParenthesisForLineBreaksInBinaryExpression(), - ThrowStatementConversion(), + AddParenthesisForLineBreaksInBinaryExpression(context), + ThrowStatementConversion(context), ArrayInitializerConversion(context), TryStatementConversion(context), EnumFieldAccessConversion(context), @@ -49,38 +49,38 @@ object ConversionsRunner { JetbrainsNullableAnnotationsConverter(context), DefaultArgumentsConversion(context), ConstructorConversion(context), - StaticInitDeclarationConversion(), + StaticInitDeclarationConversion(context), ImplicitInitializerConversion(context), ParameterModificationInMethodCallsConversion(context), BlockToRunConversion(context), PrimaryConstructorDetectConversion(context), InsertDefaultPrimaryConstructorConversion(context), - FieldToPropertyConversion(), + FieldToPropertyConversion(context), JavaStandardMethodsConversion(context), JavaMethodToKotlinFunctionConversion(context), MainFunctionConversion(context), AssertStatementConversion(context), SwitchStatementConversion(context), - LiteralConversion(), + LiteralConversion(context), ForConversion(context), - LabeledStatementConversion(), + LabeledStatementConversion(context), ArrayOperationsConversion(context), EqualsOperatorConversion(context), TypeMappingConversion(context), InternalDeclarationConversion(context), - InnerClassConversion(), - StaticsToCompanionExtractConversion(), - InterfaceWithFieldConversion(), + InnerClassConversion(context), + StaticsToCompanionExtractConversion(context), + InterfaceWithFieldConversion(context), ClassToObjectPromotionConversion(context), - RemoveWrongExtraModifiersForSingleFunctionsConversion(), + RemoveWrongExtraModifiersForSingleFunctionsConversion(context), MethodReferenceToLambdaConversion(context), BuiltinMembersConversion(context), ImplicitCastsConversion(context), - LiteralConversion(), + LiteralConversion(context), CollectImportsConversion(context), - FilterImportsConversion(), - MoveInitBlocksToTheEndConversion(), + FilterImportsConversion(context), + MoveInitBlocksToTheEndConversion(context), AddElementsInfoConversion(context) ) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AddElementsInfoConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AddElementsInfoConversion.kt index 899127334ed..c41dc75bfc4 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AddElementsInfoConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AddElementsInfoConversion.kt @@ -17,8 +17,6 @@ import org.jetbrains.kotlin.nj2k.symbols.JKUniverseMethodSymbol import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKCapturedType import org.jetbrains.kotlin.nj2k.tree.impl.psi -import org.jetbrains.kotlin.nj2k.types.JKParametrizedType -import org.jetbrains.kotlin.nj2k.types.JKStarProjectionType import org.jetbrains.kotlin.utils.addToStdlib.safeAs class AddElementsInfoConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { @@ -55,8 +53,8 @@ class AddElementsInfoConversion(context: NewJ2kConverterContext) : RecursiveAppl private fun JKMethod.superMethods(): Collection? { val psiMethod = psi() ?: return null - psiMethod.getJavaMethodDescriptor()?.let { - return it.overriddenDescriptors + psiMethod.getJavaMethodDescriptor()?.let { descriptor -> + return descriptor.overriddenDescriptors } return psiMethod.findSuperMethods().mapNotNull { superMethod -> when (superMethod) { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AddParenthesisForLineBreaksInBinaryExpression.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AddParenthesisForLineBreaksInBinaryExpression.kt index 86c869773f7..546d75eea8a 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AddParenthesisForLineBreaksInBinaryExpression.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AddParenthesisForLineBreaksInBinaryExpression.kt @@ -5,12 +5,14 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKBinaryExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKParenthesizedExpressionImpl -class AddParenthesisForLineBreaksInBinaryExpression : RecursiveApplicableConversionBase() { +class AddParenthesisForLineBreaksInBinaryExpression(override val context: NewJ2kConverterContext) : + RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKBinaryExpression) return recurse(element) if (element.parent is JKBinaryExpression) return recurse(element) @@ -27,5 +29,4 @@ class AddParenthesisForLineBreaksInBinaryExpression : RecursiveApplicableConvers } return recurse(element) } - } \ No newline at end of file diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationClassConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationClassConversion.kt index d79cc6aa227..2956213280a 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationClassConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationClassConversion.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.nj2k.toExpression import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class AnnotationClassConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class AnnotationClassConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClass) return recurse(element) if (element.classKind != JKClass.ClassKind.ANNOTATION) return recurse(element) @@ -36,8 +36,8 @@ class AnnotationClassConversion(private val context: NewJ2kConverterContext) : R private fun JKJavaAnnotationMethod.asKotlinAnnotationParameter(): JKParameterImpl { val type = returnType.type .updateNullabilityRecursively(Nullability.NotNull) - .replaceJavaClassWithKotlinClassType(context.symbolProvider) - val initializer = this::defaultValue.detached().toExpression(context.symbolProvider) + .replaceJavaClassWithKotlinClassType(symbolProvider) + val initializer = this::defaultValue.detached().toExpression(symbolProvider) val isVarArgs = type is JKJavaArrayType && name.value == "value" return JKParameterImpl( JKTypeElementImpl( diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationConversion.kt index b3c7be394da..dd777f09db3 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationConversion.kt @@ -17,12 +17,12 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKAnnotationParameterImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtAnnotationArrayInitializerExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKNameIdentifierImpl -class AnnotationConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class AnnotationConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKAnnotation) return recurse(element) fixVarargsInvocation(element) for (parameter in element.arguments) { - parameter.value = parameter.value.toExpression(context.symbolProvider) + parameter.value = parameter.value.toExpression(symbolProvider) } return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt index 54957028f7d..e6900498e9c 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.resolve.CollectionLiteralResolver -class ArrayInitializerConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class ArrayInitializerConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { var newElement = element if (element is JKJavaNewArray) { @@ -29,7 +29,7 @@ class ArrayInitializerConversion(private val context: NewJ2kConverterContext) : if (primitiveArrayType == null) JKTypeArgumentListImpl(listOf(element::type.detached())) else JKTypeArgumentListImpl() newElement = JKJavaMethodCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.$arrayConstructorName"), + symbolProvider.provideMethodSymbol("kotlin.$arrayConstructorName"), element.initializer.also { element.initializer = emptyList() }.toArgumentList(), typeArguments ) @@ -46,13 +46,13 @@ class ArrayInitializerConversion(private val context: NewJ2kConverterContext) : if (dimensions.size == 1) { return if (type !is JKJavaPrimitiveType) { JKJavaMethodCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.arrayOfNulls"), + symbolProvider.provideMethodSymbol("kotlin.arrayOfNulls"), JKArgumentListImpl(dimensions[0]), JKTypeArgumentListImpl(listOf(JKTypeElementImpl(type))) ) } else { JKJavaNewExpressionImpl( - context.symbolProvider.provideClassSymbol(type.arrayFqName()), + symbolProvider.provideClassSymbol(type.arrayFqName()), JKArgumentListImpl(dimensions[0]), JKTypeArgumentListImpl(emptyList()) ) @@ -63,7 +63,7 @@ class ArrayInitializerConversion(private val context: NewJ2kConverterContext) : JKJavaArrayTypeImpl(currentType) } return JKJavaNewExpressionImpl( - context.symbolProvider.provideClassSymbol("kotlin.Array"), + symbolProvider.provideClassSymbol("kotlin.Array"), JKArgumentListImpl( dimensions[0], JKLambdaExpressionImpl( @@ -75,19 +75,19 @@ class ArrayInitializerConversion(private val context: NewJ2kConverterContext) : ) } var resultType = JKClassTypeImpl( - context.symbolProvider.provideClassSymbol(type.arrayFqName()), + symbolProvider.provideClassSymbol(type.arrayFqName()), if (type is JKJavaPrimitiveType) emptyList() else listOf(type), Nullability.Default ) for (i in 0 until dimensions.size - 2) { resultType = JKClassTypeImpl( - context.symbolProvider.provideClassSymbol(KotlinBuiltIns.FQ_NAMES.array.toSafe()), + symbolProvider.provideClassSymbol(KotlinBuiltIns.FQ_NAMES.array.toSafe()), listOf(resultType), Nullability.Default ) } return JKJavaMethodCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.arrayOfNulls"), + symbolProvider.provideMethodSymbol("kotlin.arrayOfNulls"), JKArgumentListImpl(dimensions[0]), JKTypeArgumentListImpl(listOf(JKTypeElementImpl(resultType))) ) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayOperationsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayOperationsConversion.kt index 4608fd52785..8147f5a63bb 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayOperationsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayOperationsConversion.kt @@ -17,14 +17,14 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldAccessExpressionImpl import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class ArrayOperationsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class ArrayOperationsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKQualifiedExpression) return recurse(element) val selector = element.selector as? JKFieldAccessExpression ?: return recurse(element) if (element.receiver.isArrayOrVarargTypeParameter() && selector.identifier.name == "length") { val sizeCall = JKFieldAccessExpressionImpl( - context.symbolProvider.provideFieldSymbol("kotlin.Array.size") + symbolProvider.provideFieldSymbol("kotlin.Array.size") ) element.selector = sizeCall } @@ -32,7 +32,7 @@ class ArrayOperationsConversion(private val context: NewJ2kConverterContext) : R } private fun JKExpression.isArrayOrVarargTypeParameter(): Boolean { - if (type(context.symbolProvider) is JKJavaArrayType) return true + if (type(symbolProvider) is JKJavaArrayType) return true val parameter = safeAs() ?.identifier diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssertStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssertStatementConversion.kt index bc71fd0b748..d79e7aa3857 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssertStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssertStatementConversion.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKLambdaExpressionImpl -class AssertStatementConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class AssertStatementConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaAssertStatement) return recurse(element) val messageExpression = @@ -29,7 +29,7 @@ class AssertStatementConversion(private val context: NewJ2kConverterContext) : R kotlinAssert( element::condition.detached(), messageExpression, - context.symbolProvider + symbolProvider ) ) ) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentAsExpressionToAlsoConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentAsExpressionToAlsoConversion.kt index cd28cf57867..373b8f0e451 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentAsExpressionToAlsoConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentAsExpressionToAlsoConversion.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.nj2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.utils.addToStdlib.cast -class AssignmentAsExpressionToAlsoConversion(val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class AssignmentAsExpressionToAlsoConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaAssignmentExpression) return recurse(element) element.invalidate() @@ -21,11 +21,11 @@ class AssignmentAsExpressionToAlsoConversion(val context: NewJ2kConverterContext val alsoExpression = JKKtAlsoCallExpressionImpl( JKBlockStatementImpl( JKBlockImpl(listOf(JKKtAssignmentStatementImpl(element.field, JKStubExpressionImpl(), element.operator))) - ), context.symbolProvider.provideMethodSymbol("kotlin.also") + ), symbolProvider.provideMethodSymbol("kotlin.also") ).also { it.statement.cast().block.statements.first().cast().expression = JKFieldAccessExpressionImpl( - context.symbolProvider.provideUniverseSymbol( + symbolProvider.provideUniverseSymbol( JKParameterImpl(JKTypeElementImpl(JKContextType), JKNameIdentifierImpl("it")) ) )//TODO introduce symbol diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementOperatorConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementOperatorConversion.kt index 8ba2c694446..21292b108f5 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementOperatorConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementOperatorConversion.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.nj2k.conversions import com.intellij.psi.JavaTokenType +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.copyTreeAndDetach import org.jetbrains.kotlin.nj2k.tree.JKKtAssignmentStatement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement @@ -13,7 +14,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKBinaryExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKJavaOperatorImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKJavaOperatorToken -class AssignmentStatementOperatorConversion : RecursiveApplicableConversionBase() { +class AssignmentStatementOperatorConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKKtAssignmentStatement) return recurse(element) val operator = element.operator as? JKJavaOperatorImpl ?: return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSimplifyAlsoConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSimplifyAlsoConversion.kt index 05628930017..78bc436c987 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSimplifyAlsoConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSimplifyAlsoConversion.kt @@ -5,11 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKStubExpressionImpl -class AssignmentStatementSimplifyAlsoConversion : RecursiveApplicableConversionBase() { +class AssignmentStatementSimplifyAlsoConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKExpressionStatement) return recurse(element) val qualifiedExpression = element.expression as? JKQualifiedExpression ?: return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSimplifyValConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSimplifyValConversion.kt index 77dd88c1080..896016c33c6 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSimplifyValConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSimplifyValConversion.kt @@ -5,10 +5,11 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKStubExpressionImpl -class AssignmentStatementSimplifyValConversion : RecursiveApplicableConversionBase() { +class AssignmentStatementSimplifyValConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKKtAlsoCallExpression) return recurse(element) val codeBlock = (element.statement as? JKBlockStatement)?.block ?: return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSplitAlsoConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSplitAlsoConversion.kt index 4b69f15bcb0..e6284bb61fa 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSplitAlsoConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementSplitAlsoConversion.kt @@ -5,11 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.copyTreeAndDetach import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class AssignmentStatementSplitAlsoConversion : RecursiveApplicableConversionBase() { +class AssignmentStatementSplitAlsoConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { return recurse( when (element) { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementValCreationConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementValCreationConversion.kt index 391f1c0377d..7162b12b940 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementValCreationConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementValCreationConversion.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class AssignmentStatementValCreationConversion(val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class AssignmentStatementValCreationConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKKtAlsoCallExpression) return recurse(element) val codeBlock = (element.statement as? JKBlockStatement)?.block ?: return recurse(element) @@ -29,7 +29,7 @@ class AssignmentStatementValCreationConversion(val context: NewJ2kConverterConte ex1, JKMutabilityModifierElementImpl(Mutability.IMMUTABLE) ).also { - assignableExpr.expression = JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it)) + assignableExpr.expression = JKFieldAccessExpressionImpl(symbolProvider.provideUniverseSymbol(it)) }, JKLocalVariableImpl( JKTypeElementImpl(JKJavaVoidType/*TODO*/), JKNameIdentifierImpl("i"), @@ -37,7 +37,7 @@ class AssignmentStatementValCreationConversion(val context: NewJ2kConverterConte JKMutabilityModifierElementImpl(Mutability.UNKNOWN) ).also { assignableExpr.indexExpression = - JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it)) + JKFieldAccessExpressionImpl(symbolProvider.provideUniverseSymbol(it)) } ) ) @@ -55,7 +55,7 @@ class AssignmentStatementValCreationConversion(val context: NewJ2kConverterConte ex, JKMutabilityModifierElementImpl(Mutability.UNKNOWN) ).also { - assignableExpr.receiver = JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it)) + assignableExpr.receiver = JKFieldAccessExpressionImpl(symbolProvider.provideUniverseSymbol(it)) } ) ) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BlockToRunConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BlockToRunConversion.kt index 9d01171fc70..d9bc4f45fb1 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BlockToRunConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BlockToRunConversion.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class BlockToRunConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class BlockToRunConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKBlockStatement) return recurse(element) @@ -24,7 +24,7 @@ class BlockToRunConversion(private val context: NewJ2kConverterContext) : Recurs emptyList() ) val call = JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.run"), + symbolProvider.provideMethodSymbol("kotlin.run"), JKArgumentListImpl(lambda) ) return recurse(JKExpressionStatementImpl(call).withNonCodeElementsFrom(element)) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt index 987f21dc60a..2beea148b22 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKArgumentListImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtCallExpressionImpl -class BoxedTypeOperationsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class BoxedTypeOperationsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { return recurse( when (element) { @@ -39,7 +39,7 @@ class BoxedTypeOperationsConversion(private val context: NewJ2kConverterContext) val primitiveTypeName = boxedTypeToPrimitiveType[boxedJavaType] ?: return null if (operationType !in primitiveTypeNames) return null return JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol( + symbolProvider.provideMethodSymbol( "kotlin.${primitiveTypeName.capitalize()}.to${operationType.capitalize()}" ), JKArgumentListImpl() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt index babf6969970..bc83dd02cca 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.utils.addToStdlib.cast import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class BuiltinMembersConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKExpression) return recurse(element) return recurse(element.convert() ?: element) @@ -89,19 +89,19 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re when (from) { is JKMethodCallExpression -> JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol(fqName), + symbolProvider.provideMethodSymbol(fqName), argumentsProvider(from::arguments.detached()), from::typeArgumentList.detached() ).withNonCodeElementsFrom(from) is JKFieldAccessExpression -> JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol(fqName), + symbolProvider.provideMethodSymbol(fqName), JKArgumentListImpl(), JKTypeArgumentListImpl() ).withNonCodeElementsFrom(from) is JKJavaNewExpression -> JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol(fqName), + symbolProvider.provideMethodSymbol(fqName), argumentsProvider(from::arguments.detached()), JKTypeArgumentListImpl() ).withNonCodeElementsFrom(from) @@ -116,11 +116,11 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re when (from) { is JKMethodCallExpression -> JKFieldAccessExpressionImpl( - context.symbolProvider.provideFieldSymbol(fqName) + symbolProvider.provideFieldSymbol(fqName) ).withNonCodeElementsFrom(from) is JKFieldAccessExpression -> JKFieldAccessExpressionImpl( - context.symbolProvider.provideFieldSymbol(fqName) + symbolProvider.provideFieldSymbol(fqName) ).withNonCodeElementsFrom(from) else -> error("Bad conversion") } @@ -137,7 +137,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re arguments.first()::value.detached().parenthesizeIfBinaryExpression(), JKKtQualifierImpl.DOT, JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol(fqName), + symbolProvider.provideMethodSymbol(fqName), JKArgumentListImpl(arguments.drop(1)), from::typeArgumentList.detached() ) @@ -267,11 +267,11 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re Method("java.lang.String.indexOf") convertTo Method("kotlin.text.indexOf"), Method("java.lang.String.lastIndexOf") convertTo Method("kotlin.text.lastIndexOf"), Method("java.lang.String.getBytes") convertTo Method("kotlin.text.toByteArray") - withByArgumentsFilter { it.singleOrNull()?.type(context.symbolProvider)?.isStringType() == true } + withByArgumentsFilter { it.singleOrNull()?.type(symbolProvider)?.isStringType() == true } withArgumentsProvider { arguments -> val argument = arguments.arguments.single()::value.detached() val call = JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.text.charset"), + symbolProvider.provideMethodSymbol("kotlin.text.charset"), JKArgumentListImpl(argument) ) JKArgumentListImpl(call) @@ -280,7 +280,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re Method("java.lang.String.valueOf") convertTo ExtensionMethod("kotlin.Any.toString") withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER - withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == false }, + withByArgumentsFilter { it.isNotEmpty() && it.first().type(symbolProvider)?.isArrayType() == false }, Method("java.lang.String.getChars") convertTo Method("kotlin.text.toCharArray") @@ -296,12 +296,12 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re Method("java.lang.String.valueOf") convertTo Method("kotlin.String") withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER - withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == true }, + withByArgumentsFilter { it.isNotEmpty() && it.first().type(symbolProvider)?.isArrayType() == true }, Method("java.lang.String.copyValueOf") convertTo Method("kotlin.String") withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER - withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == true }, + withByArgumentsFilter { it.isNotEmpty() && it.first().type(symbolProvider)?.isArrayType() == true }, Method("java.lang.String.replaceAll") convertTo Method("kotlin.text.replace") @@ -309,7 +309,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re val detachedArguments = arguments::arguments.detached() val first = detachedArguments.first()::value.detached().callOn( - context.symbolProvider.provideMethodSymbol("kotlin.text.toRegex") + symbolProvider.provideMethodSymbol("kotlin.text.toRegex") ) JKArgumentListImpl(listOf(JKArgumentImpl(first)) + detachedArguments.drop(1)) }, @@ -319,7 +319,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re val detachedArguments = arguments::arguments.detached() val first = detachedArguments.first()::value.detached().callOn( - context.symbolProvider.provideMethodSymbol("kotlin.text.toRegex") + symbolProvider.provideMethodSymbol("kotlin.text.toRegex") ) JKArgumentListImpl(listOf(JKArgumentImpl(first)) + detachedArguments.drop(1)) @@ -370,7 +370,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re firstArgument, secondArgument, KtTokens.PLUS, - context.symbolProvider + symbolProvider ) } withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER, @@ -392,14 +392,14 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re arguments.arguments = arguments.arguments.dropLast(1) }.let { it.callOn( - context.symbolProvider.provideMethodSymbol("kotlin.collections.dropLastWhile"), + symbolProvider.provideMethodSymbol("kotlin.collections.dropLastWhile"), JKLambdaExpressionImpl( JKFieldAccessExpressionImpl( JKUnresolvedField(//TODO replace with `it` parameter "it", - context.symbolProvider + symbolProvider ) - ).callOn(context.symbolProvider.provideMethodSymbol("kotlin.text.isEmpty")) + ).callOn(symbolProvider.provideMethodSymbol("kotlin.text.isEmpty")) .asStatement(), emptyList() ) @@ -409,7 +409,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re else -> expression.also { val lastArgument = arguments.arguments.last().value.copyTreeAndDetach() .callOn( - context.symbolProvider.provideMethodSymbol("kotlin.ranges.coerceAtLeast"), + symbolProvider.provideMethodSymbol("kotlin.ranges.coerceAtLeast"), JKKtLiteralExpressionImpl("0", JKLiteralExpression.LiteralType.INT) ) arguments.arguments = arguments.arguments.dropLast(1) + JKArgumentImpl(lastArgument) @@ -432,12 +432,12 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re JKFieldAccessExpressionImpl( JKUnresolvedField(//TODO replace with `it` parameter "it", - context.symbolProvider + symbolProvider ) ), JKKtLiteralExpressionImpl("' '", JKLiteralExpression.LiteralType.CHAR), KtTokens.LTEQ, - context.symbolProvider + symbolProvider ) ), emptyList() @@ -446,9 +446,9 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re }, Method("java.lang.String.format") convertTo CustomExpression { expression -> JKClassAccessExpressionImpl( - context.symbolProvider.provideClassSymbol(KotlinBuiltIns.FQ_NAMES.string) + symbolProvider.provideClassSymbol(KotlinBuiltIns.FQ_NAMES.string) ).callOn( - context.symbolProvider.provideMethodSymbol("kotlin.text.String.format"), + symbolProvider.provideMethodSymbol("kotlin.text.String.format"), (expression as JKMethodCallExpression).arguments::arguments.detached() ) } withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER, @@ -501,5 +501,5 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re private fun JKExpression.castToTypedArray() = - callOn(context.symbolProvider.provideMethodSymbol("kotlin.collections.toTypedArray")) + callOn(symbolProvider.provideMethodSymbol("kotlin.collections.toTypedArray")) } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ClassToObjectPromotionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ClassToObjectPromotionConversion.kt index 0f629519ffc..df0ccfb010b 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ClassToObjectPromotionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ClassToObjectPromotionConversion.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKClassImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKModalityModifierElementImpl import org.jetbrains.kotlin.nj2k.tree.impl.psi -class ClassToObjectPromotionConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class ClassToObjectPromotionConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element is JKClass && element.classKind == JKClass.ClassKind.CLASS) { val companion = element.getCompanion() ?: return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt index 350cef00ccf..3f17f39dc44 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class CollectImportsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class CollectImportsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { when (element) { is JKClassAccessExpression -> addSymbol(element.identifier) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ConstructorConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ConstructorConversion.kt index ee3ee939b11..c75a34d379d 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ConstructorConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ConstructorConversion.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKKtConstructorImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKStubExpressionImpl -class ConstructorConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class ConstructorConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaMethod) return recurse(element) val outerClass = element.parentOfType() ?: return recurse(element) @@ -29,7 +29,7 @@ class ConstructorConversion(private val context: NewJ2kConverterContext) : Recur element.visibilityElement, element.modalityElement ).also { - context.symbolProvider.transferSymbol(it, element) + symbolProvider.transferSymbol(it, element) }.withNonCodeElementsFrom(element) } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/DefaultArgumentsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/DefaultArgumentsConversion.kt index 4aa5e2d50ad..ba26e872ef2 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/DefaultArgumentsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/DefaultArgumentsConversion.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldAccessExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.psi import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class DefaultArgumentsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class DefaultArgumentsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { private fun JKMethod.canBeGetterOrSetter() = name.value.asGetterName() != null || name.value.asSetterName() != null @@ -97,7 +97,7 @@ class DefaultArgumentsConversion(private val context: NewJ2kConverterContext) : val target = on.identifier.target if (target is JKParameter) { val newSymbol = - context.symbolProvider.provideUniverseSymbol(calledMethod.parameters[method.parameters.indexOf(target)]) + symbolProvider.provideUniverseSymbol(calledMethod.parameters[method.parameters.indexOf(target)]) return JKFieldAccessExpressionImpl(newSymbol) } } @@ -115,7 +115,7 @@ class DefaultArgumentsConversion(private val context: NewJ2kConverterContext) : if (method.hasParametersWithDefaultValues() && (method.visibility == Visibility.PUBLIC || method.visibility == Visibility.INTERNAL) ) { - method.annotationList.annotations += jvmAnnotation("JvmOverloads", context.symbolProvider) + method.annotationList.annotations += jvmAnnotation("JvmOverloads", symbolProvider) } } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EnumFieldAccessConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EnumFieldAccessConversion.kt index 263c0e7783b..cd0590a6a5a 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EnumFieldAccessConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EnumFieldAccessConversion.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKQualifiedExpressionImpl import org.jetbrains.kotlin.psi.psiUtil.containingClass -class EnumFieldAccessConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class EnumFieldAccessConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKFieldAccessExpression) return recurse(element) if ((element.parent as? JKQualifiedExpression)?.selector == element) return recurse(element) @@ -34,11 +34,11 @@ class EnumFieldAccessConversion(private val context: NewJ2kConverterContext) : R private fun JKFieldSymbol.enumClassSymbol(): JKClassSymbol? = when { this is JKMultiverseFieldSymbol && target is PsiEnumConstant -> - context.symbolProvider.provideDirectSymbol(target.containingClass!!) as JKClassSymbol + symbolProvider.provideDirectSymbol(target.containingClass!!) as JKClassSymbol this is JKMultiverseKtEnumEntrySymbol -> - context.symbolProvider.provideDirectSymbol(target.containingClass()!!) as JKClassSymbol + symbolProvider.provideDirectSymbol(target.containingClass()!!) as JKClassSymbol this is JKUniverseFieldSymbol && target is JKEnumConstant -> - context.symbolProvider.provideUniverseSymbol(target.parentOfType()!!) + symbolProvider.provideUniverseSymbol(target.parentOfType()!!) else -> null } } \ No newline at end of file diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EqualsOperatorConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EqualsOperatorConversion.kt index 88e9adb09ac..06315838377 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EqualsOperatorConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EqualsOperatorConversion.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.nj2k.symbols.deepestFqName import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKParenthesizedExpressionImpl -class EqualsOperatorConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class EqualsOperatorConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKQualifiedExpression) return recurse(element) if (element.receiver is JKSuperExpression) return recurse(element) @@ -23,7 +23,7 @@ class EqualsOperatorConversion(private val context: NewJ2kConverterContext) : Re equalsExpression( element::receiver.detached(), argument::value.detached(), - context.symbolProvider + symbolProvider ) ) ) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FieldToPropertyConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FieldToPropertyConversion.kt index 8008fe79490..19fb206022c 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FieldToPropertyConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FieldToPropertyConversion.kt @@ -5,10 +5,11 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class FieldToPropertyConversion : RecursiveApplicableConversionBase() { +class FieldToPropertyConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaField) return recurse(element) element.invalidate() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FilterImportsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FilterImportsConversion.kt index ac204cf45b3..c36f1a3e0c0 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FilterImportsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FilterImportsConversion.kt @@ -6,11 +6,12 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.nj2k.ImportStorage +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKImportList import org.jetbrains.kotlin.nj2k.tree.JKTreeElement -class FilterImportsConversion : RecursiveApplicableConversionBase() { +class FilterImportsConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKImportList) return recurse(element) element.imports = element.imports.filter { import -> diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt index 4dca3a74372..d5f4d6bcd26 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.* import kotlin.math.abs -class ForConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class ForConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { private val referenceSearcher: ReferenceSearcher get() = context.converter.converterServices.oldServices.referenceSearcher @@ -53,7 +53,7 @@ class ForConversion(private val context: NewJ2kConverterContext) : RecursiveAppl JKExpressionStatementImpl( runExpression( convertedFromForLoopSyntheticWhileStatement, - context.symbolProvider + symbolProvider ) ) !notNeedParentBlock -> blockStatement(convertedFromForLoopSyntheticWhileStatement) @@ -63,7 +63,7 @@ class ForConversion(private val context: NewJ2kConverterContext) : RecursiveAppl private fun createWhileBody(loopStatement: JKJavaForLoopStatement): JKStatement { if (loopStatement.updaters.singleOrNull() is JKEmptyStatement) return loopStatement::body.detached() - val continueStatementConverter = object : RecursiveApplicableConversionBase() { + val continueStatementConverter = object : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKContinueStatement) return recurse(element) val elementPsi = element.psi()!! @@ -90,7 +90,7 @@ class ForConversion(private val context: NewJ2kConverterContext) : RecursiveAppl val statements = if (hasNameConflict) { - listOf(JKExpressionStatementImpl(runExpression(body, context.symbolProvider))) + loopStatement::updaters.detached() + listOf(JKExpressionStatementImpl(runExpression(body, symbolProvider))) + loopStatement::updaters.detached() } else { body.block::statements.detached() + loopStatement::updaters.detached() } @@ -185,7 +185,7 @@ class ForConversion(private val context: NewJ2kConverterContext) : RecursiveAppl start, convertBound(bound, if (inclusiveComparison) 0 else -1), JKKtSingleValueOperatorToken(KtTokens.RANGE), - context.symbolProvider + symbolProvider ) } } @@ -203,7 +203,7 @@ class ForConversion(private val context: NewJ2kConverterContext) : RecursiveAppl bound, JKKtLiteralExpressionImpl(abs(correction).toString(), JKLiteralExpression.LiteralType.INT), JKKtSingleValueOperatorToken(sign), - context.symbolProvider + symbolProvider ) } @@ -238,7 +238,7 @@ class ForConversion(private val context: NewJ2kConverterContext) : RecursiveAppl indices, JKKtQualifierImpl.DOT, JKJavaMethodCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.collections.reversed"), + symbolProvider.provideMethodSymbol("kotlin.collections.reversed"), JKArgumentListImpl() ) ) @@ -255,7 +255,7 @@ class ForConversion(private val context: NewJ2kConverterContext) : RecursiveAppl private fun indicesByArrayLength(javaSizeCall: JKQualifiedExpression): JKQualifiedExpression? { val methodCall = javaSizeCall.selector as? JKFieldAccessExpression ?: return null - val receiverType = javaSizeCall.receiver.type(context.symbolProvider) + val receiverType = javaSizeCall.receiver.type(symbolProvider) if (methodCall.identifier.name == "length" && receiverType is JKJavaArrayType) { return toIndicesCall(javaSizeCall) } @@ -265,7 +265,7 @@ class ForConversion(private val context: NewJ2kConverterContext) : RecursiveAppl private fun toIndicesCall(javaSizeCall: JKQualifiedExpression): JKQualifiedExpression? { if (javaSizeCall.psi == null) return null val selector = JKFieldAccessExpressionImpl( - context.symbolProvider.provideFieldSymbol("kotlin.collections.indices") + symbolProvider.provideFieldSymbol("kotlin.collections.indices") ) return JKQualifiedExpressionImpl(javaSizeCall::receiver.detached(), javaSizeCall.operator, selector) } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FunctionAsAnonymousObjectToLambdaConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FunctionAsAnonymousObjectToLambdaConversion.kt index 299dc57c5c6..47f963f7e01 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FunctionAsAnonymousObjectToLambdaConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FunctionAsAnonymousObjectToLambdaConversion.kt @@ -5,13 +5,14 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.symbols.JKClassSymbol import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKBlockStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKLambdaExpressionImpl import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class FunctionAsAnonymousObjectToLambdaConversion : RecursiveApplicableConversionBase() { +class FunctionAsAnonymousObjectToLambdaConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaNewExpression) return recurse(element) if (element.isAnonymousClass() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt index ecf09db135f..f35038a8a28 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class ImplicitCastsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class ImplicitCastsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { when (element) { is JKVariable -> convertVariable(element) @@ -30,8 +30,8 @@ class ImplicitCastsConversion(private val context: NewJ2kConverterContext) : Rec private fun convertBinaryExpression(binaryExpression: JKBinaryExpression): JKExpression { fun JKBinaryExpression.convertBinaryOperationWithChar(): JKBinaryExpression { - val leftType = left.type(context.symbolProvider)?.asPrimitiveType() ?: return this - val rightType = right.type(context.symbolProvider)?.asPrimitiveType() ?: return this + val leftType = left.type(symbolProvider)?.asPrimitiveType() ?: return this + val rightType = right.type(symbolProvider)?.asPrimitiveType() ?: return this val leftOperandCastedCasted by lazy { JKBinaryExpressionImpl( @@ -72,7 +72,7 @@ class ImplicitCastsConversion(private val context: NewJ2kConverterContext) : Rec } private fun convertAssignmentStatement(statement: JKKtAssignmentStatement) { - val expressionType = statement.field.type(context.symbolProvider) ?: return + val expressionType = statement.field.type(symbolProvider) ?: return statement.expression.castTo(expressionType)?.also { statement.expression = it } @@ -99,13 +99,13 @@ class ImplicitCastsConversion(private val context: NewJ2kConverterContext) : Rec private fun JKExpression.castStringToRegex(toType: JKType): JKExpression? { if (toType.safeAs()?.classReference?.fqName != "java.util.regex.Pattern") return null - val expressionType = type(context.symbolProvider) ?: return null + val expressionType = type(symbolProvider) ?: return null if (!expressionType.isStringType()) return null return JKQualifiedExpressionImpl( copyTreeAndDetach().parenthesizeIfBinaryExpression(), JKKtQualifierImpl.DOT, JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.text.toRegex"), + symbolProvider.provideMethodSymbol("kotlin.text.toRegex"), JKArgumentListImpl(), JKTypeArgumentListImpl() ) @@ -120,7 +120,7 @@ class ImplicitCastsConversion(private val context: NewJ2kConverterContext) : Rec val casted = expression.castToAsPrimitiveTypes(toType, strict) ?: return null return JKPrefixExpressionImpl(casted, operator) } - val expressionTypeAsPrimitive = type(context.symbolProvider)?.asPrimitiveType() ?: return null + val expressionTypeAsPrimitive = type(symbolProvider)?.asPrimitiveType() ?: return null val toTypeAsPrimitive = toType.asPrimitiveType() ?: return null if (toTypeAsPrimitive == expressionTypeAsPrimitive) return null @@ -147,7 +147,7 @@ class ImplicitCastsConversion(private val context: NewJ2kConverterContext) : Rec this.copyTreeAndDetach(), JKKtQualifierImpl.DOT, JKJavaMethodCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.$initialTypeName.$conversionFunctionName"), + symbolProvider.provideMethodSymbol("kotlin.$initialTypeName.$conversionFunctionName"), JKArgumentListImpl() ) ) @@ -155,7 +155,7 @@ class ImplicitCastsConversion(private val context: NewJ2kConverterContext) : Rec private fun JKExpression.castTo(toType: JKType, strict: Boolean = false): JKExpression? { - val expressionType = type(context.symbolProvider) + val expressionType = type(symbolProvider) if (expressionType == toType) return null castToAsPrimitiveTypes(toType, strict)?.also { return it } castStringToRegex(toType)?.also { return it } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt index 5344615e7cb..b0e5e9d38c0 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKJavaLiteralExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKJavaPrimitiveTypeImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKNullLiteral -class ImplicitInitializerConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class ImplicitInitializerConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { enum class InitializationState { INITIALIZED_IN_ALL_CONSTRUCTORS, @@ -48,11 +48,11 @@ class ImplicitInitializerConversion(private val context: NewJ2kConverterContext) } private fun JKJavaField.initializationState(): InitializationState { - val fieldSymbol = context.symbolProvider.provideUniverseSymbol(this) + val fieldSymbol = symbolProvider.provideUniverseSymbol(this) val containingClass = parentOfType() ?: return InitializationState.NON_INITIALIZED val symbolToConstructor = containingClass.declarationList .filterIsInstance() - .map { context.symbolProvider.provideUniverseSymbol(it) to it } + .map { symbolProvider.provideUniverseSymbol(it) to it } .toMap() fun JKMethodSymbol.parentConstructor(): JKMethodSymbol? = @@ -61,7 +61,7 @@ class ImplicitInitializerConversion(private val context: NewJ2kConverterContext) val constructors = containingClass.declarationList .filterIsInstance() - .map { context.symbolProvider.provideUniverseSymbol(it) to false } + .map { symbolProvider.provideUniverseSymbol(it) to false } .toMap() .toMutableMap() @@ -87,7 +87,7 @@ class ImplicitInitializerConversion(private val context: NewJ2kConverterContext) } for (constructor in constructorsWithInitializers) { - constructors[context.symbolProvider.provideUniverseSymbol(constructor)] = true + constructors[symbolProvider.provideUniverseSymbol(constructor)] = true } val constructorsToInitialize = mutableListOf() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InnerClassConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InnerClassConversion.kt index cefe3b03e82..f1eb77d69b8 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InnerClassConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InnerClassConversion.kt @@ -5,13 +5,14 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.OtherModifier import org.jetbrains.kotlin.nj2k.tree.JKClass import org.jetbrains.kotlin.nj2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.impl.JKOtherModifierElementImpl import org.jetbrains.kotlin.nj2k.tree.isLocalClass -class InnerClassConversion : RecursiveApplicableConversionBase() { +class InnerClassConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClass) return recurse(element) return recurseArmed(element, element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InsertDefaultPrimaryConstructorConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InsertDefaultPrimaryConstructorConversion.kt index 77b6114823d..d863508da94 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InsertDefaultPrimaryConstructorConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InsertDefaultPrimaryConstructorConversion.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class InsertDefaultPrimaryConstructorConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class InsertDefaultPrimaryConstructorConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClass) return recurse(element) if (element.classKind != JKClass.ClassKind.CLASS) return recurse(element) @@ -35,7 +35,7 @@ class InsertDefaultPrimaryConstructorConversion(private val context: NewJ2kConve if (superClassSymbol is JKUniverseClassSymbol) { val superClass = recurse(superClassSymbol.target) - val superConstructor = context.symbolProvider.provideUniverseSymbol( + val superConstructor = symbolProvider.provideUniverseSymbol( superClass.declarationList.singleOrNull { it is JKKtConstructor && it.parameters.isEmpty() } as? JKMethod ?: return recurse( element ) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InterfaceWithFieldConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InterfaceWithFieldConversion.kt index e6870ae67e1..b7ea8546e32 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InterfaceWithFieldConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InterfaceWithFieldConversion.kt @@ -5,11 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.getOrCreateCompanionObject import org.jetbrains.kotlin.nj2k.tree.* -class InterfaceWithFieldConversion : RecursiveApplicableConversionBase() { +class InterfaceWithFieldConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClass) return recurse(element) if (element.classKind != JKClass.ClassKind.INTERFACE diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InternalDeclarationConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InternalDeclarationConversion.kt index 5a9999a5ca1..cef505a6c40 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InternalDeclarationConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InternalDeclarationConversion.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.psi import org.jetbrains.kotlin.nj2k.visibility -class InternalDeclarationConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class InternalDeclarationConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKVisibilityOwner || element !is JKModalityOwner) return recurse(element) val containingClass = element.parentOfType() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaAnnotationsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaAnnotationsConversion.kt index 96adcffb297..571935296d3 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaAnnotationsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaAnnotationsConversion.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldAccessExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtLiteralExpressionImpl import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class JavaAnnotationsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class JavaAnnotationsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element is JKAnnotationList) { for (annotation in element.annotations) { @@ -29,14 +29,14 @@ class JavaAnnotationsConversion(private val context: NewJ2kConverterContext) : R private fun processAnnotation(annotation: JKAnnotation) { if (annotation.classSymbol.fqName == "java.lang.Deprecated") { - annotation.classSymbol = context.symbolProvider.provideClassSymbol("kotlin.Deprecated") + annotation.classSymbol = symbolProvider.provideClassSymbol("kotlin.Deprecated") if (annotation.arguments.isEmpty()) { annotation.arguments += JKAnnotationParameterImpl(JKKtLiteralExpressionImpl("\"\"", JKLiteralExpression.LiteralType.STRING)) } } if (annotation.classSymbol.fqName == "java.lang.annotation.Target") { - annotation.classSymbol = context.symbolProvider.provideClassSymbol("kotlin.annotation.Target") + annotation.classSymbol = symbolProvider.provideClassSymbol("kotlin.annotation.Target") val arguments = annotation.arguments.singleOrNull()?.let { parameter -> val value = parameter.value @@ -51,7 +51,7 @@ class JavaAnnotationsConversion(private val context: NewJ2kConverterContext) : R value.fieldAccessFqName() ?.let { targetMappings[it] } ?.map { fqName -> - JKFieldAccessExpressionImpl(context.symbolProvider.provideFieldSymbol(fqName)) + JKFieldAccessExpressionImpl(symbolProvider.provideFieldSymbol(fqName)) } ?: listOf(value.copyTreeAndDetach()) } annotation.arguments = newArguments.map { JKAnnotationParameterImpl(it) } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaMethodToKotlinFunctionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaMethodToKotlinFunctionConversion.kt index 6b01606a2b2..951614289f4 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaMethodToKotlinFunctionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaMethodToKotlinFunctionConversion.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKKtFunctionImpl import org.jetbrains.kotlin.nj2k.tree.impl.psi -class JavaMethodToKotlinFunctionConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class JavaMethodToKotlinFunctionConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaMethod) return recurse(element) @@ -39,7 +39,7 @@ class JavaMethodToKotlinFunctionConversion(private val context: NewJ2kConverterC it.annotations += throwAnnotation( element.throwsList.map { it.type.updateNullabilityRecursively(Nullability.NotNull) }, - context.symbolProvider + symbolProvider ) } }, @@ -48,7 +48,7 @@ class JavaMethodToKotlinFunctionConversion(private val context: NewJ2kConverterC element.modalityElement ).also { it.psi = element.psi - context.symbolProvider.transferSymbol(it, element) + symbolProvider.transferSymbol(it, element) it.leftParen.takeNonCodeElementsFrom(element.leftParen) it.rightParen.takeNonCodeElementsFrom(element.rightParen) }.withNonCodeElementsFrom(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaModifiersConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaModifiersConversion.kt index c733f818d34..12e7ea41dc4 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaModifiersConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaModifiersConversion.kt @@ -10,38 +10,37 @@ import org.jetbrains.kotlin.nj2k.annotationByFqName import org.jetbrains.kotlin.nj2k.jvmAnnotation import org.jetbrains.kotlin.nj2k.tree.* -class JavaModifiersConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class JavaModifiersConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element is JKModalityOwner && element is JKAnnotationListOwner) { val overrideAnnotation = element.annotationList.annotationByFqName("java.lang.Override") if (overrideAnnotation != null) { element.annotationList.annotations -= overrideAnnotation - //TODO change modality to OVERRIDE??? } } if (element is JKOtherModifiersOwner && element is JKAnnotationListOwner) { element.elementByModifier(OtherModifier.VOLATILE)?.also { modifierElement -> element.otherModifierElements -= modifierElement element.annotationList.annotations += - jvmAnnotation("Volatile", context.symbolProvider).withNonCodeElementsFrom(modifierElement) + jvmAnnotation("Volatile", symbolProvider).withNonCodeElementsFrom(modifierElement) } element.elementByModifier(OtherModifier.TRANSIENT)?.also { modifierElement -> element.otherModifierElements -= modifierElement element.annotationList.annotations += - jvmAnnotation("Transient", context.symbolProvider).withNonCodeElementsFrom(modifierElement) + jvmAnnotation("Transient", symbolProvider).withNonCodeElementsFrom(modifierElement) } element.elementByModifier(OtherModifier.STRICTFP)?.also { modifierElement -> element.otherModifierElements -= modifierElement element.annotationList.annotations += - jvmAnnotation("Strictfp", context.symbolProvider).withNonCodeElementsFrom(modifierElement) + jvmAnnotation("Strictfp", symbolProvider).withNonCodeElementsFrom(modifierElement) } element.elementByModifier(OtherModifier.SYNCHRONIZED)?.also { modifierElement -> element.otherModifierElements -= modifierElement element.annotationList.annotations += - jvmAnnotation("Synchronized", context.symbolProvider).withNonCodeElementsFrom(modifierElement) + jvmAnnotation("Synchronized", symbolProvider).withNonCodeElementsFrom(modifierElement) } element.elementByModifier(OtherModifier.NATIVE)?.also { modifierElement -> diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaStandardMethodsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaStandardMethodsConversion.kt index 08d37c10e30..f764bb234b9 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaStandardMethodsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaStandardMethodsConversion.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.nj2k.symbols.JKUnresolvedClassSymbol import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class JavaStandardMethodsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class JavaStandardMethodsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClass) return recurse(element) for (declaration in element.classBody.declarations) { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JetbrainsNullableAnnotationsConverter.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JetbrainsNullableAnnotationsConverter.kt index 2dee89dfedb..e6bad9ab8e5 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JetbrainsNullableAnnotationsConverter.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JetbrainsNullableAnnotationsConverter.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl -class JetbrainsNullableAnnotationsConverter(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class JetbrainsNullableAnnotationsConverter(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKAnnotationListOwner) return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LabeledStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LabeledStatementConversion.kt index 54132072013..165735bf97b 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LabeledStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LabeledStatementConversion.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.asStatement import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKBlockStatementWithoutBracketsImpl @@ -13,7 +14,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKLabeledStatementImpl import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class LabeledStatementConversion : RecursiveApplicableConversionBase() { +class LabeledStatementConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKExpressionStatement) return recurse(element) val labeledStatement = element.expression as? JKLabeledStatement ?: return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LiteralConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LiteralConversion.kt index 14ff762a5fa..8da2806bdc8 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LiteralConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LiteralConversion.kt @@ -5,11 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKKtLiteralExpressionImpl import java.math.BigInteger -class LiteralConversion : RecursiveApplicableConversionBase() { +class LiteralConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaLiteralExpression) return recurse(element) return element.convertLiteral() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MainFunctionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MainFunctionConversion.kt index c7e2f395d93..daf418a0569 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MainFunctionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MainFunctionConversion.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl //TODO temporary -class MainFunctionConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class MainFunctionConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKMethod) return recurse(element) if (element.isMainFunctionDeclaration()) { @@ -30,7 +30,7 @@ class MainFunctionConversion(private val context: NewJ2kConverterContext) : Recu } element.annotationList.annotations += JKAnnotationImpl( - context.symbolProvider.provideClassSymbol("kotlin.jvm.JvmStatic"), + symbolProvider.provideClassSymbol("kotlin.jvm.JvmStatic"), emptyList() ) } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MatchBasedConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MatchBasedConversion.kt index 1ebdefa46f3..394377961a6 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MatchBasedConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MatchBasedConversion.kt @@ -5,11 +5,11 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.SequentialBaseConversion import org.jetbrains.kotlin.nj2k.tree.JKTreeElement -abstract class MatchBasedConversion : SequentialBaseConversion { - +abstract class MatchBasedConversion(override val context: NewJ2kConverterContext) : SequentialBaseConversion { fun applyRecursive(element: R, data: T, func: (JKTreeElement, T) -> JKTreeElement): R = org.jetbrains.kotlin.nj2k.tree.applyRecursive(element, data, ::onElementChanged, func) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MethodReferenceToLambdaConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MethodReferenceToLambdaConversion.kt index ecd18ce2f91..07764034d05 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MethodReferenceToLambdaConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MethodReferenceToLambdaConversion.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class MethodReferenceToLambdaConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class MethodReferenceToLambdaConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKMethodReferenceExpression) return recurse(element) val symbol = element.identifier @@ -59,7 +59,7 @@ class MethodReferenceToLambdaConversion(private val context: NewJ2kConverterCont } else emptyList() val arguments = parameters.map { parameter -> - val parameterSymbol = context.symbolProvider.provideUniverseSymbol(parameter) + val parameterSymbol = symbolProvider.provideUniverseSymbol(parameter) JKArgumentImpl(JKFieldAccessExpressionImpl(parameterSymbol)) } val callExpression = @@ -75,7 +75,7 @@ class MethodReferenceToLambdaConversion(private val context: NewJ2kConverterCont } val qualifier = when { receiverParameter != null -> - JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(receiverParameter)) + JKFieldAccessExpressionImpl(symbolProvider.provideUniverseSymbol(receiverParameter)) element.isConstructorCall -> element.qualifier.safeAs()?.let { it::receiver.detached() } else -> element::qualifier.detached().nullIfStubExpression() } @@ -111,12 +111,12 @@ class MethodReferenceToLambdaConversion(private val context: NewJ2kConverterCont .firstOrNull { !it.hasModifier(JvmModifier.STATIC) } ?.parameterList ?.parameters - ?.map { it.type.toJK(context.symbolProvider).substituteTypeParameters(this) } + ?.map { it.type.toJK(symbolProvider).substituteTypeParameters(this) } is JKMultiverseKtClassSymbol -> reference.target.body ?.functions ?.singleOrNull() ?.valueParameters - ?.map { it.typeReference?.toJK(context.symbolProvider)?.substituteTypeParameters(this) ?: return null } + ?.map { it.typeReference?.toJK(symbolProvider)?.substituteTypeParameters(this) ?: return null } is JKUniverseClassSymbol -> reference.target.classBody.declarations.firstIsInstanceOrNull() ?.parameters ?.map { it.type.type.substituteTypeParameters(this) } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ModalityConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ModalityConversion.kt index d42b2482be3..86ff8e4e383 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ModalityConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ModalityConversion.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKOtherModifierElementImpl import org.jetbrains.kotlin.nj2k.tree.impl.psi -class ModalityConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class ModalityConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { when (element) { is JKClass -> processClass(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MoveInitBlocksToTheEndConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MoveInitBlocksToTheEndConversion.kt index 7127a155ebd..f2f4b131fa3 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MoveInitBlocksToTheEndConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MoveInitBlocksToTheEndConversion.kt @@ -5,11 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKClassBody import org.jetbrains.kotlin.nj2k.tree.JKKtInitDeclaration import org.jetbrains.kotlin.nj2k.tree.JKTreeElement -class MoveInitBlocksToTheEndConversion : RecursiveApplicableConversionBase() { +class MoveInitBlocksToTheEndConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClassBody) return recurse(element) element.declarations = element.declarations.sortedBy { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/NonCodeElementsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/NonCodeElementsConversion.kt index fa0a49c2c50..2f5500b7ccc 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/NonCodeElementsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/NonCodeElementsConversion.kt @@ -5,10 +5,11 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKClass import org.jetbrains.kotlin.nj2k.tree.JKTreeElement -class NonCodeElementsConversion : RecursiveApplicableConversionBase() { +class NonCodeElementsConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { when (element) { is JKClass -> { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/OperatorExpressionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/OperatorExpressionConversion.kt index 519c961d7b3..304ff4c3cc1 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/OperatorExpressionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/OperatorExpressionConversion.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class OperatorExpressionConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class OperatorExpressionConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKOperatorExpression) return recurse(element) val operator = element.operator as? JKJavaOperatorImpl ?: return recurse(element) @@ -34,7 +34,7 @@ class OperatorExpressionConversion(private val context: NewJ2kConverterContext) is JKPostfixExpression -> { val operatorToken = operator.token.toKtToken() val operand = applyToElement(element::expression.detached()) as JKExpression - recurse(kotlinPostfixExpression(operand, operatorToken, context.symbolProvider)) + recurse(kotlinPostfixExpression(operand, operatorToken, symbolProvider)) } else -> TODO(element.javaClass.toString()) }.withNonCodeElementsFrom(element) @@ -43,13 +43,13 @@ class OperatorExpressionConversion(private val context: NewJ2kConverterContext) private fun convertPrefixExpression(operand: JKExpression, javaOperator: JKJavaOperatorImpl) = convertTildeExpression(operand, javaOperator) - ?: kotlinPrefixExpression(operand, javaOperator.token.toKtToken(), context.symbolProvider) + ?: kotlinPrefixExpression(operand, javaOperator.token.toKtToken(), symbolProvider) private fun convertTildeExpression(operand: JKExpression, javaOperator: JKJavaOperatorImpl): JKExpression? = if (javaOperator.token.psiToken == JavaTokenType.TILDE) { val invCall = JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.Int.inv"),//TODO check if Long + symbolProvider.provideMethodSymbol("kotlin.Int.inv"),//TODO check if Long JKArgumentListImpl() ) JKQualifiedExpressionImpl( @@ -61,21 +61,21 @@ class OperatorExpressionConversion(private val context: NewJ2kConverterContext) private fun convertBinaryExpression(left: JKExpression, right: JKExpression, token: JKKtOperatorToken): JKBinaryExpression = convertStringImplicitConcatenation(left, right, token) - ?: kotlinBinaryExpression(left, right, token, context.symbolProvider) + ?: kotlinBinaryExpression(left, right, token, symbolProvider) private fun convertStringImplicitConcatenation(left: JKExpression, right: JKExpression, token: JKKtOperatorToken): JKBinaryExpression? = if (token is JKKtSingleValueOperatorToken && token.psiToken == KtTokens.PLUS - && right.type(context.symbolProvider)?.isStringType() == true - && left.type(context.symbolProvider)?.isStringType() == false + && right.type(symbolProvider)?.isStringType() == true + && left.type(symbolProvider)?.isStringType() == false ) { val toStringCall = JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.Any.toString"), + symbolProvider.provideMethodSymbol("kotlin.Any.toString"), JKArgumentListImpl() ) val qualifiedCall = JKQualifiedExpressionImpl(left, JKKtQualifierImpl.DOT, toStringCall) - kotlinBinaryExpression(qualifiedCall, right, KtTokens.PLUS, context.symbolProvider) + kotlinBinaryExpression(qualifiedCall, right, KtTokens.PLUS, symbolProvider) } else null } \ No newline at end of file diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ParameterModificationInMethodCallsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ParameterModificationInMethodCallsConversion.kt index 5469a801e76..3ab2533d71b 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ParameterModificationInMethodCallsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ParameterModificationInMethodCallsConversion.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class ParameterModificationInMethodCallsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class ParameterModificationInMethodCallsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKMethod) return recurse(element) val newVariables = @@ -21,7 +21,7 @@ class ParameterModificationInMethodCallsConversion(private val context: NewJ2kCo val parameterType = if (parameter.isVarArgs) { JKClassTypeImpl( - context.symbolProvider.provideClassSymbol(parameter.type.type.arrayFqName()), + symbolProvider.provideClassSymbol(parameter.type.type.arrayFqName()), if (parameter.type.type is JKJavaPrimitiveType) emptyList() else listOf( JKVarianceTypeParameterTypeImpl( @@ -36,7 +36,7 @@ class ParameterModificationInMethodCallsConversion(private val context: NewJ2kCo JKLocalVariableImpl( JKTypeElementImpl(parameterType), JKNameIdentifierImpl(parameter.name.value), - JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(parameter)), + JKFieldAccessExpressionImpl(symbolProvider.provideUniverseSymbol(parameter)), JKMutabilityModifierElementImpl(Mutability.MUTABLE) ) } else null diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PolyadicExpressionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PolyadicExpressionConversion.kt index 5af5447e931..b8f750f4f19 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PolyadicExpressionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PolyadicExpressionConversion.kt @@ -5,13 +5,14 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.parenthesizeIfBinaryExpression import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKBinaryExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKParenthesizedExpressionImpl -class PolyadicExpressionConversion : RecursiveApplicableConversionBase() { +class PolyadicExpressionConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaPolyadicExpression) return recurse(element) val needParenthesis = element.operands.any { it.containsNewLine() } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PrimaryConstructorDetectConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PrimaryConstructorDetectConversion.kt index 035fd9179c8..200698a5216 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PrimaryConstructorDetectConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PrimaryConstructorDetectConversion.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKKtInitDeclarationImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtPrimaryConstructorImpl -class PrimaryConstructorDetectConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class PrimaryConstructorDetectConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element is JKClass && (element.classKind == JKClass.ClassKind.CLASS || element.classKind == JKClass.ClassKind.ENUM) @@ -54,7 +54,7 @@ class PrimaryConstructorDetectConversion(private val context: NewJ2kConverterCon primaryConstructorCandidate.modalityElement ).withNonCodeElementsFrom(primaryConstructorCandidate) - context.symbolProvider.transferSymbol(primaryConstructor, primaryConstructorCandidate) + symbolProvider.transferSymbol(primaryConstructor, primaryConstructorCandidate) element.classBody.declarations += primaryConstructor } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RecursiveApplicableConversionBase.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RecursiveApplicableConversionBase.kt index 31c740d8cb5..30772ec6750 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RecursiveApplicableConversionBase.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RecursiveApplicableConversionBase.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKTreeElement -abstract class RecursiveApplicableConversionBase : MatchBasedConversion() { +abstract class RecursiveApplicableConversionBase(context: NewJ2kConverterContext) : MatchBasedConversion(context) { override fun onElementChanged(new: JKTreeElement, old: JKTreeElement) { somethingChanged = true } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RemoveWrongExtraModifiersForSingleFunctionsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RemoveWrongExtraModifiersForSingleFunctionsConversion.kt index a697772d11f..d4a26690934 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RemoveWrongExtraModifiersForSingleFunctionsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RemoveWrongExtraModifiersForSingleFunctionsConversion.kt @@ -5,9 +5,10 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* -class RemoveWrongExtraModifiersForSingleFunctionsConversion : RecursiveApplicableConversionBase() { +class RemoveWrongExtraModifiersForSingleFunctionsConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKOtherModifiersOwner) return recurse(element) if (element.parentOfType() == null) { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ReturnStatementInLambdaExpressionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ReturnStatementInLambdaExpressionConversion.kt index c294710325e..86d2ca6d5f7 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ReturnStatementInLambdaExpressionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ReturnStatementInLambdaExpressionConversion.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.asStatement import org.jetbrains.kotlin.nj2k.copyTreeAndDetach import org.jetbrains.kotlin.nj2k.tree.* @@ -13,7 +14,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKLabeledStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKNameIdentifierImpl import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class ReturnStatementInLambdaExpressionConversion : RecursiveApplicableConversionBase() { +class ReturnStatementInLambdaExpressionConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { companion object { const val DEFAULT_LABEL_NAME = "label" } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticInitDeclarationConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticInitDeclarationConversion.kt index e173bc7279d..fd446605e4b 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticInitDeclarationConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticInitDeclarationConversion.kt @@ -5,13 +5,14 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.createCompanion import org.jetbrains.kotlin.nj2k.getCompanion import org.jetbrains.kotlin.nj2k.replace import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKKtInitDeclarationImpl -class StaticInitDeclarationConversion : RecursiveApplicableConversionBase() { +class StaticInitDeclarationConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClass) return recurse(element) val staticInitDeclarations = diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticMemberAccessConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticMemberAccessConversion.kt index 6e5570f9900..de240b82576 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticMemberAccessConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticMemberAccessConversion.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class StaticMemberAccessConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class StaticMemberAccessConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { val symbol = when (element) { @@ -71,17 +71,17 @@ class StaticMemberAccessConversion(private val context: NewJ2kConverterContext) target.getStrictParentOfType()?.let { klass -> if (klass is KtObjectDeclaration && klass.isCompanion()) klass.containingClass() else klass - }?.let { context.symbolProvider.provideDirectSymbol(it) } + }?.let { symbolProvider.provideDirectSymbol(it) } is PsiElement -> target.getContainingClass()?.let { - context.symbolProvider.provideDirectSymbol(it) + symbolProvider.provideDirectSymbol(it) } is JKTreeElement -> target.parentOfType()?.let { klass -> if (klass.classKind == JKClass.ClassKind.COMPANION) klass.parentOfType() else klass - }?.let { context.symbolProvider.provideUniverseSymbol(it) } + }?.let { symbolProvider.provideUniverseSymbol(it) } else -> error("bad isStaticMember") } as JKClassSymbol? } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticsToCompanionExtractConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticsToCompanionExtractConversion.kt index c99df96e237..ee169b2584e 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticsToCompanionExtractConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticsToCompanionExtractConversion.kt @@ -5,10 +5,11 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.getOrCreateCompanionObject import org.jetbrains.kotlin.nj2k.tree.* -class StaticsToCompanionExtractConversion : RecursiveApplicableConversionBase() { +class StaticsToCompanionExtractConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClass) return recurse(element) if (element.classKind == JKClass.ClassKind.COMPANION || element.classKind == JKClass.ClassKind.OBJECT) return element diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SwitchStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SwitchStatementConversion.kt index b398bf20f84..4f3f3c0b339 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SwitchStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SwitchStatementConversion.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class SwitchStatementConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class SwitchStatementConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaSwitchStatementImpl) return recurse(element) element.invalidate() @@ -86,7 +86,7 @@ class SwitchStatementConversion(private val context: NewJ2kConverterContext) : R when (statement) { is JKBlockStatement -> JKExpressionStatementImpl( - runExpression(statement, context.symbolProvider) + runExpression(statement, symbolProvider) ) else -> statement } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SynchronizedStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SynchronizedStatementConversion.kt index 5449b9f77fb..35c5b8d3d94 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SynchronizedStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SynchronizedStatementConversion.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.withNonCodeElementsFrom -class SynchronizedStatementConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class SynchronizedStatementConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaSynchronizedStatement) return recurse(element) element.invalidate() @@ -22,7 +22,7 @@ class SynchronizedStatementConversion(private val context: NewJ2kConverterContex ) val synchronizedCall = JKKtCallExpressionImpl( - context.symbolProvider.provideMethodSymbol("kotlin.synchronized"), + symbolProvider.provideMethodSymbol("kotlin.synchronized"), JKArgumentListImpl( element.lockExpression, lambdaBody diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ThrowStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ThrowStatementConversion.kt index 3dacce531d1..7da49a41b6e 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ThrowStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ThrowStatementConversion.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKJavaThrowStatement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.detached @@ -12,7 +13,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKKtThrowExpressionImpl -class ThrowStatementConversion : RecursiveApplicableConversionBase() { +class ThrowStatementConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaThrowStatement) return recurse(element) val throwExpression = JKKtThrowExpressionImpl(element::exception.detached()) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TryStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TryStatementConversion.kt index 3711e85dc0d..6c3c2dcf6cb 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TryStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TryStatementConversion.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.nj2k.useExpression -class TryStatementConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class TryStatementConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaTryStatement) return recurse(element) return if (element.resourceDeclarations.isEmpty()) @@ -59,7 +59,7 @@ class TryStatementConversion(private val context: NewJ2kConverterContext) : Recu receiver = (variable as JKLocalVariable)::initializer.detached(), variableIdentifier = variable::name.detached(), body = inner, - symbolProvider = context.symbolProvider + symbolProvider = symbolProvider ) ) } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt index a44ab9e7188..32213dca3ed 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt @@ -5,14 +5,10 @@ package org.jetbrains.kotlin.nj2k.conversions -import com.intellij.psi.PsiElement -import com.intellij.psi.PsiMethod -import com.intellij.psi.PsiVariable import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap -import org.jetbrains.kotlin.j2k.* -import org.jetbrains.kotlin.j2k.ast.Mutability import org.jetbrains.kotlin.j2k.ast.Nullability +import org.jetbrains.kotlin.j2k.toKotlinMutableTypesMap import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.kotlinTypeByName @@ -21,7 +17,7 @@ import org.jetbrains.kotlin.nj2k.symbols.JKUniverseClassSymbol import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { +class TypeMappingConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { when (element) { is JKTypeElement -> { @@ -56,7 +52,7 @@ class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveAppl JKTypeElementImpl( kotlinTypeByName( KotlinBuiltIns.FQ_NAMES.any.toSafe().asString(), - context.symbolProvider, + symbolProvider, Nullability.Nullable ) ) @@ -86,12 +82,12 @@ class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveAppl is JKJavaVoidType -> kotlinTypeByName( KotlinBuiltIns.FQ_NAMES.unit.toSafe().asString(), - context.symbolProvider, + symbolProvider, Nullability.NotNull ) is JKJavaArrayType -> JKClassTypeImpl( - context.symbolProvider.provideClassSymbol(type.arrayFqName()), + symbolProvider.provideClassSymbol(type.arrayFqName()), if (type is JKJavaPrimitiveType) emptyList() else listOf(type.mapType(typeElement)), nullability ) @@ -115,7 +111,7 @@ class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveAppl val newFqName = kotlinCollectionClassName() ?: kotlinStandardType() ?: fqName - return context.symbolProvider.provideClassSymbol(newFqName) + return symbolProvider.provideClassSymbol(newFqName) } private fun JKClassType.mapClassType(typeElement: JKTypeElement?): JKClassType = @@ -136,7 +132,7 @@ class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveAppl private fun JKJavaPrimitiveType.mapPrimitiveType(): JKClassType { val fqName = jvmPrimitiveType.primitiveType.typeFqName return JKClassTypeImpl( - context.symbolProvider.provideClassSymbol(fqName), + symbolProvider.provideClassSymbol(fqName), nullability = Nullability.NotNull ) }