From 39b09b39fffbf11ea29e42f91c1d5d547cd2e687 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 18 Apr 2019 12:42:01 +0300 Subject: [PATCH] New J2K: pass converter context to postprocessing --- .../evaluate/KotlinCodeFragmentFactory.kt | 11 +++++-- .../copy/ConvertJavaCopyPasteProcessor.kt | 32 +++++++++++++++---- .../copy/ConvertTextJavaCopyPasteProcessor.kt | 10 ++++-- .../kotlin/idea/j2k/J2kPostProcessor.kt | 5 ++- .../idea/j2k/JavaToKotlinConverterFactory.kt | 4 +-- .../idea/j2k/OldJ2kConveterExtension.kt | 2 +- .../idea/refactoring/kotlinRefactoringUtil.kt | 8 +++-- .../kotlin/j2k/AfterConversionPass.kt | 4 +-- .../kotlin/j2k/J2KConverterExtension.kt | 2 +- .../kotlin/j2k/JavaToKotlinConverter.kt | 13 +++++--- .../jetbrains/kotlin/nj2k/J2kPostProcessor.kt | 31 ++++++++++-------- .../kotlin/nj2k/NewJ2kConveterExtension.kt | 4 +-- .../kotlin/nj2k/ConversionsRunner.kt | 5 +-- ...onContext.kt => NewJ2kConverterContext.kt} | 27 +++++++++++++--- .../kotlin/nj2k/NewJavaToKotlinConverter.kt | 8 ++--- .../conversions/AnnotationClassConversion.kt | 4 +-- .../nj2k/conversions/AnnotationConversion.kt | 4 +-- .../conversions/ArrayInitializerConversion.kt | 4 +-- .../conversions/ArrayOperationsConversion.kt | 7 ++-- .../conversions/AssertStatementConversion.kt | 4 +-- .../AssignmentAsExpressionToAlsoConversion.kt | 4 +-- ...ssignmentStatementValCreationConversion.kt | 4 +-- .../kotlin/nj2k/conversions/BaseConversion.kt | 8 ++--- .../nj2k/conversions/BlockToRunConversion.kt | 4 +-- .../BoxedTypeOperationsConversion.kt | 4 +-- .../conversions/BuiltinMembersConversion.kt | 2 +- .../ClassToObjectPromotionConversion.kt | 4 +-- .../conversions/CollectImportsConversion.kt | 4 +-- .../nj2k/conversions/CompositeConversion.kt | 10 +++--- .../nj2k/conversions/ConstructorConversion.kt | 4 +-- .../conversions/DefaultArgumentsConversion.kt | 4 +-- .../conversions/EnumFieldAccessConversion.kt | 4 +-- .../conversions/EqualsOperatorConversion.kt | 4 +-- .../kotlin/nj2k/conversions/ForConversion.kt | 2 +- .../conversions/ImplicitCastsConversion.kt | 2 +- .../ImplicitInitializerConversion.kt | 4 +-- ...sertDefaultPrimaryConstructorConversion.kt | 4 +-- .../InternalDeclarationConversion.kt | 4 +-- .../conversions/JavaAnnotationsConversion.kt | 4 +-- .../JavaMethodToKotlinFunctionConversion.kt | 4 +-- .../conversions/JavaModifiersConversion.kt | 4 +-- .../JavaStandartMethodsConversion.kt | 4 +-- .../JetbrainsNullableAnnotationsConverter.kt | 4 +-- .../conversions/MainFunctionConversion.kt | 5 ++- .../nj2k/conversions/ModalityConversion.kt | 4 +-- .../OperatorExpressionConversion.kt | 4 +-- ...eterModificationInMethodCallsConversion.kt | 4 +-- .../PrimaryConstructorDetectConversion.kt | 4 +-- .../RecursiveApplicableConversionBase.kt | 4 +-- .../StaticMemberAccessConversion.kt | 4 +-- .../conversions/SwitchStatementConversion.kt | 4 +-- .../SynchronizedStatementConversion.kt | 4 +-- .../conversions/TransformerBasedConversion.kt | 4 +-- .../conversions/TryStatementConversion.kt | 4 +-- .../nj2k/conversions/TypeMappingConversion.kt | 4 +-- .../kotlin/nj2k/conversions/resolveUtil.kt | 4 +-- .../org/jetbrains/kotlin/nj2k/expressions.kt | 10 +++--- .../org/jetbrains/kotlin/nj2k/tree/types.kt | 4 +-- 58 files changed, 202 insertions(+), 150 deletions(-) rename nj2k/src/org/jetbrains/kotlin/nj2k/{ConversionContext.kt => NewJ2kConverterContext.kt} (64%) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt index 37f3e7f3443..5f45b7d7a10 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinCodeFragmentFactory.kt @@ -44,6 +44,7 @@ import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils import org.jetbrains.kotlin.idea.debugger.KotlinEditorTextProvider import org.jetbrains.kotlin.idea.debugger.evaluate.compilation.DebugLabelPropertyDescriptorProvider import org.jetbrains.kotlin.idea.j2k.JavaToKotlinConverterFactory +import org.jetbrains.kotlin.idea.refactoring.convertToKotlin import org.jetbrains.kotlin.idea.refactoring.j2k import org.jetbrains.kotlin.idea.refactoring.j2kText import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers @@ -242,7 +243,8 @@ class KotlinCodeFragmentFactory : CodeFragmentFactory() { var convertedFragment: KtExpressionCodeFragment? = null project.executeWriteCommand("Convert java expression to kotlin in Evaluate Expression") { try { - val newText = javaExpression.j2kText() + val (elementResults, _, conversionContext) = javaExpression.convertToKotlin() ?: return@executeWriteCommand + val newText = elementResults.singleOrNull()?.text val newImports = importList?.j2kText() if (newText != null) { convertedFragment = KtExpressionCodeFragment( @@ -253,7 +255,12 @@ class KotlinCodeFragmentFactory : CodeFragmentFactory() { kotlinCodeFragment.context ) - AfterConversionPass(project, JavaToKotlinConverterFactory.createPostProcessor(formatCode = false)).run(convertedFragment!!, range = null) + AfterConversionPass(project, JavaToKotlinConverterFactory.createPostProcessor(formatCode = false)) + .run( + convertedFragment!!, + conversionContext, + range = null + ) } } catch (e: Throwable) { // ignored because text can be invalid diff --git a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertJavaCopyPasteProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertJavaCopyPasteProcessor.kt index 72baa92a36e..1c3d2ba645b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertJavaCopyPasteProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertJavaCopyPasteProcessor.kt @@ -40,6 +40,7 @@ import org.jetbrains.kotlin.idea.util.ImportInsertHelper import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.j2k.AfterConversionPass +import org.jetbrains.kotlin.j2k.ConverterContext import org.jetbrains.kotlin.j2k.ConverterSettings import org.jetbrains.kotlin.j2k.ParseContext import org.jetbrains.kotlin.lexer.KtTokens @@ -85,14 +86,19 @@ class ConvertJavaCopyPasteProcessor : CopyPastePostProcessor, val explicitImports: Set) + data class Result( + val text: String?, + val referenceData: Collection, + val explicitImports: Set, + val converterContext: ConverterContext? + ) fun doConversion(): Result { val dataForConversion = DataForConversion.prepare(data, project) val result = dataForConversion.elementsAndTexts.convertCodeToKotlin(project) val referenceData = buildReferenceData(result.text, result.parseContext, dataForConversion.importsAndPackage, targetFile) val text = if (result.textChanged) result.text else null - return Result(text, referenceData, result.importsToAdd) + return Result(text, referenceData, result.importsToAdd, result.converterContext) } fun insertImports(bounds: TextRange, referenceData: Collection, explicitImports: Collection): TextRange? { @@ -153,7 +159,12 @@ class ConvertJavaCopyPasteProcessor : CopyPastePostProcessor, - val textChanged: Boolean + val textChanged: Boolean, + val converterContext: ConverterContext? ) internal fun ElementAndTextList.convertCodeToKotlin(project: Project): ConversionResult { @@ -214,7 +226,7 @@ internal fun ElementAndTextList.convertCodeToKotlin(project: Project): Conversio ) val inputElements = this.toList().filterIsInstance() - val results = + val (results, _, converterContext) = ProgressManager.getInstance().runProcessWithProgressSynchronously( ThrowableComputable { runReadAction { converter.elementsToKotlin(inputElements) } @@ -222,7 +234,7 @@ internal fun ElementAndTextList.convertCodeToKotlin(project: Project): Conversio JavaToKotlinAction.title, false, project - ).results + ) val importsToAdd = LinkedHashSet() @@ -257,7 +269,13 @@ internal fun ElementAndTextList.convertCodeToKotlin(project: Project): Conversio val convertedCode = convertedCodeBuilder.toString() val originalCode = originalCodeBuilder.toString() - return ConversionResult(convertedCode, parseContext ?: ParseContext.CODE_BLOCK, importsToAdd, convertedCode != originalCode) + return ConversionResult( + convertedCode, + parseContext ?: ParseContext.CODE_BLOCK, + importsToAdd, + convertedCode != originalCode, + converterContext + ) } internal fun isNoConversionPosition(file: KtFile, offset: Int): Boolean { diff --git a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt index db770cd3924..ab6ebfb96e5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt @@ -109,7 +109,8 @@ class ConvertTextJavaCopyPasteProcessor : CopyPastePostProcessor, val parseContext: ParseContext) -data class Result(val results: List, val externalCodeProcessing: ExternalCodeProcessing?) +data class Result( + val results: List, + val externalCodeProcessing: ExternalCodeProcessing?, + val converterContext: ConverterContext? +) data class FilesResult(val results: List, val externalCodeProcessing: ExternalCodeProcessing?) +interface ConverterContext abstract class JavaToKotlinConverter { protected abstract fun elementsToKotlin(inputElements: List, processor: WithProgressProcessor): Result @@ -101,7 +106,7 @@ class OldJavaToKotlinConverter( result!!.importsToAdd.forEach { postProcessor.insertImport(kotlinFile, it) } - AfterConversionPass(project, postProcessor).run(kotlinFile, range = null) + AfterConversionPass(project, postProcessor).run(kotlinFile, converterContext = null, range = null) kotlinFile.text } catch (e: ProcessCanceledException) { @@ -140,7 +145,7 @@ class OldJavaToKotlinConverter( val externalCodeProcessing = buildExternalCodeProcessing(usageProcessings, ::inConversionScope) - return Result(results, externalCodeProcessing) + return Result(results, externalCodeProcessing, null) } catch (e: ElementCreationStackTraceRequiredException) { // if we got this exception then we need to turn element creation stack traces on to get better diagnostic Element.saveCreationStacktraces = true diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/J2kPostProcessor.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/J2kPostProcessor.kt index 264a05b5be2..933a2bc4dd7 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/J2kPostProcessor.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/J2kPostProcessor.kt @@ -34,7 +34,7 @@ import org.jetbrains.kotlin.idea.formatter.commitAndUnblockDocument import org.jetbrains.kotlin.idea.util.ImportInsertHelper import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.application.runWriteAction -import org.jetbrains.kotlin.j2k.ConverterSettings +import org.jetbrains.kotlin.j2k.ConverterContext import org.jetbrains.kotlin.j2k.PostProcessor import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.nj2k.nullabilityAnalysis.AnalysisScope @@ -47,10 +47,7 @@ import org.jetbrains.kotlin.psi.psiUtil.elementsInRange import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics import java.util.* -class NewJ2kPostProcessor( - private val formatCode: Boolean, - private val settings: ConverterSettings? -) : PostProcessor { +class NewJ2kPostProcessor(private val formatCode: Boolean) : PostProcessor { override fun insertImport(file: KtFile, fqName: FqName) { ApplicationManager.getApplication().invokeAndWait { runWriteAction { @@ -66,10 +63,14 @@ class NewJ2kPostProcessor( PROCESS } - private suspend fun List.runProcessings(file: KtFile, rangeMarker: RangeMarker?): Boolean { + private suspend fun List.runProcessings( + file: KtFile, + converterContext: NewJ2kConverterContext, + rangeMarker: RangeMarker? + ): Boolean { var modificationStamp: Long? = file.modificationStamp val elementToActions = runReadAction { - collectAvailableActions(this, file, rangeMarker) + collectAvailableActions(this, file, converterContext, rangeMarker) } withContext(EDT) { for ((element, action, _, writeActionNeeded) in elementToActions) { @@ -100,23 +101,24 @@ class NewJ2kPostProcessor( } - private suspend fun Processing.runProcessings(file: KtFile, rangeMarker: RangeMarker?) { + private suspend fun Processing.runProcessings(file: KtFile, converterContext: NewJ2kConverterContext, rangeMarker: RangeMarker?) { when (this) { - is SingleOneTimeProcessing -> listOf(processing).runProcessings(file, rangeMarker) + is SingleOneTimeProcessing -> listOf(processing).runProcessings(file, converterContext, rangeMarker) is RepeatableProcessingGroup -> do { - val needContinue = processings.runProcessings(file, rangeMarker) + val needContinue = processings.runProcessings(file, converterContext, rangeMarker) } while (needContinue) is OneTimeProcessingGroup -> - processings.forEach { it.runProcessings(file, rangeMarker) } + processings.forEach { it.runProcessings(file, converterContext, rangeMarker) } } } - override fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?) { + override fun doAdditionalProcessing(file: KtFile, converterContext: ConverterContext?, rangeMarker: RangeMarker?) { runBlocking(EDT.ModalityStateElement(ModalityState.defaultModalityState())) { withContext(EDT) { NullabilityAnalysisFacade( + converterContext as NewJ2kConverterContext, getTypeElementNullability = ::nullabilityByUndefinedNullabilityComment, prepareTypeElement = ::prepareTypeElementByMakingAllTypesNullableConsideringNullabilityComment, debugPrint = false @@ -131,7 +133,7 @@ class NewJ2kPostProcessor( } } } - NewJ2KPostProcessingRegistrar.mainProcessings.runProcessings(file, rangeMarker) + NewJ2KPostProcessingRegistrar.mainProcessings.runProcessings(file, converterContext as NewJ2kConverterContext, rangeMarker) withContext(EDT) { runWriteAction { file.commitAndUnblockDocument() @@ -159,6 +161,7 @@ class NewJ2kPostProcessor( private fun collectAvailableActions( processings: Collection, file: KtFile, + context: NewJ2kConverterContext, rangeMarker: RangeMarker? ): List { val diagnostics = analyzeFileRange(file, rangeMarker) @@ -174,7 +177,7 @@ class NewJ2kPostProcessor( if (rangeResult == RangeFilterResult.PROCESS) { processings.forEach { processing -> - val action = processing.createAction(element, diagnostics, settings) + val action = processing.createAction(element, diagnostics, context.converter.settings) if (action != null) { availableActions.add( ActionData( diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kConveterExtension.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kConveterExtension.kt index 68bcec8ce98..323d3dd52b6 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kConveterExtension.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kConveterExtension.kt @@ -13,6 +13,6 @@ class NewJ2kConverterExtension : J2kConverterExtension() { ): JavaToKotlinConverter = NewJavaToKotlinConverter(project, settings, services) - override fun createPostProcessor(formatCode: Boolean, settings: ConverterSettings): PostProcessor = - NewJ2kPostProcessor(formatCode, settings) + override fun createPostProcessor(formatCode: Boolean): PostProcessor = + NewJ2kPostProcessor(formatCode) } \ No newline at end of file diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt index a6767152fb5..af68853a416 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.nj2k.tree.JKTreeRoot object ConversionsRunner { - private fun createRootConversion(context: ConversionContext) = + private fun createRootConversion(context: NewJ2kConverterContext) = batchPipe { //Java --> Kotlin conversions +NonCodeElementsConversion() @@ -82,9 +82,10 @@ object ConversionsRunner { +ClassToObjectPromotionConversion(context) +CollectImportsConversion(context) +SortClassMembersConversion() + +AddElementsInfoConversion(context) } - fun doApply(trees: List, context: ConversionContext) { + fun doApply(trees: List, context: NewJ2kConverterContext) { val conversion = createRootConversion(context) conversion.runConversion(trees, context) } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionContext.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJ2kConverterContext.kt similarity index 64% rename from nj2k/src/org/jetbrains/kotlin/nj2k/ConversionContext.kt rename to nj2k/src/org/jetbrains/kotlin/nj2k/NewJ2kConverterContext.kt index 0d648721437..7bbf727a830 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionContext.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJ2kConverterContext.kt @@ -5,17 +5,18 @@ package org.jetbrains.kotlin.nj2k +import com.intellij.openapi.command.impl.DummyProject import com.intellij.openapi.project.Project import com.intellij.psi.PsiElement import org.jetbrains.kotlin.j2k.* -import org.jetbrains.kotlin.nj2k.tree.JKElement -data class ConversionContext( +data class NewJ2kConverterContext( val symbolProvider: JKSymbolProvider, val converter: NewJavaToKotlinConverter, val inConversionContext: (PsiElement) -> Boolean, - val importStorage: ImportStorage -) { + val importStorage: ImportStorage, + val elementsInfoStorage: ElementInfoStorage +) : ConverterContext { val project: Project get() = converter.project val typeFlavorCalculator = TypeFlavorCalculator(object : TypeFlavorConverterFacade { override val referenceSearcher: ReferenceSearcher @@ -28,4 +29,20 @@ data class ConversionContext( override fun inConversionScope(element: PsiElement): Boolean = inConversionContext(element) }) -} \ No newline at end of file + companion object { + val DUMMY = + NewJ2kConverterContext( + JKSymbolProvider(), + NewJavaToKotlinConverter( + DummyProject.getInstance(), + ConverterSettings.defaultSettings, + EmptyJavaToKotlinServices + ), + { false }, + ImportStorage(), + ElementInfoStorage() + ) + } + +} + diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt index 122c66303de..5123d08edb5 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt @@ -51,7 +51,7 @@ class NewJavaToKotlinConverter( progress: ProgressIndicator ): FilesResult { val withProgressProcessor = WithProgressProcessor(progress, files) - val (results, externalCodeProcessing) = ApplicationManager.getApplication().runReadAction(Computable { + val (results, externalCodeProcessing, context) = ApplicationManager.getApplication().runReadAction(Computable { elementsToKotlin(files, withProgressProcessor) }) @@ -73,7 +73,7 @@ class NewJavaToKotlinConverter( } CommandProcessor.getInstance().runUndoTransparentAction { - AfterConversionPass(project, postProcessor).run(kotlinFile, range = null) + AfterConversionPass(project, postProcessor).run(kotlinFile, context, range = null) } kotlinFile.text @@ -97,7 +97,7 @@ class NewJavaToKotlinConverter( element to treeBuilder.buildTree(element) } - val context = ConversionContext( + val context = NewJ2kConverterContext( symbolProvider, this, { it.containingFile in inputElements }, @@ -119,6 +119,6 @@ class NewJavaToKotlinConverter( ) } - return Result(results, null) + return Result(results, null, context) } } \ 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 f5b8579174e..afc6217977e 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationClassConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationClassConversion.kt @@ -6,12 +6,12 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.j2k.ast.Nullability -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.toExpression import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class AnnotationClassConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class AnnotationClassConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClass) return recurse(element) if (element.classKind != JKClass.ClassKind.ANNOTATION) return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationConversion.kt index 9569a159a88..54bb45ec995 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AnnotationConversion.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.isVarargsArgument import org.jetbrains.kotlin.nj2k.toExpression import org.jetbrains.kotlin.nj2k.tree.* @@ -14,7 +14,7 @@ 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: ConversionContext) : RecursiveApplicableConversionBase() { +class AnnotationConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKAnnotation) return recurse(element) fixVarargsInvocation(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt index 26fa5646f85..a31548a2341 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt @@ -8,14 +8,14 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.PrimitiveType import org.jetbrains.kotlin.j2k.ast.Nullability -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.toArgumentList import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.resolve.CollectionLiteralResolver -class ArrayInitializerConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class ArrayInitializerConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { var newElement = element if (element is JKJavaNewArray) { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayOperationsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayOperationsConversion.kt index 14108f5e926..48f278ed4e1 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayOperationsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayOperationsConversion.kt @@ -10,15 +10,12 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +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.JKFieldAccessExpressionImpl -import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldSymbol -import org.jetbrains.kotlin.nj2k.tree.impl.JKKtThrowExpressionImpl -class ArrayOperationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class ArrayOperationsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKQualifiedExpression) return recurse(element) val selector = element.selector as? JKFieldAccessExpression ?: return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssertStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssertStatementConversion.kt index cea7ae43278..10fd3828d35 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssertStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssertStatementConversion.kt @@ -8,12 +8,10 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.nj2k.* import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl -import org.jetbrains.kotlin.nj2k.tree.impl.JKJavaOperatorImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKLambdaExpressionImpl -import org.jetbrains.kotlin.nj2k.tree.impl.toKtToken -class AssertStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class AssertStatementConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaAssertStatement) return recurse(element) val messageExpression = diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentAsExpressionToAlsoConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentAsExpressionToAlsoConversion.kt index 5eb6f209873..0cbac15de66 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentAsExpressionToAlsoConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentAsExpressionToAlsoConversion.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.utils.addToStdlib.cast -class AssignmentAsExpressionToAlsoConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() { +class AssignmentAsExpressionToAlsoConversion(val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaAssignmentExpression) return recurse(element) element.invalidate() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementValCreationConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementValCreationConversion.kt index 04de7380cf5..71519cf6bb1 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementValCreationConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/AssignmentStatementValCreationConversion.kt @@ -5,11 +5,11 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class AssignmentStatementValCreationConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() { +class AssignmentStatementValCreationConversion(val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { 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/BaseConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BaseConversion.kt index e6517b6a462..807a3606265 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BaseConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BaseConversion.kt @@ -16,17 +16,17 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKTreeElement interface BatchBaseConversion { - fun runConversion(treeRoots: List, context: ConversionContext): Boolean + fun runConversion(treeRoots: List, context: NewJ2kConverterContext): Boolean } interface SequentialBaseConversion : BatchBaseConversion { - fun runConversion(treeRoot: JKTreeElement, context: ConversionContext): Boolean + fun runConversion(treeRoot: JKTreeElement, context: NewJ2kConverterContext): Boolean - override fun runConversion(treeRoots: List, context: ConversionContext): Boolean { + override fun runConversion(treeRoots: List, context: NewJ2kConverterContext): Boolean { return treeRoots.asSequence().map { runConversion(it, context) }.max() ?: false } } \ No newline at end of file diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BlockToRunConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BlockToRunConversion.kt index 6f6469abcd7..8fde40e5dca 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BlockToRunConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BlockToRunConversion.kt @@ -5,11 +5,11 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class BlockToRunConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class BlockToRunConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKBlockStatement) return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt index ba55e8be601..984925ca0eb 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext 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: ConversionContext) : RecursiveApplicableConversionBase() { +class BoxedTypeOperationsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { return recurse( when (element) { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt index d0783bcaa4f..2634c1fbb3a 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt @@ -12,7 +12,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: ConversionContext) : RecursiveApplicableConversionBase() { +class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKExpression) return recurse(element) return recurse(element.convert() ?: element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ClassToObjectPromotionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ClassToObjectPromotionConversion.kt index 68f1b41aa2a..3ed9d3fa933 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ClassToObjectPromotionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ClassToObjectPromotionConversion.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.getCompanion import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKAnnotationListImpl @@ -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: ConversionContext) : RecursiveApplicableConversionBase() { +class ClassToObjectPromotionConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { 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 e5a434d1864..8f4389eab93 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt @@ -11,14 +11,14 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKSymbol import org.jetbrains.kotlin.nj2k.tree.impl.fqNameToImport import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class CollectImportsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class CollectImportsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { when (element) { is JKClassAccessExpression -> addSymbol(element.identifier) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CompositeConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CompositeConversion.kt index 8ac3c11d369..e597e06f924 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CompositeConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CompositeConversion.kt @@ -5,31 +5,31 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKTreeElement class BatchPipelineConversion(val conversions: List) : BatchBaseConversion { - override fun runConversion(treeRoots: List, context: ConversionContext): Boolean { + override fun runConversion(treeRoots: List, context: NewJ2kConverterContext): Boolean { return conversions.asSequence().map { it.runConversion(treeRoots, context) }.max() ?: false } } class SequentialPipelineConversion(val conversions: List) : SequentialBaseConversion { - override fun runConversion(treeRoot: JKTreeElement, context: ConversionContext): Boolean { + 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, context: ConversionContext): Boolean { + override fun runConversion(treeRoots: List, 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: ConversionContext): Boolean { + override fun runConversion(treeRoot: JKTreeElement, context: NewJ2kConverterContext): Boolean { return true in generateSequence { conversion.runConversion(treeRoot, context) }.takeWhile { it } } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ConstructorConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ConstructorConversion.kt index ce56b12bdf4..99adb65af58 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ConstructorConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ConstructorConversion.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext 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: ConversionContext) : RecursiveApplicableConversionBase() { +class ConstructorConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaMethod) return recurse(element) val outerClass = element.parentOfType() ?: return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/DefaultArgumentsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/DefaultArgumentsConversion.kt index 65f3007fe77..5441e67ebb0 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/DefaultArgumentsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/DefaultArgumentsConversion.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.copyTreeAndDetach import org.jetbrains.kotlin.nj2k.jvmAnnotation import org.jetbrains.kotlin.nj2k.tree.* @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.JKUniverseMethodSymbol import org.jetbrains.kotlin.nj2k.tree.impl.psi import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class DefaultArgumentsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class DefaultArgumentsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { private fun JKMethod.canNotBeMerged(): Boolean = modality == Modality.ABSTRACT diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EnumFieldAccessConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EnumFieldAccessConversion.kt index d614e2c6ae7..62226656b69 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EnumFieldAccessConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EnumFieldAccessConversion.kt @@ -6,13 +6,13 @@ package org.jetbrains.kotlin.nj2k.conversions import com.intellij.psi.PsiEnumConstant -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.psi.psiUtil.containingClass -class EnumFieldAccessConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class EnumFieldAccessConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKFieldAccessExpression) return recurse(element) if ((element.parent as? JKQualifiedExpression)?.selector == element) return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EqualsOperatorConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EqualsOperatorConversion.kt index 83ab249c8d9..510f5f5ab34 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EqualsOperatorConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/EqualsOperatorConversion.kt @@ -5,13 +5,13 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.equalsExpression import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKParenthesizedExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.deepestFqName -class EqualsOperatorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class EqualsOperatorConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKQualifiedExpression) return recurse(element) if (element.receiver is JKSuperExpression) return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt index 8b0d9898e00..ee840fddb7f 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.nj2k.tree.impl.* import kotlin.math.abs -class ForConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class ForConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { private val referenceSearcher: ReferenceSearcher get() = context.converter.converterServices.oldServices.referenceSearcher diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt index 5ce924b7d7e..caed9ba5563 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt @@ -12,7 +12,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: ConversionContext) : RecursiveApplicableConversionBase() { +class ImplicitCastsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { when (element) { is JKVariable -> convertVariable(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt index 38d99d45a64..692c899f766 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.findUsages import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class ImplicitInitializerConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class ImplicitInitializerConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { enum class InitializationState { INITIALIZED_IN_ALL_CONSTRUCTORS, diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InsertDefaultPrimaryConstructorConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InsertDefaultPrimaryConstructorConversion.kt index abff7a1fb7b..74f3f5ea1d6 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InsertDefaultPrimaryConstructorConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InsertDefaultPrimaryConstructorConversion.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class InsertDefaultPrimaryConstructorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class InsertDefaultPrimaryConstructorConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKClass) return recurse(element) if (element.classKind != JKClass.ClassKind.CLASS) return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InternalDeclarationConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InternalDeclarationConversion.kt index 4ff3d4b7764..6b5750fac9c 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InternalDeclarationConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/InternalDeclarationConversion.kt @@ -6,12 +6,12 @@ package org.jetbrains.kotlin.nj2k.conversions import com.intellij.psi.PsiMember -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext 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: ConversionContext) : RecursiveApplicableConversionBase() { +class InternalDeclarationConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { 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 419ee3b3ce5..3c723c6ba24 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaAnnotationsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaAnnotationsConversion.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +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.JKAnnotationParameterImpl @@ -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: ConversionContext) : RecursiveApplicableConversionBase() { +class JavaAnnotationsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element is JKAnnotationList) { for (annotation in element.annotations) { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaMethodToKotlinFunctionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaMethodToKotlinFunctionConversion.kt index b815ba42a46..744a32ba7f2 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaMethodToKotlinFunctionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaMethodToKotlinFunctionConversion.kt @@ -17,13 +17,13 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.j2k.ast.Nullability -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.throwAnnotation 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: ConversionContext) : RecursiveApplicableConversionBase() { +class JavaMethodToKotlinFunctionConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaMethod) return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaModifiersConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaModifiersConversion.kt index 99bee91f83f..99e85e78ecb 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaModifiersConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaModifiersConversion.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.annotationByFqName import org.jetbrains.kotlin.nj2k.jvmAnnotation import org.jetbrains.kotlin.nj2k.tree.* -class JavaModifiersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class JavaModifiersConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element is JKModalityOwner && element is JKAnnotationListOwner) { val overrideAnnotation = element.annotationList.annotationByFqName("java.lang.Override") diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaStandartMethodsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaStandartMethodsConversion.kt index 2a9cebdc256..8c3bc89d74f 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaStandartMethodsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JavaStandartMethodsConversion.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class JavaStandartMethodsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class JavaStandartMethodsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { 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 f72f41afc47..6edad17d928 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JetbrainsNullableAnnotationsConverter.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/JetbrainsNullableAnnotationsConverter.kt @@ -8,12 +8,12 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.load.java.NOT_NULL_ANNOTATIONS import org.jetbrains.kotlin.load.java.NULLABLE_ANNOTATIONS -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl -class JetbrainsNullableAnnotationsConverter(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class JetbrainsNullableAnnotationsConverter(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKAnnotationListOwner) return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MainFunctionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MainFunctionConversion.kt index 5a47384098e..ab4cb5bf380 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MainFunctionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/MainFunctionConversion.kt @@ -5,15 +5,14 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -import org.jetbrains.kotlin.util.collectionUtils.concatInOrder //TODO temporary -class MainFunctionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class MainFunctionConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKMethod) return recurse(element) if (element.isMainFunctionDeclaration()) { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ModalityConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ModalityConversion.kt index 666fbc11917..bfcaef496d9 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ModalityConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ModalityConversion.kt @@ -7,11 +7,11 @@ package org.jetbrains.kotlin.nj2k.conversions import com.intellij.psi.PsiClass import com.intellij.psi.PsiMethod -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.psi -class ModalityConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class ModalityConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { when (element) { is JKClass -> processClass(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/OperatorExpressionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/OperatorExpressionConversion.kt index 18c3e77a941..89e909dd26d 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/OperatorExpressionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/OperatorExpressionConversion.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.nj2k.conversions import com.intellij.psi.JavaTokenType import org.jetbrains.kotlin.lexer.KtTokens -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.kotlinBinaryExpression import org.jetbrains.kotlin.nj2k.kotlinPostfixExpression import org.jetbrains.kotlin.nj2k.kotlinPrefixExpression @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class OperatorExpressionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class OperatorExpressionConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKOperatorExpression) return recurse(element) val operator = element.operator as? JKJavaOperatorImpl ?: return recurse(element) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ParameterModificationInMethodCallsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ParameterModificationInMethodCallsConversion.kt index 57cfe401eb6..0a38a29babf 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ParameterModificationInMethodCallsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ParameterModificationInMethodCallsConversion.kt @@ -6,13 +6,13 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.j2k.ast.Nullability -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.hasWritableUsages import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class ParameterModificationInMethodCallsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class ParameterModificationInMethodCallsConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKMethod) return recurse(element) val newVariables = diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PrimaryConstructorDetectConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PrimaryConstructorDetectConversion.kt index 8b06020ba2c..1cfc79be622 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PrimaryConstructorDetectConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PrimaryConstructorDetectConversion.kt @@ -5,13 +5,13 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.replace 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: ConversionContext) : RecursiveApplicableConversionBase() { +class PrimaryConstructorDetectConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element is JKClass && (element.classKind == JKClass.ClassKind.CLASS || element.classKind == JKClass.ClassKind.ENUM) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RecursiveApplicableConversionBase.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RecursiveApplicableConversionBase.kt index 4486b78bbdf..ce1bf6a25b5 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RecursiveApplicableConversionBase.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RecursiveApplicableConversionBase.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKTreeElement abstract class RecursiveApplicableConversionBase : MatchBasedConversion() { @@ -13,7 +13,7 @@ abstract class RecursiveApplicableConversionBase : MatchBasedConversion() { somethingChanged = true } - override fun runConversion(treeRoot: JKTreeElement, context: ConversionContext): Boolean { + override fun runConversion(treeRoot: JKTreeElement, context: NewJ2kConverterContext): Boolean { val root = applyToElement(treeRoot) assert(root === treeRoot) return somethingChanged diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticMemberAccessConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticMemberAccessConversion.kt index c902641e10f..b76d859269d 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticMemberAccessConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/StaticMemberAccessConversion.kt @@ -10,7 +10,7 @@ import com.intellij.psi.PsiElement import com.intellij.psi.PsiModifierListOwner import com.intellij.psi.util.parentOfType import org.jetbrains.kotlin.j2k.getContainingClass -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.asQualifierWithThisAsSelector import org.jetbrains.kotlin.nj2k.copyTreeAndDetach import org.jetbrains.kotlin.nj2k.tree.* @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.psi.psiUtil.containingClass import org.jetbrains.kotlin.utils.addToStdlib.safeAs -class StaticMemberAccessConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class StaticMemberAccessConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { val symbol = when (element) { diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SwitchStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SwitchStatementConversion.kt index 2e3498f678c..d3fdd25908f 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SwitchStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SwitchStatementConversion.kt @@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement import com.intellij.psi.controlFlow.ControlFlowFactory import com.intellij.psi.controlFlow.ControlFlowUtil import com.intellij.psi.controlFlow.LocalsOrMyInstanceFieldsControlFlowPolicy -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.blockStatement import org.jetbrains.kotlin.nj2k.copyTreeAndDetach import org.jetbrains.kotlin.nj2k.runExpression @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class SwitchStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class SwitchStatementConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaSwitchStatementImpl) return recurse(element) element.invalidate() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SynchronizedStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SynchronizedStatementConversion.kt index c9727f29a99..624e7967776 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SynchronizedStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/SynchronizedStatementConversion.kt @@ -5,14 +5,14 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKJavaSynchronizedStatement import org.jetbrains.kotlin.nj2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.impl.* import org.jetbrains.kotlin.nj2k.tree.withNonCodeElementsFrom -class SynchronizedStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class SynchronizedStatementConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaSynchronizedStatement) return recurse(element) element.invalidate() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TransformerBasedConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TransformerBasedConversion.kt index 5a2957dc79d..8b6d1a26d29 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TransformerBasedConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TransformerBasedConversion.kt @@ -16,14 +16,14 @@ package org.jetbrains.kotlin.nj2k.conversions -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorVoid abstract class TransformerBasedConversion : SequentialBaseConversion, JKVisitorVoid { protected var somethingChanged = false - override fun runConversion(treeRoot: JKTreeElement, context: ConversionContext): Boolean { + override fun runConversion(treeRoot: JKTreeElement, context: NewJ2kConverterContext): Boolean { somethingChanged = false treeRoot.accept(this, null) return somethingChanged diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TryStatementConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TryStatementConversion.kt index 046128501a6..22dd748898a 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TryStatementConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TryStatementConversion.kt @@ -6,14 +6,14 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.j2k.ast.Nullability -import org.jetbrains.kotlin.nj2k.ConversionContext +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.* import org.jetbrains.kotlin.nj2k.useExpression -class TryStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() { +class TryStatementConversion(private val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaTryStatement) return recurse(element) return if (element.resourceDeclarations.isEmpty()) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt index 510a1745a90..aba2651a8bd 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt @@ -15,12 +15,12 @@ import org.jetbrains.kotlin.j2k.ast.Mutability import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.kotlinTypeByName import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.* -class TypeMappingConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() { +class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() { private val typeFlavorCalculator = TypeFlavorCalculator(object : TypeFlavorConverterFacade { override val referenceSearcher: ReferenceSearcher get() = context.converter.converterServices.oldServices.referenceSearcher diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/resolveUtil.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/resolveUtil.kt index 9bda02b8ee2..6046a5de677 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/resolveUtil.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/resolveUtil.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.nj2k.conversions import com.intellij.psi.PsiElement import com.intellij.psi.PsiPolyVariantReference -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKTreeElement import org.jetbrains.kotlin.nj2k.tree.impl.psi import org.jetbrains.kotlin.name.ClassId @@ -19,7 +19,7 @@ import org.jetbrains.kotlin.psi.psiUtil.getChildOfType import org.jetbrains.kotlin.resolve.ImportPath -internal fun resolveFqName(classId: ClassId, contextElement: JKTreeElement, context: ConversionContext): PsiElement? { +internal fun resolveFqName(classId: ClassId, contextElement: JKTreeElement, context: NewJ2kConverterContext): PsiElement? { val element = contextElement.psi ?: return null return resolveFqName(classId, element) } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/expressions.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/expressions.kt index f1421b02348..eff0438e3be 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/expressions.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/expressions.kt @@ -220,7 +220,7 @@ fun kotlinPostfixExpression( fun untilToExpression( from: JKExpression, to: JKExpression, - conversionContext: ConversionContext + conversionContext: NewJ2kConverterContext ): JKExpression = rangeExpression( from, @@ -232,7 +232,7 @@ fun untilToExpression( fun downToExpression( from: JKExpression, to: JKExpression, - conversionContext: ConversionContext + conversionContext: NewJ2kConverterContext ): JKExpression = rangeExpression( from, @@ -254,7 +254,7 @@ fun rangeExpression( from: JKExpression, to: JKExpression, operatorName: String, - conversionContext: ConversionContext + conversionContext: NewJ2kConverterContext ): JKExpression = JKBinaryExpressionImpl( from, @@ -331,7 +331,7 @@ fun stringLiteral(content: String, symbolProvider: JKSymbolProvider): JKExpressi } } -fun JKVariable.findUsages(scope: JKTreeElement, context: ConversionContext): List { +fun JKVariable.findUsages(scope: JKTreeElement, context: NewJ2kConverterContext): List { val symbol = context.symbolProvider.provideUniverseSymbol(this) val usages = mutableListOf() val searcher = object : RecursiveApplicableConversionBase() { @@ -369,7 +369,7 @@ fun JKExpression.bangedBangedExpr(symbolProvider: JKSymbolProvider): JKExpressio JKKtOperatorImpl(KtTokens.EXCLEXCL, type(symbolProvider)!!) ) -fun JKVariable.hasWritableUsages(scope: JKTreeElement, context: ConversionContext): Boolean = +fun JKVariable.hasWritableUsages(scope: JKTreeElement, context: NewJ2kConverterContext): Boolean = findUsages(scope, context).any { it.asAssignmentFromTarget() != null || it.isInDecrementOrIncrement() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/tree/types.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/tree/types.kt index 73626975618..ce9d5a0b218 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/tree/types.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/tree/types.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.js.descriptorUtils.getJetTypeFqName import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.nj2k.ConversionContext +import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.JKSymbolProvider import org.jetbrains.kotlin.nj2k.kotlinTypeByName import org.jetbrains.kotlin.nj2k.tree.impl.* @@ -240,7 +240,7 @@ fun T.updateNullabilityRecursively(newNullability: Nullability): T } } as T -fun JKJavaMethod.returnTypeNullability(context: ConversionContext): Nullability = +fun JKJavaMethod.returnTypeNullability(context: NewJ2kConverterContext): Nullability = context.typeFlavorCalculator.methodNullability(psi()!!) fun JKType.isCollectionType(symbolProvider: JKSymbolProvider): Boolean {