New J2K: remove unused abstractions for conversions running
This commit is contained in:
@@ -21,76 +21,73 @@ import org.jetbrains.kotlin.nj2k.tree.JKTreeRoot
|
|||||||
|
|
||||||
object ConversionsRunner {
|
object ConversionsRunner {
|
||||||
|
|
||||||
private fun createRootConversion(context: NewJ2kConverterContext) =
|
private fun createConversions(context: NewJ2kConverterContext) = listOf(
|
||||||
batchPipe {
|
NonCodeElementsConversion(),
|
||||||
//Java --> Kotlin conversions
|
JavaModifiersConversion(context),
|
||||||
+NonCodeElementsConversion()
|
JavaAnnotationsConversion(context),
|
||||||
+JavaModifiersConversion(context)
|
AnnotationClassConversion(context),
|
||||||
+JavaAnnotationsConversion(context)
|
AnnotationConversion(context),
|
||||||
+AnnotationClassConversion(context)
|
ModalityConversion(context),
|
||||||
+AnnotationConversion(context)
|
FunctionAsAnonymousObjectToLambdaConversion(),
|
||||||
+ModalityConversion(context)
|
ReturnStatementInLambdaExpressionConversion(),
|
||||||
+FunctionAsAnonymousObjectToLambdaConversion()
|
BoxedTypeOperationsConversion(context),
|
||||||
+ReturnStatementInLambdaExpressionConversion()
|
AssignmentAsExpressionToAlsoConversion(context),
|
||||||
+BoxedTypeOperationsConversion(context)
|
AssignmentStatementValCreationConversion(context),
|
||||||
+AssignmentAsExpressionToAlsoConversion(context)
|
AssignmentStatementOperatorConversion(),
|
||||||
+AssignmentStatementValCreationConversion(context)
|
AssignmentStatementSimplifyValConversion(),
|
||||||
+AssignmentStatementOperatorConversion()
|
AssignmentStatementSimplifyAlsoConversion(),
|
||||||
+AssignmentStatementSimplifyValConversion()
|
AssignmentStatementSplitAlsoConversion(),
|
||||||
+AssignmentStatementSimplifyAlsoConversion()
|
PolyadicExpressionConversion(),
|
||||||
+AssignmentStatementSplitAlsoConversion()
|
OperatorExpressionConversion(context),
|
||||||
+PolyadicExpressionConversion()
|
AddParenthesisForLineBreaksInBinaryExpression(),
|
||||||
+OperatorExpressionConversion(context)
|
ThrowStatementConversion(),
|
||||||
+AddParenthesisForLineBreaksInBinaryExpression()
|
ArrayInitializerConversion(context),
|
||||||
+ThrowStatementConversion()
|
TryStatementConversion(context),
|
||||||
+ArrayInitializerConversion(context)
|
EnumFieldAccessConversion(context),
|
||||||
+TryStatementConversion(context)
|
StaticMemberAccessConversion(context),
|
||||||
+EnumFieldAccessConversion(context)
|
SynchronizedStatementConversion(context),
|
||||||
+StaticMemberAccessConversion(context)
|
JetbrainsNullableAnnotationsConverter(context),
|
||||||
+SynchronizedStatementConversion(context)
|
DefaultArgumentsConversion(context),
|
||||||
+JetbrainsNullableAnnotationsConverter(context)
|
ConstructorConversion(context),
|
||||||
+DefaultArgumentsConversion(context)
|
StaticInitDeclarationConversion(),
|
||||||
+ConstructorConversion(context)
|
ImplicitInitializerConversion(context),
|
||||||
+StaticInitDeclarationConversion()
|
ParameterModificationInMethodCallsConversion(context),
|
||||||
+ImplicitInitializerConversion(context)
|
BlockToRunConversion(context),
|
||||||
+ParameterModificationInMethodCallsConversion(context)
|
PrimaryConstructorDetectConversion(context),
|
||||||
+BlockToRunConversion(context)
|
InsertDefaultPrimaryConstructorConversion(context),
|
||||||
+PrimaryConstructorDetectConversion(context)
|
FieldToPropertyConversion(),
|
||||||
+InsertDefaultPrimaryConstructorConversion(context)
|
JavaStandardMethodsConversion(context),
|
||||||
+FieldToPropertyConversion()
|
JavaMethodToKotlinFunctionConversion(context),
|
||||||
+JavaStandardMethodsConversion(context)
|
MainFunctionConversion(context),
|
||||||
+JavaMethodToKotlinFunctionConversion(context)
|
AssertStatementConversion(context),
|
||||||
+MainFunctionConversion(context)
|
SwitchStatementConversion(context),
|
||||||
+AssertStatementConversion(context)
|
LiteralConversion(),
|
||||||
+SwitchStatementConversion(context)
|
ForConversion(context),
|
||||||
+LiteralConversion()
|
LabeledStatementConversion(),
|
||||||
+ForConversion(context)
|
ArrayOperationsConversion(context),
|
||||||
+LabeledStatementConversion()
|
EqualsOperatorConversion(context),
|
||||||
+ArrayOperationsConversion(context)
|
TypeMappingConversion(context),
|
||||||
+EqualsOperatorConversion(context)
|
InternalDeclarationConversion(context),
|
||||||
+TypeMappingConversion(context)
|
|
||||||
+InternalDeclarationConversion(context)
|
|
||||||
|
|
||||||
//Kotlin --> Kotlin conversions
|
InnerClassConversion(),
|
||||||
+InnerClassConversion()
|
StaticsToCompanionExtractConversion(),
|
||||||
+StaticsToCompanionExtractConversion()
|
InterfaceWithFieldConversion(),
|
||||||
+InterfaceWithFieldConversion()
|
ClassToObjectPromotionConversion(context),
|
||||||
+ClassToObjectPromotionConversion(context)
|
RemoveWrongExtraModifiersForSingleFunctionsConversion(),
|
||||||
+RemoveWrongExtraModifiersForSingleFunctionsConversion()
|
MethodReferenceToLambdaConversion(context),
|
||||||
+MethodReferenceToLambdaConversion(context)
|
BuiltinMembersConversion(context),
|
||||||
+BuiltinMembersConversion(context)
|
ImplicitCastsConversion(context),
|
||||||
+ImplicitCastsConversion(context)
|
LiteralConversion(),
|
||||||
+LiteralConversion()
|
CollectImportsConversion(context),
|
||||||
|
FilterImportsConversion(),
|
||||||
+CollectImportsConversion(context)
|
MoveInitBlocksToTheEndConversion(),
|
||||||
+FilterImportsConversion()
|
AddElementsInfoConversion(context)
|
||||||
+MoveInitBlocksToTheEndConversion()
|
)
|
||||||
+AddElementsInfoConversion(context)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun doApply(trees: List<JKTreeRoot>, context: NewJ2kConverterContext) {
|
fun doApply(trees: List<JKTreeRoot>, context: NewJ2kConverterContext) {
|
||||||
val conversion = createRootConversion(context)
|
val conversions = createConversions(context)
|
||||||
conversion.runConversion(trees, context)
|
for (conversion in conversions) {
|
||||||
|
conversion.runConversion(trees, context)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.nj2k.conversions
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext
|
|
||||||
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
|
||||||
|
|
||||||
class BatchPipelineConversion(val conversions: List<BatchBaseConversion>) : BatchBaseConversion {
|
|
||||||
override fun runConversion(treeRoots: List<JKTreeElement>, context: NewJ2kConverterContext): Boolean {
|
|
||||||
return conversions.asSequence().map { it.runConversion(treeRoots, context) }.max() ?: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class SequentialPipelineConversion(val conversions: List<SequentialBaseConversion>) : SequentialBaseConversion {
|
|
||||||
override fun runConversion(treeRoot: JKTreeElement, context: NewJ2kConverterContext): Boolean {
|
|
||||||
return conversions.asSequence().map { it.runConversion(treeRoot, context) }.max() ?: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class BatchRepeatConversion(val conversion: BatchBaseConversion) : BatchBaseConversion {
|
|
||||||
|
|
||||||
override fun runConversion(treeRoots: List<JKTreeElement>, context: NewJ2kConverterContext): Boolean {
|
|
||||||
return true in generateSequence { conversion.runConversion(treeRoots, context) }.takeWhile { it }
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
class SequentialRepeatConversion(val conversion: SequentialBaseConversion) : SequentialBaseConversion {
|
|
||||||
override fun runConversion(treeRoot: JKTreeElement, context: NewJ2kConverterContext): Boolean {
|
|
||||||
return true in generateSequence { conversion.runConversion(treeRoot, context) }.takeWhile { it }
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class PipelineConversionBuilder<T : BatchBaseConversion> {
|
|
||||||
val conversions = mutableListOf<T>()
|
|
||||||
operator fun T.unaryPlus() {
|
|
||||||
conversions += this
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal inline fun sequentialPipe(crossinline configure: PipelineConversionBuilder<SequentialBaseConversion>.() -> Unit): SequentialPipelineConversion {
|
|
||||||
return SequentialPipelineConversion(
|
|
||||||
PipelineConversionBuilder<SequentialBaseConversion>().apply(configure).conversions
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
internal inline fun batchPipe(crossinline configure: PipelineConversionBuilder<BatchBaseConversion>.() -> Unit): BatchPipelineConversion {
|
|
||||||
return BatchPipelineConversion(
|
|
||||||
PipelineConversionBuilder<BatchBaseConversion>().apply(configure).conversions
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun batchRepeat(batchBaseConversion: BatchBaseConversion): BatchRepeatConversion {
|
|
||||||
return BatchRepeatConversion(batchBaseConversion)
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun sequentialRepeat(sequentialBaseConversion: SequentialBaseConversion): SequentialRepeatConversion {
|
|
||||||
return SequentialRepeatConversion(sequentialBaseConversion)
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user