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 {
|
||||
|
||||
private fun createRootConversion(context: NewJ2kConverterContext) =
|
||||
batchPipe {
|
||||
//Java --> Kotlin conversions
|
||||
+NonCodeElementsConversion()
|
||||
+JavaModifiersConversion(context)
|
||||
+JavaAnnotationsConversion(context)
|
||||
+AnnotationClassConversion(context)
|
||||
+AnnotationConversion(context)
|
||||
+ModalityConversion(context)
|
||||
+FunctionAsAnonymousObjectToLambdaConversion()
|
||||
+ReturnStatementInLambdaExpressionConversion()
|
||||
+BoxedTypeOperationsConversion(context)
|
||||
+AssignmentAsExpressionToAlsoConversion(context)
|
||||
+AssignmentStatementValCreationConversion(context)
|
||||
+AssignmentStatementOperatorConversion()
|
||||
+AssignmentStatementSimplifyValConversion()
|
||||
+AssignmentStatementSimplifyAlsoConversion()
|
||||
+AssignmentStatementSplitAlsoConversion()
|
||||
+PolyadicExpressionConversion()
|
||||
+OperatorExpressionConversion(context)
|
||||
+AddParenthesisForLineBreaksInBinaryExpression()
|
||||
+ThrowStatementConversion()
|
||||
+ArrayInitializerConversion(context)
|
||||
+TryStatementConversion(context)
|
||||
+EnumFieldAccessConversion(context)
|
||||
+StaticMemberAccessConversion(context)
|
||||
+SynchronizedStatementConversion(context)
|
||||
+JetbrainsNullableAnnotationsConverter(context)
|
||||
+DefaultArgumentsConversion(context)
|
||||
+ConstructorConversion(context)
|
||||
+StaticInitDeclarationConversion()
|
||||
+ImplicitInitializerConversion(context)
|
||||
+ParameterModificationInMethodCallsConversion(context)
|
||||
+BlockToRunConversion(context)
|
||||
+PrimaryConstructorDetectConversion(context)
|
||||
+InsertDefaultPrimaryConstructorConversion(context)
|
||||
+FieldToPropertyConversion()
|
||||
+JavaStandardMethodsConversion(context)
|
||||
+JavaMethodToKotlinFunctionConversion(context)
|
||||
+MainFunctionConversion(context)
|
||||
+AssertStatementConversion(context)
|
||||
+SwitchStatementConversion(context)
|
||||
+LiteralConversion()
|
||||
+ForConversion(context)
|
||||
+LabeledStatementConversion()
|
||||
+ArrayOperationsConversion(context)
|
||||
+EqualsOperatorConversion(context)
|
||||
+TypeMappingConversion(context)
|
||||
+InternalDeclarationConversion(context)
|
||||
private fun createConversions(context: NewJ2kConverterContext) = listOf(
|
||||
NonCodeElementsConversion(),
|
||||
JavaModifiersConversion(context),
|
||||
JavaAnnotationsConversion(context),
|
||||
AnnotationClassConversion(context),
|
||||
AnnotationConversion(context),
|
||||
ModalityConversion(context),
|
||||
FunctionAsAnonymousObjectToLambdaConversion(),
|
||||
ReturnStatementInLambdaExpressionConversion(),
|
||||
BoxedTypeOperationsConversion(context),
|
||||
AssignmentAsExpressionToAlsoConversion(context),
|
||||
AssignmentStatementValCreationConversion(context),
|
||||
AssignmentStatementOperatorConversion(),
|
||||
AssignmentStatementSimplifyValConversion(),
|
||||
AssignmentStatementSimplifyAlsoConversion(),
|
||||
AssignmentStatementSplitAlsoConversion(),
|
||||
PolyadicExpressionConversion(),
|
||||
OperatorExpressionConversion(context),
|
||||
AddParenthesisForLineBreaksInBinaryExpression(),
|
||||
ThrowStatementConversion(),
|
||||
ArrayInitializerConversion(context),
|
||||
TryStatementConversion(context),
|
||||
EnumFieldAccessConversion(context),
|
||||
StaticMemberAccessConversion(context),
|
||||
SynchronizedStatementConversion(context),
|
||||
JetbrainsNullableAnnotationsConverter(context),
|
||||
DefaultArgumentsConversion(context),
|
||||
ConstructorConversion(context),
|
||||
StaticInitDeclarationConversion(),
|
||||
ImplicitInitializerConversion(context),
|
||||
ParameterModificationInMethodCallsConversion(context),
|
||||
BlockToRunConversion(context),
|
||||
PrimaryConstructorDetectConversion(context),
|
||||
InsertDefaultPrimaryConstructorConversion(context),
|
||||
FieldToPropertyConversion(),
|
||||
JavaStandardMethodsConversion(context),
|
||||
JavaMethodToKotlinFunctionConversion(context),
|
||||
MainFunctionConversion(context),
|
||||
AssertStatementConversion(context),
|
||||
SwitchStatementConversion(context),
|
||||
LiteralConversion(),
|
||||
ForConversion(context),
|
||||
LabeledStatementConversion(),
|
||||
ArrayOperationsConversion(context),
|
||||
EqualsOperatorConversion(context),
|
||||
TypeMappingConversion(context),
|
||||
InternalDeclarationConversion(context),
|
||||
|
||||
//Kotlin --> Kotlin conversions
|
||||
+InnerClassConversion()
|
||||
+StaticsToCompanionExtractConversion()
|
||||
+InterfaceWithFieldConversion()
|
||||
+ClassToObjectPromotionConversion(context)
|
||||
+RemoveWrongExtraModifiersForSingleFunctionsConversion()
|
||||
+MethodReferenceToLambdaConversion(context)
|
||||
+BuiltinMembersConversion(context)
|
||||
+ImplicitCastsConversion(context)
|
||||
+LiteralConversion()
|
||||
|
||||
+CollectImportsConversion(context)
|
||||
+FilterImportsConversion()
|
||||
+MoveInitBlocksToTheEndConversion()
|
||||
+AddElementsInfoConversion(context)
|
||||
}
|
||||
InnerClassConversion(),
|
||||
StaticsToCompanionExtractConversion(),
|
||||
InterfaceWithFieldConversion(),
|
||||
ClassToObjectPromotionConversion(context),
|
||||
RemoveWrongExtraModifiersForSingleFunctionsConversion(),
|
||||
MethodReferenceToLambdaConversion(context),
|
||||
BuiltinMembersConversion(context),
|
||||
ImplicitCastsConversion(context),
|
||||
LiteralConversion(),
|
||||
CollectImportsConversion(context),
|
||||
FilterImportsConversion(),
|
||||
MoveInitBlocksToTheEndConversion(),
|
||||
AddElementsInfoConversion(context)
|
||||
)
|
||||
|
||||
fun doApply(trees: List<JKTreeRoot>, context: NewJ2kConverterContext) {
|
||||
val conversion = createRootConversion(context)
|
||||
conversion.runConversion(trees, context)
|
||||
val conversions = createConversions(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