New J2K: Separate new j2k from old j2k
This commit is contained in:
committed by
Ilya Kirillov
parent
e6f0a242fd
commit
c827247272
@@ -58,10 +58,4 @@ private object IdeaJavaDataFlowAnalyzerFacade : JavaDataFlowAnalyzerFacade {
|
|||||||
IntellijNullability.NOT_NULL -> Nullability.NotNull
|
IntellijNullability.NOT_NULL -> Nullability.NotNull
|
||||||
IntellijNullability.NULLABLE -> Nullability.Nullable
|
IntellijNullability.NULLABLE -> Nullability.Nullable
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
object IdeaNewJavaToKotlinServices : NewJavaToKotlinServices {
|
|
||||||
override val oldServices: JavaToKotlinConverterServices
|
|
||||||
get() = IdeaJavaToKotlinServices
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -16,24 +16,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.j2k
|
package org.jetbrains.kotlin.idea.j2k
|
||||||
|
|
||||||
import com.intellij.codeInsight.actions.OptimizeImportsProcessor
|
import com.intellij.codeInspection.ProblemHighlightType
|
||||||
import com.intellij.codeInspection.*
|
|
||||||
import com.intellij.codeInspection.ex.LocalInspectionToolWrapper
|
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
|
||||||
import com.intellij.openapi.project.Project
|
|
||||||
import com.intellij.psi.PsiDocumentManager
|
|
||||||
import com.intellij.psi.PsiElement
|
|
||||||
import com.intellij.psi.search.LocalSearchScope
|
import com.intellij.psi.search.LocalSearchScope
|
||||||
import com.intellij.psi.search.searches.ReferencesSearch
|
import com.intellij.psi.search.searches.ReferencesSearch
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
|
||||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
|
||||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
|
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
|
||||||
import org.jetbrains.kotlin.diagnostics.Errors
|
import org.jetbrains.kotlin.diagnostics.Errors
|
||||||
import org.jetbrains.kotlin.idea.analysis.analyzeInContext
|
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
import org.jetbrains.kotlin.idea.core.moveFunctionLiteralOutsideParenthesesIfPossible
|
||||||
import org.jetbrains.kotlin.idea.core.replaced
|
import org.jetbrains.kotlin.idea.core.replaced
|
||||||
import org.jetbrains.kotlin.idea.core.setVisibility
|
import org.jetbrains.kotlin.idea.core.setVisibility
|
||||||
import org.jetbrains.kotlin.idea.inspections.*
|
import org.jetbrains.kotlin.idea.inspections.*
|
||||||
@@ -44,23 +35,19 @@ import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.F
|
|||||||
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention
|
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention
|
||||||
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention
|
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention
|
||||||
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody
|
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody
|
||||||
import org.jetbrains.kotlin.idea.quickfix.ChangeVariableMutabilityFix
|
|
||||||
import org.jetbrains.kotlin.idea.quickfix.QuickFixActionBase
|
|
||||||
import org.jetbrains.kotlin.idea.quickfix.RemoveModifierFix
|
import org.jetbrains.kotlin.idea.quickfix.RemoveModifierFix
|
||||||
import org.jetbrains.kotlin.idea.quickfix.RemoveUselessCastFix
|
import org.jetbrains.kotlin.idea.quickfix.RemoveUselessCastFix
|
||||||
import org.jetbrains.kotlin.idea.references.mainReference
|
import org.jetbrains.kotlin.idea.references.mainReference
|
||||||
import org.jetbrains.kotlin.idea.util.getResolutionScope
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
|
||||||
import org.jetbrains.kotlin.j2k.ConverterSettings
|
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
|
||||||
|
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
||||||
|
import org.jetbrains.kotlin.psi.psiUtil.isAncestor
|
||||||
|
import org.jetbrains.kotlin.psi.psiUtil.visibilityModifierType
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getType
|
import org.jetbrains.kotlin.resolve.calls.callUtil.getType
|
||||||
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
||||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||||
import org.jetbrains.kotlin.types.isNullable
|
|
||||||
import org.jetbrains.kotlin.types.typeUtil.makeNotNullable
|
|
||||||
import org.jetbrains.kotlin.utils.mapToIndex
|
import org.jetbrains.kotlin.utils.mapToIndex
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.j2k
|
package org.jetbrains.kotlin.idea.j2k
|
||||||
|
|
||||||
import com.intellij.codeInsight.actions.OptimizeImportsProcessor
|
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.application.ModalityState
|
import com.intellij.openapi.application.ModalityState
|
||||||
import com.intellij.openapi.editor.RangeMarker
|
import com.intellij.openapi.editor.RangeMarker
|
||||||
@@ -33,8 +32,6 @@ import org.jetbrains.kotlin.idea.core.util.EDT
|
|||||||
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
|
||||||
import org.jetbrains.kotlin.j2k.ConverterSettings
|
|
||||||
import org.jetbrains.kotlin.j2k.PostProcessor
|
import org.jetbrains.kotlin.j2k.PostProcessor
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
@@ -43,10 +40,7 @@ import org.jetbrains.kotlin.psi.psiUtil.elementsInRange
|
|||||||
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class J2kPostProcessor(
|
class J2kPostProcessor(private val formatCode: Boolean) : PostProcessor {
|
||||||
private val formatCode: Boolean,
|
|
||||||
private val postProcessingRegistrar: J2KPostProcessingRegistrar = J2KPostProcessingRegistrarImpl
|
|
||||||
) : PostProcessor {
|
|
||||||
override fun insertImport(file: KtFile, fqName: FqName) {
|
override fun insertImport(file: KtFile, fqName: FqName) {
|
||||||
ApplicationManager.getApplication().invokeAndWait {
|
ApplicationManager.getApplication().invokeAndWait {
|
||||||
runWriteAction {
|
runWriteAction {
|
||||||
@@ -62,49 +56,36 @@ class J2kPostProcessor(
|
|||||||
PROCESS
|
PROCESS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?) =
|
||||||
override fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?,settings: ConverterSettings??) {
|
|
||||||
fun Processing.flattenToGroups(): List<List<J2kPostProcessing>> =
|
|
||||||
when (this) {
|
|
||||||
is SingleProcessing -> listOf(listOf(this.processing))
|
|
||||||
is ProcessingGroup ->
|
|
||||||
if (processings.all { it is SingleProcessing }) {
|
|
||||||
listOf(processings.map { (it as SingleProcessing).processing })
|
|
||||||
} else {
|
|
||||||
processings.flatMap { it.flattenToGroups() }
|
|
||||||
}
|
|
||||||
else -> error("Processing tree is corrupted")
|
|
||||||
}
|
|
||||||
OptimizeImportsProcessor(file.project, file.containingKtFile).run()
|
|
||||||
val groupsOfProcessings = postProcessingRegistrar.mainProcessings.flattenToGroups()
|
|
||||||
|
|
||||||
runBlocking(EDT.ModalityStateElement(ModalityState.defaultModalityState())) {
|
runBlocking(EDT.ModalityStateElement(ModalityState.defaultModalityState())) {
|
||||||
for (processings in groupsOfProcessings) {
|
do {
|
||||||
do {
|
var modificationStamp: Long? = file.modificationStamp
|
||||||
var modificationStamp: Long? = file.modificationStamp
|
val elementToActions = runReadAction {
|
||||||
val elementToActions = runReadAction {
|
collectAvailableActions(file, rangeMarker)
|
||||||
collectAvailableActions(processings, file, rangeMarker, settings)
|
}
|
||||||
}
|
|
||||||
|
|
||||||
withContext(EDT) {
|
withContext(EDT) {
|
||||||
for ((element, action, _, writeActionNeeded) in elementToActions) {
|
for ((element, action, _, writeActionNeeded) in elementToActions) {
|
||||||
if (element.isValid) {
|
if (element.isValid) {
|
||||||
if (writeActionNeeded) {
|
if (writeActionNeeded) {
|
||||||
runWriteAction {
|
runWriteAction {
|
||||||
action()
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
action()
|
action()
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
modificationStamp = null
|
else {
|
||||||
|
action()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
modificationStamp = null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (modificationStamp == file.modificationStamp) break
|
if (modificationStamp == file.modificationStamp) break
|
||||||
} while (elementToActions.isNotEmpty())
|
|
||||||
}
|
}
|
||||||
|
while (elementToActions.isNotEmpty())
|
||||||
|
|
||||||
|
|
||||||
if (formatCode) {
|
if (formatCode) {
|
||||||
withContext(EDT) {
|
withContext(EDT) {
|
||||||
@@ -114,7 +95,8 @@ class J2kPostProcessor(
|
|||||||
if (rangeMarker.isValid) {
|
if (rangeMarker.isValid) {
|
||||||
codeStyleManager.reformatRange(file, rangeMarker.startOffset, rangeMarker.endOffset)
|
codeStyleManager.reformatRange(file, rangeMarker.startOffset, rangeMarker.endOffset)
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
codeStyleManager.reformat(file)
|
codeStyleManager.reformat(file)
|
||||||
}
|
}
|
||||||
Unit
|
Unit
|
||||||
@@ -122,17 +104,11 @@ class J2kPostProcessor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private data class ActionData(val element: KtElement, val action: () -> Unit, val priority: Int, val writeActionNeeded: Boolean)
|
private data class ActionData(val element: KtElement, val action: () -> Unit, val priority: Int, val writeActionNeeded: Boolean)
|
||||||
|
|
||||||
private fun collectAvailableActions(
|
private fun collectAvailableActions(file: KtFile, rangeMarker: RangeMarker?): List<ActionData> {
|
||||||
processings: Collection<J2kPostProcessing>,
|
|
||||||
file: KtFile,
|
|
||||||
rangeMarker: RangeMarker?,
|
|
||||||
settings: ConverterSettings??
|
|
||||||
): List<ActionData> {
|
|
||||||
val diagnostics = analyzeFileRange(file, rangeMarker)
|
val diagnostics = analyzeFileRange(file, rangeMarker)
|
||||||
|
|
||||||
val availableActions = ArrayList<ActionData>()
|
val availableActions = ArrayList<ActionData>()
|
||||||
@@ -146,16 +122,12 @@ class J2kPostProcessor(
|
|||||||
super.visitElement(element)
|
super.visitElement(element)
|
||||||
|
|
||||||
if (rangeResult == RangeFilterResult.PROCESS) {
|
if (rangeResult == RangeFilterResult.PROCESS) {
|
||||||
processings.forEach { processing ->
|
J2KPostProcessingRegistrar.processings.forEach { processing ->
|
||||||
val action = processing.createAction(element, diagnostics, settings)
|
val action = processing.createAction(element, diagnostics)
|
||||||
if (action != null) {
|
if (action != null) {
|
||||||
availableActions.add(
|
availableActions.add(ActionData(element, action,
|
||||||
ActionData(
|
J2KPostProcessingRegistrar.priority(processing),
|
||||||
element, action,
|
processing.writeActionNeeded))
|
||||||
postProcessingRegistrar.priority(processing),
|
|
||||||
processing.writeActionNeeded
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1154,7 +1154,7 @@ internal fun <D : KtNamedDeclaration> placeDeclarationInContainer(
|
|||||||
return declarationInPlace
|
return declarationInPlace
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun KtNamedDeclaration.getReturnTypeReference() = getReturnTypeReferences().singleOrNull()
|
fun KtNamedDeclaration.getReturnTypeReference() = getReturnTypeReferences().singleOrNull()
|
||||||
|
|
||||||
internal fun KtNamedDeclaration.getReturnTypeReferences(): List<KtTypeReference> {
|
internal fun KtNamedDeclaration.getReturnTypeReferences(): List<KtTypeReference> {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
|
|||||||
@@ -33,6 +33,6 @@ class AfterConversionPass(val project: Project, val postProcessor: PostProcessor
|
|||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|
||||||
postProcessor.doAdditionalProcessing(kotlinFile, rangeMarker, null)
|
postProcessor.doAdditionalProcessing(kotlinFile, rangeMarker)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import java.util.*
|
|||||||
interface PostProcessor {
|
interface PostProcessor {
|
||||||
fun insertImport(file: KtFile, fqName: FqName)
|
fun insertImport(file: KtFile, fqName: FqName)
|
||||||
|
|
||||||
fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?, settings: ConverterSettings?)
|
fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?)
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class ParseContext {
|
enum class ParseContext {
|
||||||
@@ -48,9 +48,9 @@ enum class ParseContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class JavaToKotlinConverter(
|
class JavaToKotlinConverter(
|
||||||
private val project: Project,
|
private val project: Project,
|
||||||
private val settings: ConverterSettings,
|
private val settings: ConverterSettings,
|
||||||
private val services: JavaToKotlinConverterServices
|
private val services: JavaToKotlinConverterServices
|
||||||
) {
|
) {
|
||||||
private val LOG = Logger.getInstance("#org.jetbrains.kotlin.j2k.JavaToKotlinConverter")
|
private val LOG = Logger.getInstance("#org.jetbrains.kotlin.j2k.JavaToKotlinConverter")
|
||||||
|
|
||||||
@@ -141,25 +141,25 @@ class JavaToKotlinConverter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private data class ReferenceInfo(
|
private data class ReferenceInfo(
|
||||||
val reference: PsiReference,
|
val reference: PsiReference,
|
||||||
val target: PsiElement,
|
val target: PsiElement,
|
||||||
val file: PsiFile,
|
val file: PsiFile,
|
||||||
val processings: Collection<UsageProcessing>
|
val processings: Collection<UsageProcessing>
|
||||||
) {
|
) {
|
||||||
val depth: Int by lazy(LazyThreadSafetyMode.NONE) { target.parentsWithSelf.takeWhile { it !is PsiFile }.count() }
|
val depth: Int by lazy(LazyThreadSafetyMode.NONE) { target.parentsWithSelf.takeWhile { it !is PsiFile }.count() }
|
||||||
val offset: Int by lazy(LazyThreadSafetyMode.NONE) { reference.element.textRange.startOffset }
|
val offset: Int by lazy(LazyThreadSafetyMode.NONE) { reference.element.textRange.startOffset }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun buildExternalCodeProcessing(
|
private fun buildExternalCodeProcessing(
|
||||||
usageProcessings: Map<PsiElement, Collection<UsageProcessing>>,
|
usageProcessings: Map<PsiElement, Collection<UsageProcessing>>,
|
||||||
inConversionScope: (PsiElement) -> Boolean
|
inConversionScope: (PsiElement) -> Boolean
|
||||||
): ExternalCodeProcessing? {
|
): ExternalCodeProcessing? {
|
||||||
if (usageProcessings.isEmpty()) return null
|
if (usageProcessings.isEmpty()) return null
|
||||||
|
|
||||||
val map: Map<PsiElement, Collection<UsageProcessing>> = usageProcessings.values
|
val map: Map<PsiElement, Collection<UsageProcessing>> = usageProcessings.values
|
||||||
.flatten()
|
.flatten()
|
||||||
.filter { it.javaCodeProcessors.isNotEmpty() || it.kotlinCodeProcessors.isNotEmpty() }
|
.filter { it.javaCodeProcessors.isNotEmpty() || it.kotlinCodeProcessors.isNotEmpty() }
|
||||||
.groupBy { it.targetElement }
|
.groupBy { it.targetElement }
|
||||||
if (map.isEmpty()) return null
|
if (map.isEmpty()) return null
|
||||||
|
|
||||||
return object: ExternalCodeProcessing {
|
return object: ExternalCodeProcessing {
|
||||||
@@ -176,14 +176,14 @@ class JavaToKotlinConverter(
|
|||||||
progress.checkCanceled()
|
progress.checkCanceled()
|
||||||
|
|
||||||
ProgressManager.getInstance().runProcess(
|
ProgressManager.getInstance().runProcess(
|
||||||
{
|
{
|
||||||
val searchJava = processings.any { it.javaCodeProcessors.isNotEmpty() }
|
val searchJava = processings.any { it.javaCodeProcessors.isNotEmpty() }
|
||||||
val searchKotlin = processings.any { it.kotlinCodeProcessors.isNotEmpty() }
|
val searchKotlin = processings.any { it.kotlinCodeProcessors.isNotEmpty() }
|
||||||
services.referenceSearcher.findUsagesForExternalCodeProcessing(psiElement, searchJava, searchKotlin)
|
services.referenceSearcher.findUsagesForExternalCodeProcessing(psiElement, searchJava, searchKotlin)
|
||||||
.filterNot { inConversionScope(it.element) }
|
.filterNot { inConversionScope(it.element) }
|
||||||
.mapTo(refs) { ReferenceInfo(it, psiElement, it.element.containingFile, processings) }
|
.mapTo(refs) { ReferenceInfo(it, psiElement, it.element.containingFile, processings) }
|
||||||
},
|
},
|
||||||
ProgressPortionReporter(progress, i / map.size.toDouble(), 1.0 / map.size))
|
ProgressPortionReporter(progress, i / map.size.toDouble(), 1.0 / map.size))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,37 +245,37 @@ class JavaToKotlinConverter(
|
|||||||
private var pass = 1
|
private var pass = 1
|
||||||
|
|
||||||
fun <TInputItem, TOutputItem> processItems(
|
fun <TInputItem, TOutputItem> processItems(
|
||||||
fractionPortion: Double,
|
fractionPortion: Double,
|
||||||
inputItems: Iterable<TInputItem>,
|
inputItems: Iterable<TInputItem>,
|
||||||
processItem: (TInputItem) -> TOutputItem
|
processItem: (TInputItem) -> TOutputItem
|
||||||
): List<TOutputItem> {
|
): List<TOutputItem> {
|
||||||
val outputItems = ArrayList<TOutputItem>()
|
val outputItems = ArrayList<TOutputItem>()
|
||||||
// we use special process with EmptyProgressIndicator to avoid changing text in our progress by inheritors search inside etc
|
// we use special process with EmptyProgressIndicator to avoid changing text in our progress by inheritors search inside etc
|
||||||
ProgressManager.getInstance().runProcess(
|
ProgressManager.getInstance().runProcess(
|
||||||
{
|
{
|
||||||
progress?.text = "$progressText ($fileCountText) - pass $pass of 3"
|
progress?.text = "$progressText ($fileCountText) - pass $pass of 3"
|
||||||
|
|
||||||
for ((i, item) in inputItems.withIndex()) {
|
for ((i, item) in inputItems.withIndex()) {
|
||||||
progress?.checkCanceled()
|
progress?.checkCanceled()
|
||||||
progress?.fraction = fraction + fractionPortion * i / fileCount
|
progress?.fraction = fraction + fractionPortion * i / fileCount
|
||||||
|
|
||||||
progress?.text2 = files!![i].virtualFile.presentableUrl
|
progress?.text2 = files!![i].virtualFile.presentableUrl
|
||||||
|
|
||||||
outputItems.add(processItem(item))
|
outputItems.add(processItem(item))
|
||||||
}
|
}
|
||||||
|
|
||||||
pass++
|
pass++
|
||||||
fraction += fractionPortion
|
fraction += fractionPortion
|
||||||
},
|
},
|
||||||
EmptyProgressIndicator())
|
EmptyProgressIndicator())
|
||||||
return outputItems
|
return outputItems
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ProgressPortionReporter(
|
private class ProgressPortionReporter(
|
||||||
indicator: ProgressIndicator,
|
indicator: ProgressIndicator,
|
||||||
private val start: Double,
|
private val start: Double,
|
||||||
private val portion: Double
|
private val portion: Double
|
||||||
) : DelegatingProgressIndicator(indicator) {
|
) : DelegatingProgressIndicator(indicator) {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// !forceNotNullTypes: false
|
// !forceNotNullTypes: false
|
||||||
// !specifyLocalVariableTypeByDefault: true
|
// !specifyLocalVariableTypeByDefault: true
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
class Foo {
|
class Foo {
|
||||||
void foo(HashSet o) {
|
void foo(HashSet o) {
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package test
|
package test
|
||||||
|
|
||||||
import javaApi.Listener
|
import javaApi.*
|
||||||
|
|
||||||
class Test {
|
class Test {
|
||||||
private val listener = Listener { visibility -> val a = visibility and 1 }
|
private val listener = Listener { visibility -> val a = visibility and 1 }
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
kotlin("jvm")
|
||||||
|
id("jps-compatible")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testRuntime(intellijDep())
|
||||||
|
|
||||||
|
compile(project(":j2k"))
|
||||||
|
testCompile(files(project(":j2k").dependencyProject.sourceSets.getByName("test").output))
|
||||||
|
|
||||||
|
compile(project(":idea:idea-core"))
|
||||||
|
compile(project(":kotlin-stdlib"))
|
||||||
|
compile(project(":compiler:frontend"))
|
||||||
|
compile(project(":compiler:frontend.java"))
|
||||||
|
compile(project(":compiler:light-classes"))
|
||||||
|
compile(project(":compiler:util"))
|
||||||
|
compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
||||||
|
|
||||||
|
testCompile(project(":idea"))
|
||||||
|
compile(project(":nj2k:nj2k-services"))
|
||||||
|
testCompile(projectTests(":idea:idea-test-framework"))
|
||||||
|
testCompile(project(":compiler:light-classes"))
|
||||||
|
testCompile(project(":kotlin-test:kotlin-test-junit"))
|
||||||
|
testCompile(commonDep("junit:junit"))
|
||||||
|
|
||||||
|
when {
|
||||||
|
Ide.IJ181.orHigher() || Ide.AS33.orHigher() -> testCompileOnly(intellijDep()) { includeJars("platform-api", "platform-impl") }
|
||||||
|
Ide.AS32() -> testCompileOnly(intellijDep()) { includeJars("idea") }
|
||||||
|
}
|
||||||
|
testCompile(project(":idea:idea-native")) { isTransitive = false }
|
||||||
|
testCompile(project(":idea:idea-gradle-native")) { isTransitive = false }
|
||||||
|
|
||||||
|
testRuntime(project(":kotlin-native:kotlin-native-library-reader")) { isTransitive = false }
|
||||||
|
testRuntime(project(":kotlin-native:kotlin-native-utils")) { isTransitive = false }
|
||||||
|
testRuntime(project(":plugins:kapt3-idea")) { isTransitive = false }
|
||||||
|
testRuntime(project(":idea:idea-jvm"))
|
||||||
|
testRuntime(project(":idea:idea-android"))
|
||||||
|
testRuntime(project(":plugins:android-extensions-ide"))
|
||||||
|
testRuntime(project(":sam-with-receiver-ide-plugin"))
|
||||||
|
testRuntime(project(":allopen-ide-plugin"))
|
||||||
|
testRuntime(project(":noarg-ide-plugin"))
|
||||||
|
testRuntime(project(":kotlin-scripting-idea"))
|
||||||
|
testRuntime(project(":kotlinx-serialization-ide-plugin"))
|
||||||
|
testRuntime(intellijPluginDep("properties"))
|
||||||
|
testRuntime(intellijPluginDep("gradle"))
|
||||||
|
testRuntime(intellijPluginDep("Groovy"))
|
||||||
|
testRuntime(intellijPluginDep("coverage"))
|
||||||
|
Ide.IJ {
|
||||||
|
testRuntime(intellijPluginDep("maven"))
|
||||||
|
}
|
||||||
|
testRuntime(intellijPluginDep("android"))
|
||||||
|
testRuntime(intellijPluginDep("smali"))
|
||||||
|
testRuntime(intellijPluginDep("junit"))
|
||||||
|
testRuntime(intellijPluginDep("testng"))
|
||||||
|
testRuntime(intellijPluginDep("IntelliLang"))
|
||||||
|
testRuntime(intellijPluginDep("testng"))
|
||||||
|
testRuntime(intellijPluginDep("copyright"))
|
||||||
|
testRuntime(intellijPluginDep("properties"))
|
||||||
|
testRuntime(intellijPluginDep("java-i18n"))
|
||||||
|
testRuntime(intellijPluginDep("java-decompiler"))
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
"main" { projectDefault() }
|
||||||
|
"test" { projectDefault() }
|
||||||
|
}
|
||||||
|
|
||||||
|
projectTest {
|
||||||
|
dependsOn(":dist")
|
||||||
|
workingDir = rootDir
|
||||||
|
}
|
||||||
|
|
||||||
|
testsJar()
|
||||||
|
|
||||||
|
|
||||||
|
val test: Test by tasks
|
||||||
|
val cleanTest by tasks
|
||||||
|
|
||||||
|
configureFreeCompilerArg(true, "-Xeffect-system")
|
||||||
|
configureFreeCompilerArg(true, "-Xnew-inference")
|
||||||
|
|
||||||
|
fun configureFreeCompilerArg(isEnabled: Boolean, compilerArgument: String) {
|
||||||
|
if (isEnabled) {
|
||||||
|
allprojects {
|
||||||
|
tasks.withType<KotlinCompile<*>> {
|
||||||
|
kotlinOptions {
|
||||||
|
freeCompilerArgs += listOf(compilerArgument)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
plugins {
|
||||||
|
kotlin("jvm")
|
||||||
|
id("jps-compatible")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testRuntime(intellijDep())
|
||||||
|
|
||||||
|
compile(project(":kotlin-stdlib-jdk8"))
|
||||||
|
compileOnly(project(":kotlin-reflect-api"))
|
||||||
|
compile(project(":core:descriptors"))
|
||||||
|
compile(project(":core:descriptors.jvm"))
|
||||||
|
compile(project(":compiler:backend"))
|
||||||
|
compile(project(":compiler:cli-common"))
|
||||||
|
compile(project(":compiler:frontend"))
|
||||||
|
compile(project(":compiler:frontend.common"))
|
||||||
|
compile(project(":compiler:frontend.java"))
|
||||||
|
compile(project(":compiler:frontend.script"))
|
||||||
|
compile(project(":js:js.frontend"))
|
||||||
|
compile(project(":js:js.serializer"))
|
||||||
|
compile(project(":compiler:light-classes"))
|
||||||
|
compile(project(":compiler:util"))
|
||||||
|
compile(project(":kotlin-build-common"))
|
||||||
|
compile(project(":compiler:daemon-common"))
|
||||||
|
compile(projectRuntimeJar(":kotlin-daemon-client"))
|
||||||
|
compile(project(":kotlin-compiler-runner")) { isTransitive = false }
|
||||||
|
compile(project(":compiler:plugin-api"))
|
||||||
|
compile(project(":eval4j"))
|
||||||
|
compile(project(":j2k"))
|
||||||
|
compile(project(":idea"))
|
||||||
|
compile(project(":idea:formatter"))
|
||||||
|
compile(project(":idea:fir-view"))
|
||||||
|
compile(project(":idea:idea-core"))
|
||||||
|
compile(project(":idea:ide-common"))
|
||||||
|
compile(project(":idea:idea-jps-common"))
|
||||||
|
compile(project(":idea:kotlin-gradle-tooling"))
|
||||||
|
compile(project(":plugins:uast-kotlin"))
|
||||||
|
compile(project(":plugins:uast-kotlin-idea"))
|
||||||
|
compile(project(":kotlin-script-util")) { isTransitive = false }
|
||||||
|
compile(project(":kotlin-scripting-intellij"))
|
||||||
|
|
||||||
|
compile(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false }
|
||||||
|
|
||||||
|
compileOnly(project(":kotlin-daemon-client"))
|
||||||
|
|
||||||
|
compileOnly(intellijDep())
|
||||||
|
compileOnly(commonDep("com.google.code.findbugs", "jsr305"))
|
||||||
|
compileOnly(intellijPluginDep("IntelliLang"))
|
||||||
|
compileOnly(intellijPluginDep("copyright"))
|
||||||
|
compileOnly(intellijPluginDep("properties"))
|
||||||
|
compileOnly(intellijPluginDep("java-i18n"))
|
||||||
|
|
||||||
|
testCompile(project(":kotlin-test:kotlin-test-junit"))
|
||||||
|
testCompile(projectTests(":compiler:tests-common"))
|
||||||
|
testCompile(projectTests(":idea:idea-test-framework")) { isTransitive = false }
|
||||||
|
testCompile(project(":idea:idea-jvm")) { isTransitive = false }
|
||||||
|
testCompile(project(":idea:idea-gradle")) { isTransitive = false }
|
||||||
|
testCompile(project(":idea:idea-maven")) { isTransitive = false }
|
||||||
|
testCompile(project(":idea:idea-native")) { isTransitive = false }
|
||||||
|
testCompile(project(":idea:idea-gradle-native")) { isTransitive = false }
|
||||||
|
testCompile(commonDep("junit:junit"))
|
||||||
|
|
||||||
|
|
||||||
|
testRuntime(commonDep("org.jetbrains", "markdown"))
|
||||||
|
testRuntime(project(":plugins:kapt3-idea")) { isTransitive = false }
|
||||||
|
testRuntime(project(":kotlin-reflect"))
|
||||||
|
testRuntime(project(":kotlin-preloader"))
|
||||||
|
|
||||||
|
testCompile(project(":kotlin-sam-with-receiver-compiler-plugin")) { isTransitive = false }
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
"main" { projectDefault() }
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. 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
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
|
||||||
|
import org.jetbrains.kotlin.j2k.JavaToKotlinConverterServices
|
||||||
|
|
||||||
|
|
||||||
|
interface NewJavaToKotlinServices {
|
||||||
|
val oldServices: JavaToKotlinConverterServices
|
||||||
|
}
|
||||||
|
|
||||||
|
object IdeaNewJavaToKotlinServices : NewJavaToKotlinServices {
|
||||||
|
override val oldServices: JavaToKotlinConverterServices
|
||||||
|
get() = IdeaJavaToKotlinServices
|
||||||
|
}
|
||||||
@@ -0,0 +1,192 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2015 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.nj2k
|
||||||
|
|
||||||
|
import com.intellij.codeInsight.actions.OptimizeImportsProcessor
|
||||||
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
|
import com.intellij.openapi.application.ModalityState
|
||||||
|
import com.intellij.openapi.editor.RangeMarker
|
||||||
|
import com.intellij.openapi.util.TextRange
|
||||||
|
import com.intellij.psi.PsiElement
|
||||||
|
import com.intellij.psi.PsiRecursiveElementVisitor
|
||||||
|
import com.intellij.psi.codeStyle.CodeStyleManager
|
||||||
|
import kotlinx.coroutines.experimental.withContext
|
||||||
|
import kotlinx.coroutines.runBlocking
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
||||||
|
import org.jetbrains.kotlin.idea.conversion.copy.range
|
||||||
|
import org.jetbrains.kotlin.idea.core.util.EDT
|
||||||
|
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.PostProcessor
|
||||||
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
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 {
|
||||||
|
override fun insertImport(file: KtFile, fqName: FqName) {
|
||||||
|
ApplicationManager.getApplication().invokeAndWait {
|
||||||
|
runWriteAction {
|
||||||
|
val descriptors = file.resolveImportReference(fqName)
|
||||||
|
descriptors.firstOrNull()?.let { ImportInsertHelper.getInstance(file.project).importDescriptor(file, it) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum class RangeFilterResult {
|
||||||
|
SKIP,
|
||||||
|
GO_INSIDE,
|
||||||
|
PROCESS
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override fun doAdditionalProcessing(file: KtFile, rangeMarker: RangeMarker?) {
|
||||||
|
fun Processing.flattenToGroups(): List<List<NewJ2kPostProcessing>> =
|
||||||
|
when (this) {
|
||||||
|
is SingleProcessing -> listOf(listOf(this.processing))
|
||||||
|
is ProcessingGroup ->
|
||||||
|
if (processings.all { it is SingleProcessing }) {
|
||||||
|
listOf(processings.map { (it as SingleProcessing).processing })
|
||||||
|
} else {
|
||||||
|
processings.flatMap { it.flattenToGroups() }
|
||||||
|
}
|
||||||
|
else -> error("Processing tree is corrupted")
|
||||||
|
}
|
||||||
|
OptimizeImportsProcessor(file.project, file.containingKtFile).run()
|
||||||
|
val groupsOfProcessings = NewJ2KPostProcessingRegistrar.mainProcessings.flattenToGroups()
|
||||||
|
|
||||||
|
runBlocking(EDT.ModalityStateElement(ModalityState.defaultModalityState())) {
|
||||||
|
for (processings in groupsOfProcessings) {
|
||||||
|
do {
|
||||||
|
var modificationStamp: Long? = file.modificationStamp
|
||||||
|
val elementToActions = runReadAction {
|
||||||
|
collectAvailableActions(processings, file, rangeMarker)
|
||||||
|
}
|
||||||
|
|
||||||
|
withContext(EDT) {
|
||||||
|
for ((element, action, _, writeActionNeeded) in elementToActions) {
|
||||||
|
if (element.isValid) {
|
||||||
|
if (writeActionNeeded) {
|
||||||
|
runWriteAction {
|
||||||
|
action()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
action()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
modificationStamp = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (modificationStamp == file.modificationStamp) break
|
||||||
|
} while (elementToActions.isNotEmpty())
|
||||||
|
}
|
||||||
|
|
||||||
|
if (formatCode) {
|
||||||
|
withContext(EDT) {
|
||||||
|
runWriteAction {
|
||||||
|
val codeStyleManager = CodeStyleManager.getInstance(file.project)
|
||||||
|
if (rangeMarker != null) {
|
||||||
|
if (rangeMarker.isValid) {
|
||||||
|
codeStyleManager.reformatRange(file, rangeMarker.startOffset, rangeMarker.endOffset)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
codeStyleManager.reformat(file)
|
||||||
|
}
|
||||||
|
Unit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private data class ActionData(val element: KtElement, val action: () -> Unit, val priority: Int, val writeActionNeeded: Boolean)
|
||||||
|
|
||||||
|
private fun collectAvailableActions(
|
||||||
|
processings: Collection<NewJ2kPostProcessing>,
|
||||||
|
file: KtFile,
|
||||||
|
rangeMarker: RangeMarker?
|
||||||
|
): List<ActionData> {
|
||||||
|
val diagnostics = analyzeFileRange(file, rangeMarker)
|
||||||
|
|
||||||
|
val availableActions = ArrayList<ActionData>()
|
||||||
|
|
||||||
|
file.accept(object : PsiRecursiveElementVisitor() {
|
||||||
|
override fun visitElement(element: PsiElement) {
|
||||||
|
if (element is KtElement) {
|
||||||
|
val rangeResult = rangeFilter(element, rangeMarker)
|
||||||
|
if (rangeResult == RangeFilterResult.SKIP) return
|
||||||
|
|
||||||
|
super.visitElement(element)
|
||||||
|
|
||||||
|
if (rangeResult == RangeFilterResult.PROCESS) {
|
||||||
|
processings.forEach { processing ->
|
||||||
|
val action = processing.createAction(element, diagnostics, settings)
|
||||||
|
if (action != null) {
|
||||||
|
availableActions.add(
|
||||||
|
ActionData(
|
||||||
|
element, action,
|
||||||
|
NewJ2KPostProcessingRegistrar.priority(processing),
|
||||||
|
processing.writeActionNeeded
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
availableActions.sortBy { it.priority }
|
||||||
|
return availableActions
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun analyzeFileRange(file: KtFile, rangeMarker: RangeMarker?): Diagnostics {
|
||||||
|
val elements = if (rangeMarker == null)
|
||||||
|
listOf(file)
|
||||||
|
else
|
||||||
|
file.elementsInRange(rangeMarker.range!!).filterIsInstance<KtElement>()
|
||||||
|
|
||||||
|
return if (elements.isNotEmpty())
|
||||||
|
file.getResolutionFacade().analyzeWithAllCompilerChecks(elements).bindingContext.diagnostics
|
||||||
|
else
|
||||||
|
Diagnostics.EMPTY
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun rangeFilter(element: PsiElement, rangeMarker: RangeMarker?): RangeFilterResult {
|
||||||
|
if (rangeMarker == null) return RangeFilterResult.PROCESS
|
||||||
|
if (!rangeMarker.isValid) return RangeFilterResult.SKIP
|
||||||
|
val range = TextRange(rangeMarker.startOffset, rangeMarker.endOffset)
|
||||||
|
val elementRange = element.textRange
|
||||||
|
return when {
|
||||||
|
range.contains(elementRange) -> RangeFilterResult.PROCESS
|
||||||
|
range.intersects(elementRange) -> RangeFilterResult.GO_INSIDE
|
||||||
|
else -> RangeFilterResult.SKIP
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+52
-46
@@ -1,20 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2015 JetBrains s.r.o.
|
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
*
|
* that can be found in the license/LICENSE.txt file.
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import com.intellij.codeInsight.actions.OptimizeImportsProcessor
|
import com.intellij.codeInsight.actions.OptimizeImportsProcessor
|
||||||
import com.intellij.codeInspection.*
|
import com.intellij.codeInspection.*
|
||||||
@@ -43,16 +32,16 @@ import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.F
|
|||||||
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention
|
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention
|
||||||
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention
|
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention
|
||||||
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody
|
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody
|
||||||
import org.jetbrains.kotlin.idea.j2k.postProcessing.ConvertDataClass
|
|
||||||
import org.jetbrains.kotlin.idea.j2k.postProcessing.ConvertGettersAndSetters
|
|
||||||
import org.jetbrains.kotlin.idea.j2k.postProcessing.resolve
|
|
||||||
import org.jetbrains.kotlin.idea.j2k.postProcessing.topLevelContainingClassOrObject
|
|
||||||
import org.jetbrains.kotlin.idea.quickfix.*
|
import org.jetbrains.kotlin.idea.quickfix.*
|
||||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||||
import org.jetbrains.kotlin.idea.references.mainReference
|
import org.jetbrains.kotlin.idea.references.mainReference
|
||||||
import org.jetbrains.kotlin.idea.references.readWriteAccess
|
import org.jetbrains.kotlin.idea.references.readWriteAccess
|
||||||
import org.jetbrains.kotlin.idea.util.getResolutionScope
|
import org.jetbrains.kotlin.idea.util.getResolutionScope
|
||||||
import org.jetbrains.kotlin.j2k.ConverterSettings
|
import org.jetbrains.kotlin.j2k.ConverterSettings
|
||||||
|
import org.jetbrains.kotlin.nj2k.postProcessing.ConvertDataClass
|
||||||
|
import org.jetbrains.kotlin.nj2k.postProcessing.ConvertGettersAndSetters
|
||||||
|
import org.jetbrains.kotlin.nj2k.postProcessing.resolve
|
||||||
|
import org.jetbrains.kotlin.nj2k.postProcessing.topLevelContainingClassOrObject
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||||
@@ -65,9 +54,25 @@ import org.jetbrains.kotlin.types.typeUtil.makeNotNullable
|
|||||||
import org.jetbrains.kotlin.utils.mapToIndex
|
import org.jetbrains.kotlin.utils.mapToIndex
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
interface NewJ2kPostProcessing {
|
||||||
|
fun createAction(element: KtElement, diagnostics: Diagnostics, settings: ConverterSettings?): (() -> Unit)? =
|
||||||
|
createAction(element, diagnostics)
|
||||||
|
|
||||||
private fun Processing.processings(): Sequence<J2kPostProcessing> =
|
fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? =
|
||||||
|
createAction(element, diagnostics, null)
|
||||||
|
|
||||||
|
val writeActionNeeded: Boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Processing
|
||||||
|
data class SingleProcessing(val processing: NewJ2kPostProcessing) : Processing
|
||||||
|
data class ProcessingGroup(val processings: List<Processing>) : Processing {
|
||||||
|
constructor(vararg processings: Processing) : this(processings.toList())
|
||||||
|
}
|
||||||
|
|
||||||
|
object NewJ2KPostProcessingRegistrar {
|
||||||
|
|
||||||
|
private fun Processing.processings(): Sequence<NewJ2kPostProcessing> =
|
||||||
when (this) {
|
when (this) {
|
||||||
is SingleProcessing -> sequenceOf(processing)
|
is SingleProcessing -> sequenceOf(processing)
|
||||||
is ProcessingGroup -> processings.asSequence().flatMap { it.processings() }
|
is ProcessingGroup -> processings.asSequence().flatMap { it.processings() }
|
||||||
@@ -75,11 +80,11 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private val processingsToPriorityMap = HashMap<J2kPostProcessing, Int>()
|
private val processingsToPriorityMap = HashMap<NewJ2kPostProcessing, Int>()
|
||||||
|
|
||||||
override fun priority(processing: J2kPostProcessing): Int = processingsToPriorityMap[processing]!!
|
fun priority(processing: NewJ2kPostProcessing): Int = processingsToPriorityMap[processing]!!
|
||||||
|
|
||||||
override val mainProcessings = ProcessingGroup(
|
val mainProcessings = ProcessingGroup(
|
||||||
SingleProcessing(VarToVal()),
|
SingleProcessing(VarToVal()),
|
||||||
ProcessingGroup(
|
ProcessingGroup(
|
||||||
SingleProcessing(ConvertGettersAndSetters()),
|
SingleProcessing(ConvertGettersAndSetters()),
|
||||||
@@ -107,7 +112,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
SingleProcessing(UseExpressionBodyProcessing()),
|
SingleProcessing(UseExpressionBodyProcessing()),
|
||||||
registerInspectionBasedProcessing(UnnecessaryVariableInspection()),
|
registerInspectionBasedProcessing(UnnecessaryVariableInspection()),
|
||||||
SingleProcessing(
|
SingleProcessing(
|
||||||
object : J2kPostProcessing {
|
object : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded: Boolean = true
|
override val writeActionNeeded: Boolean = true
|
||||||
private val processing = registerGeneralInspectionBasedProcessing(RedundantExplicitTypeInspection())
|
private val processing = registerGeneralInspectionBasedProcessing(RedundantExplicitTypeInspection())
|
||||||
|
|
||||||
@@ -210,17 +215,18 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
},
|
},
|
||||||
|
|
||||||
registerDiagnosticBasedProcessingFactory(
|
registerDiagnosticBasedProcessingFactory(
|
||||||
Errors.VAL_REASSIGNMENT, Errors.CAPTURED_VAL_INITIALIZATION, Errors.CAPTURED_MEMBER_VAL_INITIALIZATION
|
Errors.VAL_REASSIGNMENT, Errors.CAPTURED_VAL_INITIALIZATION, Errors.CAPTURED_MEMBER_VAL_INITIALIZATION
|
||||||
) { element: KtSimpleNameExpression, _: Diagnostic ->
|
) { element: KtSimpleNameExpression, _: Diagnostic ->
|
||||||
val property = element.mainReference.resolve() as? KtProperty
|
val property = element.mainReference.resolve() as? KtProperty
|
||||||
if (property == null) {
|
if (property == null) {
|
||||||
null
|
null
|
||||||
} else {
|
} else {
|
||||||
{
|
val action = {
|
||||||
if (!property.isVar) {
|
if (!property.isVar) {
|
||||||
property.valOrVarKeyword.replace(KtPsiFactory(element.project).createVarKeyword())
|
property.valOrVarKeyword.replace(KtPsiFactory(element.project).createVarKeyword())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
action
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -235,7 +241,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
override val processings: Collection<J2kPostProcessing> =
|
val processings: Collection<NewJ2kPostProcessing> =
|
||||||
mainProcessings.processings().toList()
|
mainProcessings.processings().toList()
|
||||||
|
|
||||||
|
|
||||||
@@ -247,7 +253,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
private inline fun <reified TElement : KtElement, TIntention : SelfTargetingRangeIntention<TElement>> registerIntentionBasedProcessing(
|
private inline fun <reified TElement : KtElement, TIntention : SelfTargetingRangeIntention<TElement>> registerIntentionBasedProcessing(
|
||||||
intention: TIntention,
|
intention: TIntention,
|
||||||
noinline additionalChecker: (TElement) -> Boolean = { true }
|
noinline additionalChecker: (TElement) -> Boolean = { true }
|
||||||
) = SingleProcessing(object : J2kPostProcessing {
|
) = SingleProcessing(object : NewJ2kPostProcessing {
|
||||||
// Intention can either need or not need write action
|
// Intention can either need or not need write action
|
||||||
override val writeActionNeeded = intention.startInWriteAction()
|
override val writeActionNeeded = intention.startInWriteAction()
|
||||||
|
|
||||||
@@ -269,7 +275,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
private inline fun <TInspection : AbstractKotlinInspection> registerGeneralInspectionBasedProcessing(
|
private inline fun <TInspection : AbstractKotlinInspection> registerGeneralInspectionBasedProcessing(
|
||||||
inspection: TInspection,
|
inspection: TInspection,
|
||||||
acceptInformationLevel: Boolean = false
|
acceptInformationLevel: Boolean = false
|
||||||
) = SingleProcessing(object : J2kPostProcessing {
|
) = SingleProcessing(object : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = false
|
override val writeActionNeeded = false
|
||||||
|
|
||||||
fun <D : CommonProblemDescriptor> QuickFix<D>.applyFixSmart(project: Project, descriptor: D) {
|
fun <D : CommonProblemDescriptor> QuickFix<D>.applyFixSmart(project: Project, descriptor: D) {
|
||||||
@@ -341,7 +347,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
|
|
||||||
inspection: TInspection,
|
inspection: TInspection,
|
||||||
acceptInformationLevel: Boolean = false
|
acceptInformationLevel: Boolean = false
|
||||||
) = SingleProcessing(object : J2kPostProcessing {
|
) = SingleProcessing(object : NewJ2kPostProcessing {
|
||||||
// Inspection can either need or not need write action
|
// Inspection can either need or not need write action
|
||||||
override val writeActionNeeded = inspection.startFixInWriteAction
|
override val writeActionNeeded = inspection.startFixInWriteAction
|
||||||
|
|
||||||
@@ -379,7 +385,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
private inline fun <reified TElement : KtElement> registerDiagnosticBasedProcessingFactory(
|
private inline fun <reified TElement : KtElement> registerDiagnosticBasedProcessingFactory(
|
||||||
vararg diagnosticFactory: DiagnosticFactory<*>,
|
vararg diagnosticFactory: DiagnosticFactory<*>,
|
||||||
crossinline fixFactory: (TElement, Diagnostic) -> (() -> Unit)?
|
crossinline fixFactory: (TElement, Diagnostic) -> (() -> Unit)?
|
||||||
) = SingleProcessing(object : J2kPostProcessing {
|
) = SingleProcessing(object : NewJ2kPostProcessing {
|
||||||
// ???
|
// ???
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
@@ -391,7 +397,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
private class RemoveExplicitPropertyType : J2kPostProcessing {
|
private class RemoveExplicitPropertyType : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics, settings: ConverterSettings?): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics, settings: ConverterSettings?): (() -> Unit)? {
|
||||||
@@ -425,7 +431,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private class RemoveRedundantNullability : J2kPostProcessing {
|
private class RemoveRedundantNullability : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded: Boolean = true
|
override val writeActionNeeded: Boolean = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
@@ -463,7 +469,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RemoveExplicitTypeArgumentsProcessing : J2kPostProcessing {
|
private class RemoveExplicitTypeArgumentsProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
@@ -481,7 +487,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RemoveRedundantOverrideVisibilityProcessing : J2kPostProcessing {
|
private class RemoveRedundantOverrideVisibilityProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
@@ -491,7 +497,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ConvertToStringTemplateProcessing : J2kPostProcessing {
|
private class ConvertToStringTemplateProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
private val intention = ConvertToStringTemplateIntention()
|
private val intention = ConvertToStringTemplateIntention()
|
||||||
@@ -508,7 +514,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UsePropertyAccessSyntaxProcessing : J2kPostProcessing {
|
private class UsePropertyAccessSyntaxProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
private val intention = UsePropertyAccessSyntaxIntention()
|
private val intention = UsePropertyAccessSyntaxIntention()
|
||||||
@@ -520,7 +526,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RemoveRedundantSamAdaptersProcessing : J2kPostProcessing {
|
private class RemoveRedundantSamAdaptersProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
@@ -536,7 +542,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UseExpressionBodyProcessing : J2kPostProcessing {
|
private class UseExpressionBodyProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
@@ -553,7 +559,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RemoveRedundantCastToNullableProcessing : J2kPostProcessing {
|
private class RemoveRedundantCastToNullableProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
@@ -574,7 +580,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class FixObjectStringConcatenationProcessing : J2kPostProcessing {
|
private class FixObjectStringConcatenationProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
@@ -604,7 +610,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UninitializedVariableReferenceFromInitializerToThisReferenceProcessing : J2kPostProcessing {
|
private class UninitializedVariableReferenceFromInitializerToThisReferenceProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
@@ -624,7 +630,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UnresolvedVariableReferenceFromInitializerToThisReferenceProcessing : J2kPostProcessing {
|
private class UnresolvedVariableReferenceFromInitializerToThisReferenceProcessing : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
@@ -644,7 +650,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class VarToVal : J2kPostProcessing {
|
private class VarToVal : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded = true
|
override val writeActionNeeded = true
|
||||||
|
|
||||||
private fun KtProperty.hasWriteUsages(): Boolean =
|
private fun KtProperty.hasWriteUsages(): Boolean =
|
||||||
@@ -678,7 +684,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RemoveRedundantExpressionQualifierProcessing : J2kPostProcessing {
|
private class RemoveRedundantExpressionQualifierProcessing : NewJ2kPostProcessing {
|
||||||
private fun check(qualifiedExpression: KtQualifiedExpression): Boolean {
|
private fun check(qualifiedExpression: KtQualifiedExpression): Boolean {
|
||||||
val qualifier = (qualifiedExpression.receiverExpression as? KtNameReferenceExpression)
|
val qualifier = (qualifiedExpression.receiverExpression as? KtNameReferenceExpression)
|
||||||
?.referenceExpression()
|
?.referenceExpression()
|
||||||
@@ -700,7 +706,7 @@ object NewJ2KPostProcessingRegistrarImpl : J2KPostProcessingRegistrar {
|
|||||||
override val writeActionNeeded: Boolean = true
|
override val writeActionNeeded: Boolean = true
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RemoveRedundantTypeQualifierProcessing : J2kPostProcessing {
|
private class RemoveRedundantTypeQualifierProcessing : NewJ2kPostProcessing {
|
||||||
private fun check(reference: KtUserType): Boolean {
|
private fun check(reference: KtUserType): Boolean {
|
||||||
val qualifierClass = reference.qualifier
|
val qualifierClass = reference.qualifier
|
||||||
?.referenceExpression
|
?.referenceExpression
|
||||||
+4
-4
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.j2k.postProcessing
|
package org.jetbrains.kotlin.nj2k.postProcessing
|
||||||
|
|
||||||
import com.intellij.psi.impl.source.tree.PsiWhiteSpaceImpl
|
import com.intellij.psi.impl.source.tree.PsiWhiteSpaceImpl
|
||||||
import com.intellij.psi.search.LocalSearchScope
|
import com.intellij.psi.search.LocalSearchScope
|
||||||
@@ -11,8 +11,8 @@ import com.intellij.psi.search.searches.ReferencesSearch
|
|||||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||||
import org.jetbrains.kotlin.idea.core.setDefaultValue
|
import org.jetbrains.kotlin.idea.core.setDefaultValue
|
||||||
import org.jetbrains.kotlin.idea.j2k.J2kPostProcessing
|
|
||||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||||
|
import org.jetbrains.kotlin.nj2k.NewJ2kPostProcessing
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.addRemoveModifier.setModifierList
|
import org.jetbrains.kotlin.psi.addRemoveModifier.setModifierList
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.asAssignment
|
import org.jetbrains.kotlin.psi.psiUtil.asAssignment
|
||||||
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.psi.psiUtil.containingClass
|
|||||||
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
||||||
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
|
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
|
||||||
|
|
||||||
class ConvertDataClass : J2kPostProcessing {
|
class ConvertDataClass : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded: Boolean = true
|
override val writeActionNeeded: Boolean = true
|
||||||
|
|
||||||
fun KtCallableDeclaration.rename(newName: String) {
|
fun KtCallableDeclaration.rename(newName: String) {
|
||||||
+4
-4
@@ -1,17 +1,17 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.j2k.postProcessing
|
package org.jetbrains.kotlin.nj2k.postProcessing
|
||||||
|
|
||||||
import com.intellij.psi.search.LocalSearchScope
|
import com.intellij.psi.search.LocalSearchScope
|
||||||
import com.intellij.psi.search.searches.ReferencesSearch
|
import com.intellij.psi.search.searches.ReferencesSearch
|
||||||
import com.intellij.psi.util.parentOfType
|
import com.intellij.psi.util.parentOfType
|
||||||
import org.jetbrains.kotlin.idea.core.setVisibility
|
import org.jetbrains.kotlin.idea.core.setVisibility
|
||||||
import org.jetbrains.kotlin.idea.j2k.J2kPostProcessing
|
|
||||||
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.getReturnTypeReference
|
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.getReturnTypeReference
|
||||||
import org.jetbrains.kotlin.idea.refactoring.isInterfaceClass
|
import org.jetbrains.kotlin.idea.refactoring.isInterfaceClass
|
||||||
|
import org.jetbrains.kotlin.nj2k.NewJ2kPostProcessing
|
||||||
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.psi.addRemoveModifier.setModifierList
|
|||||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||||
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
||||||
|
|
||||||
class ConvertGettersAndSetters : J2kPostProcessing {
|
class ConvertGettersAndSetters : NewJ2kPostProcessing {
|
||||||
override val writeActionNeeded: Boolean = true
|
override val writeActionNeeded: Boolean = true
|
||||||
|
|
||||||
data class PropertyData(
|
data class PropertyData(
|
||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.j2k.postProcessing
|
package org.jetbrains.kotlin.nj2k.postProcessing
|
||||||
|
|
||||||
import com.intellij.psi.search.LocalSearchScope
|
import com.intellij.psi.search.LocalSearchScope
|
||||||
import com.intellij.psi.search.searches.ReferencesSearch
|
import com.intellij.psi.search.searches.ReferencesSearch
|
||||||
+3
-2
@@ -3,11 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKElement
|
import org.jetbrains.kotlin.j2k.*
|
||||||
|
import org.jetbrains.kotlin.nj2k.tree.JKElement
|
||||||
|
|
||||||
data class ConversionContext(
|
data class ConversionContext(
|
||||||
val symbolProvider: JKSymbolProvider,
|
val symbolProvider: JKSymbolProvider,
|
||||||
+3
-3
@@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.conversions.*
|
import org.jetbrains.kotlin.nj2k.conversions.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
|
|
||||||
object ConversionsRunner {
|
object ConversionsRunner {
|
||||||
|
|
||||||
+5
-5
@@ -3,15 +3,15 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration
|
import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration
|
||||||
import org.jetbrains.kotlin.j2k.conversions.multiResolveFqName
|
import org.jetbrains.kotlin.nj2k.conversions.multiResolveFqName
|
||||||
import org.jetbrains.kotlin.j2k.conversions.resolveFqName
|
import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.FqNameUnsafe
|
import org.jetbrains.kotlin.name.FqNameUnsafe
|
||||||
+5
-4
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import com.intellij.lang.jvm.JvmAnnotatedElement
|
import com.intellij.lang.jvm.JvmAnnotatedElement
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
@@ -30,10 +30,11 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
|
|||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.idea.j2k.content
|
import org.jetbrains.kotlin.idea.j2k.content
|
||||||
|
import org.jetbrains.kotlin.j2k.ReferenceSearcher
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.*
|
import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.lexer.KtToken
|
import org.jetbrains.kotlin.lexer.KtToken
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
+6
-6
@@ -14,14 +14,14 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.NewCodeBuilder.ParenthesisKind.*
|
import org.jetbrains.kotlin.nj2k.NewCodeBuilder.ParenthesisKind.*
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.conversions.parentOfType
|
import org.jetbrains.kotlin.nj2k.conversions.parentOfType
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitorVoid
|
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorVoid
|
||||||
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
+4
-3
@@ -14,15 +14,16 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import com.intellij.openapi.progress.EmptyProgressIndicator
|
import com.intellij.openapi.progress.EmptyProgressIndicator
|
||||||
import com.intellij.openapi.progress.ProgressIndicator
|
import com.intellij.openapi.progress.ProgressIndicator
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiJavaFile
|
import com.intellij.psi.PsiJavaFile
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.j2k.ConverterSettings
|
||||||
import org.jetbrains.kotlin.j2k.tree.prettyDebugPrintTree
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
|
import org.jetbrains.kotlin.nj2k.tree.prettyDebugPrintTree
|
||||||
|
|
||||||
class NewJavaToKotlinConverter(
|
class NewJavaToKotlinConverter(
|
||||||
val project: Project,
|
val project: Project,
|
||||||
+3
-1
@@ -3,7 +3,9 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.j2k.JavaToKotlinConverterServices
|
||||||
|
|
||||||
interface NewJavaToKotlinServices {
|
interface NewJavaToKotlinServices {
|
||||||
val oldServices: JavaToKotlinConverterServices
|
val oldServices: JavaToKotlinConverterServices
|
||||||
+3
-3
@@ -3,10 +3,10 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKElement
|
import org.jetbrains.kotlin.nj2k.tree.JKElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKElementBase
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKElementBase
|
||||||
|
|
||||||
fun <T : JKElement> T.copyTree(): T =
|
fun <T : JKElement> T.copyTree(): T =
|
||||||
when (this) {
|
when (this) {
|
||||||
+2
-2
@@ -3,9 +3,9 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKElement
|
import org.jetbrains.kotlin.nj2k.tree.JKElement
|
||||||
|
|
||||||
inline fun <reified T : JKElement> JKElement.parentOfType(): T? {
|
inline fun <reified T : JKElement> JKElement.parentOfType(): T? {
|
||||||
return generateSequence(parent) { it.parent }.filterIsInstance<T>().firstOrNull()
|
return generateSequence(parent) { it.parent }.filterIsInstance<T>().firstOrNull()
|
||||||
+5
-5
@@ -3,13 +3,13 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.toExpression
|
import org.jetbrains.kotlin.nj2k.toExpression
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class AnnotationClassConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class AnnotationClassConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+9
-9
@@ -3,16 +3,16 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.isVarargsArgument
|
import org.jetbrains.kotlin.nj2k.isVarargsArgument
|
||||||
import org.jetbrains.kotlin.j2k.primaryConstructor
|
import org.jetbrains.kotlin.nj2k.primaryConstructor
|
||||||
import org.jetbrains.kotlin.j2k.toExpression
|
import org.jetbrains.kotlin.nj2k.toExpression
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKAnnotationNameParameterImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKAnnotationNameParameterImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKAnnotationParameterImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKAnnotationParameterImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKUniverseClassSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKUniverseClassSymbol
|
||||||
|
|
||||||
class AnnotationConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class AnnotationConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,14 +3,14 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.PrimitiveType
|
import org.jetbrains.kotlin.builtins.PrimitiveType
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.resolve.CollectionLiteralResolver
|
import org.jetbrains.kotlin.resolve.CollectionLiteralResolver
|
||||||
|
|
||||||
|
|
||||||
+7
-7
@@ -8,14 +8,14 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionStatementImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldAccessExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldAccessExpressionImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldSymbol
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtThrowExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKKtThrowExpressionImpl
|
||||||
|
|
||||||
|
|
||||||
class ArrayOperationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class ArrayOperationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+7
-7
@@ -3,14 +3,14 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionStatementImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKJavaOperatorImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKJavaOperatorImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKLambdaExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKLambdaExpressionImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.toKtToken
|
import org.jetbrains.kotlin.nj2k.tree.impl.toKtToken
|
||||||
|
|
||||||
|
|
||||||
class AssertStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class AssertStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.cast
|
import org.jetbrains.kotlin.utils.addToStdlib.cast
|
||||||
|
|
||||||
class AssignmentAsExpressionToAlsoConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class AssignmentAsExpressionToAlsoConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+6
-6
@@ -3,14 +3,14 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import com.intellij.psi.JavaTokenType
|
import com.intellij.psi.JavaTokenType
|
||||||
import org.jetbrains.kotlin.j2k.copyTreeAndDetach
|
import org.jetbrains.kotlin.nj2k.copyTreeAndDetach
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKKtAssignmentStatement
|
import org.jetbrains.kotlin.nj2k.tree.JKKtAssignmentStatement
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.detached
|
import org.jetbrains.kotlin.nj2k.tree.detached
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class AssignmentStatementOperatorConversion : RecursiveApplicableConversionBase() {
|
class AssignmentStatementOperatorConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionStatementImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKStubExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKStubExpressionImpl
|
||||||
|
|
||||||
class AssignmentStatementSimplifyAlsoConversion : RecursiveApplicableConversionBase() {
|
class AssignmentStatementSimplifyAlsoConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+3
-3
@@ -3,10 +3,10 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKStubExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKStubExpressionImpl
|
||||||
|
|
||||||
class AssignmentStatementSimplifyValConversion : RecursiveApplicableConversionBase() {
|
class AssignmentStatementSimplifyValConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.copyTreeAndDetach
|
import org.jetbrains.kotlin.nj2k.copyTreeAndDetach
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class AssignmentStatementSplitAlsoConversion : RecursiveApplicableConversionBase() {
|
class AssignmentStatementSplitAlsoConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class AssignmentStatementValCreationConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class AssignmentStatementValCreationConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+3
-3
@@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
|
|
||||||
interface BatchBaseConversion {
|
interface BatchBaseConversion {
|
||||||
fun runConversion(treeRoots: List<JKTreeElement>, context: ConversionContext): Boolean
|
fun runConversion(treeRoots: List<JKTreeElement>, context: ConversionContext): Boolean
|
||||||
+7
-7
@@ -3,15 +3,15 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKBlock
|
import org.jetbrains.kotlin.nj2k.tree.JKBlock
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKBlockStatement
|
import org.jetbrains.kotlin.nj2k.tree.JKBlockStatement
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKDeclaration
|
import org.jetbrains.kotlin.nj2k.tree.JKDeclaration
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
class BlockToRunConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class BlockToRunConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+5
-5
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionListImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionListImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtCallExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKKtCallExpressionImpl
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
||||||
|
|
||||||
class BoxedTypeOperationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class BoxedTypeOperationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+5
-5
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.parenthesizeIfBinaryExpression
|
import org.jetbrains.kotlin.nj2k.parenthesizeIfBinaryExpression
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class BuiltinMembersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class BuiltinMembersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||||
|
|
||||||
class ClassToObjectPromotionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class ClassToObjectPromotionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+3
-3
@@ -3,10 +3,10 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
|
|
||||||
class BatchPipelineConversion(val conversions: List<BatchBaseConversion>) : BatchBaseConversion {
|
class BatchPipelineConversion(val conversions: List<BatchBaseConversion>) : BatchBaseConversion {
|
||||||
override fun runConversion(treeRoots: List<JKTreeElement>, context: ConversionContext): Boolean {
|
override fun runConversion(treeRoots: List<JKTreeElement>, context: ConversionContext): Boolean {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class ConstructorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class ConstructorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+7
-7
@@ -3,14 +3,14 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.jvmAnnotation
|
import org.jetbrains.kotlin.nj2k.jvmAnnotation
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldAccessExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldAccessExpressionImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKUniverseMethodSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKUniverseMethodSymbol
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.psi
|
import org.jetbrains.kotlin.nj2k.tree.impl.psi
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
class DefaultArgumentsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class DefaultArgumentsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+3
-3
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl
|
||||||
|
|
||||||
class DefaultNullabilityToNullableConversion : RecursiveApplicableConversionBase() {
|
class DefaultNullabilityToNullableConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+5
-5
@@ -3,15 +3,15 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName
|
import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.equalsExpression
|
import org.jetbrains.kotlin.nj2k.equalsExpression
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
|
|
||||||
class EqualsOperatorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class EqualsOperatorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+3
-3
@@ -3,10 +3,10 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class FieldToPropertyConversion : RecursiveApplicableConversionBase() {
|
class FieldToPropertyConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+6
-4
@@ -3,13 +3,15 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.j2k.ReferenceSearcher
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.j2k.hasWriteAccesses
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
+4
-4
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
+4
-4
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
||||||
|
|
||||||
class ImplicitCastsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class ImplicitCastsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+5
-5
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.findUsages
|
import org.jetbrains.kotlin.nj2k.findUsages
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class ImplicitInitializerConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class ImplicitInitializerConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
|
|
||||||
+5
-5
@@ -8,13 +8,13 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import com.intellij.psi.CommonClassNames
|
import com.intellij.psi.CommonClassNames
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKImportStatementImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKImportStatementImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKNameIdentifierImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKNameIdentifierImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitorVoid
|
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorVoid
|
||||||
|
|
||||||
|
|
||||||
class ImportStatementConversion : RecursiveApplicableConversionBase() {
|
class ImportStatementConversion : RecursiveApplicableConversionBase() {
|
||||||
+2
-2
@@ -3,9 +3,9 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
|
|
||||||
class InnerClassConversion : RecursiveApplicableConversionBase() {
|
class InnerClassConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
|
|
||||||
class InsertDefaultPrimaryConstructorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class InsertDefaultPrimaryConstructorConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+3
-3
@@ -3,10 +3,10 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
|
|
||||||
|
|
||||||
class InterfaceWithFieldConversion : RecursiveApplicableConversionBase() {
|
class InterfaceWithFieldConversion : RecursiveApplicableConversionBase() {
|
||||||
+2
-2
@@ -3,9 +3,9 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
|
|
||||||
class InternalClassConversion : RecursiveApplicableConversionBase() {
|
class InternalClassConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+6
-6
@@ -3,13 +3,13 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKAnnotationParameterImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKAnnotationParameterImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldAccessExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldAccessExpressionImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtLiteralExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKKtLiteralExpressionImpl
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
class JavaAnnotationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class JavaAnnotationsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+7
-7
@@ -14,15 +14,15 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.throwAnnotation
|
import org.jetbrains.kotlin.nj2k.throwAnnotation
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtFunctionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKKtFunctionImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.psi
|
import org.jetbrains.kotlin.nj2k.tree.impl.psi
|
||||||
|
|
||||||
class JavaMethodToKotlinFunctionConversion(private val context: ConversionContext) : TransformerBasedConversion() {
|
class JavaMethodToKotlinFunctionConversion(private val context: ConversionContext) : TransformerBasedConversion() {
|
||||||
override fun visitTreeElement(element: JKTreeElement) {
|
override fun visitTreeElement(element: JKTreeElement) {
|
||||||
+5
-5
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.annotationByFqName
|
import org.jetbrains.kotlin.nj2k.annotationByFqName
|
||||||
import org.jetbrains.kotlin.j2k.jvmAnnotation
|
import org.jetbrains.kotlin.nj2k.jvmAnnotation
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
|
|
||||||
class JavaModifiersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class JavaModifiersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class JavaStandartMethodsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class JavaStandartMethodsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl
|
||||||
|
|
||||||
|
|
||||||
class JetbrainsNullableAnnotationsConverter(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class JetbrainsNullableAnnotationsConverter(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.blockStatement
|
import org.jetbrains.kotlin.nj2k.blockStatement
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
|
|
||||||
class LabeledStatementConversion : RecursiveApplicableConversionBase() {
|
class LabeledStatementConversion : RecursiveApplicableConversionBase() {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.fixLiteral
|
import org.jetbrains.kotlin.nj2k.fixLiteral
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKJavaLiteralExpression
|
import org.jetbrains.kotlin.nj2k.tree.JKJavaLiteralExpression
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
|
|
||||||
class LiteralConversion : RecursiveApplicableConversionBase() {
|
class LiteralConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+5
-5
@@ -3,13 +3,13 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldSymbol
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKTypeElementImpl
|
||||||
|
|
||||||
class LowerNullabilityInFunctionParametersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class LowerNullabilityInFunctionParametersConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.util.collectionUtils.concatInOrder
|
import org.jetbrains.kotlin.util.collectionUtils.concatInOrder
|
||||||
|
|
||||||
|
|
||||||
+4
-4
@@ -3,15 +3,15 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKBranchElementBase
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKBranchElementBase
|
||||||
|
|
||||||
abstract class MatchBasedConversion : SequentialBaseConversion {
|
abstract class MatchBasedConversion : SequentialBaseConversion {
|
||||||
|
|
||||||
fun <R : JKTreeElement, T> applyRecursive(element: R, data: T, func: (JKTreeElement, T) -> JKTreeElement): R =
|
fun <R : JKTreeElement, T> applyRecursive(element: R, data: T, func: (JKTreeElement, T) -> JKTreeElement): R =
|
||||||
org.jetbrains.kotlin.j2k.tree.applyRecursive(element, data, ::onElementChanged, func)
|
org.jetbrains.kotlin.nj2k.tree.applyRecursive(element, data, ::onElementChanged, func)
|
||||||
|
|
||||||
inline fun <R : JKTreeElement> applyRecursive(element: R, crossinline func: (JKTreeElement) -> JKTreeElement): R {
|
inline fun <R : JKTreeElement> applyRecursive(element: R, crossinline func: (JKTreeElement) -> JKTreeElement): R {
|
||||||
return applyRecursive(element, null) { it, _ -> func(it) }
|
return applyRecursive(element, null) { it, _ -> func(it) }
|
||||||
+4
-4
@@ -3,13 +3,13 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import com.intellij.psi.PsiMethod
|
import com.intellij.psi.PsiMethod
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.psi
|
import org.jetbrains.kotlin.nj2k.tree.impl.psi
|
||||||
|
|
||||||
class ModalityConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class ModalityConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+5
-5
@@ -3,13 +3,13 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.bangedBangedExpr
|
import org.jetbrains.kotlin.nj2k.bangedBangedExpr
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class NullableQualifierConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class NullableQualifierConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+4
-4
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import com.intellij.psi.JavaTokenType
|
import com.intellij.psi.JavaTokenType
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
|
|
||||||
|
|
||||||
+7
-7
@@ -3,14 +3,14 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.asAssignmentFromTarget
|
import org.jetbrains.kotlin.nj2k.asAssignmentFromTarget
|
||||||
import org.jetbrains.kotlin.j2k.findUsages
|
import org.jetbrains.kotlin.nj2k.findUsages
|
||||||
import org.jetbrains.kotlin.j2k.hasWritableUsages
|
import org.jetbrains.kotlin.nj2k.hasWritableUsages
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
|
|
||||||
class ParameterModificationInMethodCallsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class ParameterModificationInMethodCallsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+5
-5
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.kotlinBinaryExpression
|
import org.jetbrains.kotlin.nj2k.kotlinBinaryExpression
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
|
|
||||||
class PolyadicExpressionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class PolyadicExpressionConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+5
-5
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtInitDeclarationImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKKtInitDeclarationImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtPrimaryConstructorImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKKtPrimaryConstructorImpl
|
||||||
|
|
||||||
class PrimaryConstructorDetectConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class PrimaryConstructorDetectConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+6
-6
@@ -3,13 +3,13 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtCallExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKKtCallExpressionImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKMethodSymbol
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.psi
|
import org.jetbrains.kotlin.nj2k.tree.impl.psi
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
// TODO: Full special methods conversion
|
// TODO: Full special methods conversion
|
||||||
+3
-3
@@ -3,10 +3,10 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
|
|
||||||
abstract class RecursiveApplicableConversionBase : MatchBasedConversion() {
|
abstract class RecursiveApplicableConversionBase : MatchBasedConversion() {
|
||||||
override fun onElementChanged(new: JKTreeElement, old: JKTreeElement) {
|
override fun onElementChanged(new: JKTreeElement, old: JKTreeElement) {
|
||||||
+2
-2
@@ -3,9 +3,9 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
|
|
||||||
//TODO temporary
|
//TODO temporary
|
||||||
class SortClassMembersConversion : RecursiveApplicableConversionBase() {
|
class SortClassMembersConversion : RecursiveApplicableConversionBase() {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.getOrCreateCompainonObject
|
import org.jetbrains.kotlin.nj2k.getOrCreateCompainonObject
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
class StaticsToCompanionExtractConversion : RecursiveApplicableConversionBase() {
|
class StaticsToCompanionExtractConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
+7
-7
@@ -3,18 +3,18 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.controlFlow.ControlFlowFactory
|
import com.intellij.psi.controlFlow.ControlFlowFactory
|
||||||
import com.intellij.psi.controlFlow.ControlFlowUtil
|
import com.intellij.psi.controlFlow.ControlFlowUtil
|
||||||
import com.intellij.psi.controlFlow.LocalsOrMyInstanceFieldsControlFlowPolicy
|
import com.intellij.psi.controlFlow.LocalsOrMyInstanceFieldsControlFlowPolicy
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.blockStatement
|
import org.jetbrains.kotlin.nj2k.blockStatement
|
||||||
import org.jetbrains.kotlin.j2k.copyTreeAndDetach
|
import org.jetbrains.kotlin.nj2k.copyTreeAndDetach
|
||||||
import org.jetbrains.kotlin.j2k.runExpression
|
import org.jetbrains.kotlin.nj2k.runExpression
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
|
|
||||||
class SwitchStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class SwitchStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
|
|
||||||
class SynchronizedStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class SynchronizedStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+7
-7
@@ -3,14 +3,14 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKExpressionStatement
|
import org.jetbrains.kotlin.nj2k.tree.JKExpressionStatement
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKJavaThrowStatement
|
import org.jetbrains.kotlin.nj2k.tree.JKJavaThrowStatement
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.detached
|
import org.jetbrains.kotlin.nj2k.tree.detached
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionStatementImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKExpressionStatementImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtThrowExpressionImpl
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKKtThrowExpressionImpl
|
||||||
|
|
||||||
|
|
||||||
class ThrowStatementConversion : RecursiveApplicableConversionBase() {
|
class ThrowStatementConversion : RecursiveApplicableConversionBase() {
|
||||||
+4
-4
@@ -14,11 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitorVoid
|
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorVoid
|
||||||
|
|
||||||
abstract class TransformerBasedConversion : SequentialBaseConversion, JKVisitorVoid {
|
abstract class TransformerBasedConversion : SequentialBaseConversion, JKVisitorVoid {
|
||||||
protected var somethingChanged = false
|
protected var somethingChanged = false
|
||||||
+4
-4
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
|
|
||||||
class TryStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class TryStatementConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
+4
-3
@@ -3,7 +3,7 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiMethod
|
import com.intellij.psi.PsiMethod
|
||||||
@@ -12,10 +12,11 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|||||||
import org.jetbrains.kotlin.builtins.PrimitiveType
|
import org.jetbrains.kotlin.builtins.PrimitiveType
|
||||||
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
|
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.j2k.*
|
||||||
|
import org.jetbrains.kotlin.nj2k.*
|
||||||
import org.jetbrains.kotlin.j2k.ast.Mutability
|
import org.jetbrains.kotlin.j2k.ast.Mutability
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
|
||||||
+3
-3
@@ -3,11 +3,11 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
|
|
||||||
class TypeParametersNullabilityConversion : RecursiveApplicableConversionBase() {
|
class TypeParametersNullabilityConversion : RecursiveApplicableConversionBase() {
|
||||||
+4
-4
@@ -3,13 +3,13 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiPolyVariantReference
|
import com.intellij.psi.PsiPolyVariantReference
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.psi
|
import org.jetbrains.kotlin.nj2k.tree.impl.psi
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.psi.KtDotQualifiedExpression
|
import org.jetbrains.kotlin.psi.KtDotQualifiedExpression
|
||||||
import org.jetbrains.kotlin.psi.KtImportDirective
|
import org.jetbrains.kotlin.psi.KtImportDirective
|
||||||
+6
-6
@@ -3,18 +3,18 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.tree.TokenSet
|
import com.intellij.psi.tree.TokenSet
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.conversions.RecursiveApplicableConversionBase
|
import org.jetbrains.kotlin.nj2k.conversions.RecursiveApplicableConversionBase
|
||||||
import org.jetbrains.kotlin.j2k.conversions.multiResolveFqName
|
import org.jetbrains.kotlin.nj2k.conversions.multiResolveFqName
|
||||||
import org.jetbrains.kotlin.j2k.conversions.resolveFqName
|
import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.lexer.KtSingleValueToken
|
import org.jetbrains.kotlin.lexer.KtSingleValueToken
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
+2
-1
@@ -3,12 +3,13 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.nj2k
|
||||||
|
|
||||||
import com.intellij.codeInsight.generation.GenerateEqualsHelper.getEqualsSignature
|
import com.intellij.codeInsight.generation.GenerateEqualsHelper.getEqualsSignature
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.psi.util.MethodSignatureUtil
|
import com.intellij.psi.util.MethodSignatureUtil
|
||||||
|
import org.jetbrains.kotlin.j2k.isNullLiteral
|
||||||
|
|
||||||
//copied from old j2k
|
//copied from old j2k
|
||||||
fun canKeepEqEq(left: PsiExpression, right: PsiExpression?): Boolean {
|
fun canKeepEqEq(left: PsiExpression, right: PsiExpression?): Boolean {
|
||||||
+3
-3
@@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree
|
package org.jetbrains.kotlin.nj2k.tree
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitorVoid
|
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorVoid
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
import org.jetbrains.kotlin.utils.Printer
|
||||||
|
|
||||||
private class DebugTreePrinter : JKVisitorVoid {
|
private class DebugTreePrinter : JKVisitorVoid {
|
||||||
+5
-5
@@ -3,12 +3,12 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree.impl
|
package org.jetbrains.kotlin.nj2k.tree.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKBranchElement
|
import org.jetbrains.kotlin.nj2k.tree.JKBranchElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKElement
|
import org.jetbrains.kotlin.nj2k.tree.JKElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
|
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
|
||||||
import kotlin.properties.ReadWriteProperty
|
import kotlin.properties.ReadWriteProperty
|
||||||
import kotlin.reflect.KProperty
|
import kotlin.reflect.KProperty
|
||||||
|
|
||||||
+4
-5
@@ -14,16 +14,15 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree.impl
|
package org.jetbrains.kotlin.nj2k.tree.impl
|
||||||
|
|
||||||
import com.intellij.psi.JavaTokenType
|
import com.intellij.psi.JavaTokenType
|
||||||
import com.intellij.psi.impl.source.tree.ElementType.OPERATION_BIT_SET
|
import com.intellij.psi.impl.source.tree.ElementType.OPERATION_BIT_SET
|
||||||
import com.intellij.psi.tree.IElementType
|
import com.intellij.psi.tree.IElementType
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.ast.Parameter
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.*
|
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
|
||||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
|
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
||||||
|
|
||||||
+8
-8
@@ -14,19 +14,19 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree.impl
|
package org.jetbrains.kotlin.nj2k.tree.impl
|
||||||
|
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.j2k.JKSymbolProvider
|
import org.jetbrains.kotlin.nj2k.JKSymbolProvider
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.conversions.resolveFqName
|
import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType
|
import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.BOOLEAN
|
import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType.BOOLEAN
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.NULL
|
import org.jetbrains.kotlin.nj2k.tree.JKLiteralExpression.LiteralType.NULL
|
||||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
|
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.psi.KtClass
|
import org.jetbrains.kotlin.psi.KtClass
|
||||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||||
+3
-3
@@ -14,13 +14,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree.impl
|
package org.jetbrains.kotlin.nj2k.tree.impl
|
||||||
|
|
||||||
import com.intellij.psi.JavaTokenType
|
import com.intellij.psi.JavaTokenType
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import com.intellij.psi.tree.IElementType
|
import com.intellij.psi.tree.IElementType
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
|
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
|
||||||
import org.jetbrains.kotlin.lexer.KtSingleValueToken
|
import org.jetbrains.kotlin.lexer.KtSingleValueToken
|
||||||
import org.jetbrains.kotlin.types.expressions.OperatorConventions
|
import org.jetbrains.kotlin.types.expressions.OperatorConventions
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.cast
|
import org.jetbrains.kotlin.utils.addToStdlib.cast
|
||||||
+5
-5
@@ -3,7 +3,7 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree.impl
|
package org.jetbrains.kotlin.nj2k.tree.impl
|
||||||
|
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import com.intellij.psi.PsiMethod
|
import com.intellij.psi.PsiMethod
|
||||||
@@ -14,11 +14,11 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|||||||
import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName
|
import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName
|
||||||
import org.jetbrains.kotlin.idea.search.declarationsSearch.findDeepestSuperMethodsKotlinAware
|
import org.jetbrains.kotlin.idea.search.declarationsSearch.findDeepestSuperMethodsKotlinAware
|
||||||
import org.jetbrains.kotlin.idea.search.declarationsSearch.findDeepestSuperMethodsNoWrapping
|
import org.jetbrains.kotlin.idea.search.declarationsSearch.findDeepestSuperMethodsNoWrapping
|
||||||
import org.jetbrains.kotlin.j2k.JKSymbolProvider
|
import org.jetbrains.kotlin.nj2k.JKSymbolProvider
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.conversions.parentOfType
|
import org.jetbrains.kotlin.nj2k.conversions.parentOfType
|
||||||
import org.jetbrains.kotlin.j2k.conversions.resolveFqName
|
import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.psi.KtCallableDeclaration
|
import org.jetbrains.kotlin.psi.KtCallableDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
+2
-2
@@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree
|
package org.jetbrains.kotlin.nj2k.tree
|
||||||
|
|
||||||
import org.jetbrains.kotlin.idea.search.usagesSearch.constructor
|
import org.jetbrains.kotlin.idea.search.usagesSearch.constructor
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
|
|
||||||
interface JKField : JKVariable, JKVisibilityOwner, JKMutabilityOwner, JKModalityOwner, JKExtraModifiersOwner, JKAnnotationListOwner
|
interface JKField : JKVariable, JKVisibilityOwner, JKMutabilityOwner, JKModalityOwner, JKExtraModifiersOwner, JKAnnotationListOwner
|
||||||
|
|
||||||
+5
-5
@@ -14,13 +14,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree
|
package org.jetbrains.kotlin.nj2k.tree
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKClassSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKClassSymbol
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKFieldSymbol
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKMethodSymbol
|
||||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
|
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitor
|
||||||
|
|
||||||
interface JKTreeElement : JKElement {
|
interface JKTreeElement : JKElement {
|
||||||
fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R
|
fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R
|
||||||
+2
-2
@@ -14,9 +14,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree
|
package org.jetbrains.kotlin.nj2k.tree
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKMethodSymbol
|
||||||
|
|
||||||
interface JKKtGetterOrSetter : JKTreeElement, JKVisibilityOwner, JKBranchElement {
|
interface JKKtGetterOrSetter : JKTreeElement, JKVisibilityOwner, JKBranchElement {
|
||||||
var body: JKStatement
|
var body: JKStatement
|
||||||
+3
-3
@@ -14,11 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree
|
package org.jetbrains.kotlin.nj2k.tree
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKBranchElementBase
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKBranchElementBase
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKClassSymbol
|
import org.jetbrains.kotlin.nj2k.tree.impl.JKClassSymbol
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
||||||
import kotlin.reflect.KProperty0
|
import kotlin.reflect.KProperty0
|
||||||
import kotlin.jvm.internal.CallableReference
|
import kotlin.jvm.internal.CallableReference
|
||||||
+6
-7
@@ -3,7 +3,7 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.tree
|
package org.jetbrains.kotlin.nj2k.tree
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
@@ -11,13 +11,12 @@ import org.jetbrains.kotlin.builtins.PrimitiveType
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor
|
import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.nj2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.JKSymbolProvider
|
import org.jetbrains.kotlin.nj2k.JKSymbolProvider
|
||||||
import org.jetbrains.kotlin.j2k.ast.ArrayType
|
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.conversions.resolveFqName
|
import org.jetbrains.kotlin.nj2k.conversions.resolveFqName
|
||||||
import org.jetbrains.kotlin.j2k.kotlinTypeByName
|
import org.jetbrains.kotlin.nj2k.kotlinTypeByName
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.nj2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.js.descriptorUtils.getJetTypeFqName
|
import org.jetbrains.kotlin.js.descriptorUtils.getJetTypeFqName
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
+5
-5
@@ -80,7 +80,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
|
|||||||
|
|
||||||
val interfaceData = commonData + uncommonData
|
val interfaceData = commonData + uncommonData
|
||||||
|
|
||||||
val pkg = "package org.jetbrains.kotlin.j2k.tree.visitors"
|
val pkg = "package org.jetbrains.kotlin.nj2k.tree.visitors"
|
||||||
|
|
||||||
fun String.firstCommonInterfaceName(): String {
|
fun String.firstCommonInterfaceName(): String {
|
||||||
val data = interfaceData.find { it.name == this }!!
|
val data = interfaceData.find { it.name == this }!!
|
||||||
@@ -92,7 +92,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
|
|||||||
File(JK_OUT_ROOT, "$visitorName.kt").writeText(buildString {
|
File(JK_OUT_ROOT, "$visitorName.kt").writeText(buildString {
|
||||||
appendln(pkg)
|
appendln(pkg)
|
||||||
appendln()
|
appendln()
|
||||||
appendln("import org.jetbrains.kotlin.j2k.tree.*")
|
appendln("import org.jetbrains.kotlin.nj2k.tree.*")
|
||||||
appendln()
|
appendln()
|
||||||
appendln("interface $visitorName<out R, in D> {")
|
appendln("interface $visitorName<out R, in D> {")
|
||||||
interfaceData.joinTo(this, separator = "\n") { (name, ext) ->
|
interfaceData.joinTo(this, separator = "\n") { (name, ext) ->
|
||||||
@@ -111,7 +111,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
|
|||||||
File(JK_OUT_ROOT, "${visitorName}Void.kt").writeText(buildString {
|
File(JK_OUT_ROOT, "${visitorName}Void.kt").writeText(buildString {
|
||||||
appendln(pkg)
|
appendln(pkg)
|
||||||
appendln()
|
appendln()
|
||||||
appendln("import org.jetbrains.kotlin.j2k.tree.*")
|
appendln("import org.jetbrains.kotlin.nj2k.tree.*")
|
||||||
appendln()
|
appendln()
|
||||||
|
|
||||||
appendln("interface ${visitorName}Void : $visitorName<Unit, Nothing?> {")
|
appendln("interface ${visitorName}Void : $visitorName<Unit, Nothing?> {")
|
||||||
@@ -132,7 +132,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
|
|||||||
/*File(JK_OUT_ROOT, "$transformerName.kt").writeText(buildString {
|
/*File(JK_OUT_ROOT, "$transformerName.kt").writeText(buildString {
|
||||||
appendln(pkg)
|
appendln(pkg)
|
||||||
appendln()
|
appendln()
|
||||||
appendln("import org.jetbrains.kotlin.j2k.tree.*")
|
appendln("import org.jetbrains.kotlin.nj2k.tree.*")
|
||||||
appendln()
|
appendln()
|
||||||
|
|
||||||
appendln("interface $transformerName<in D> : JKVisitor<JKTreeElement, D> {")
|
appendln("interface $transformerName<in D> : JKVisitor<JKTreeElement, D> {")
|
||||||
@@ -158,7 +158,7 @@ fun genVisitors(commonData: List<InterfaceData>, uncommonData: List<InterfaceDat
|
|||||||
File(JK_OUT_ROOT, "${transformerName}Void.kt").writeText(buildString {
|
File(JK_OUT_ROOT, "${transformerName}Void.kt").writeText(buildString {
|
||||||
appendln(pkg)
|
appendln(pkg)
|
||||||
appendln()
|
appendln()
|
||||||
appendln("import org.jetbrains.kotlin.j2k.tree.*")
|
appendln("import org.jetbrains.kotlin.nj2k.tree.*")
|
||||||
appendln()
|
appendln()
|
||||||
|
|
||||||
|
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package org.jetbrains.kotlin.j2k.tree.visitors
|
package org.jetbrains.kotlin.nj2k.tree.visitors
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
|
|
||||||
interface JKVisitor<out R, in D> {
|
interface JKVisitor<out R, in D> {
|
||||||
fun visitTreeElement(treeElement: JKTreeElement, data: D): R
|
fun visitTreeElement(treeElement: JKTreeElement, data: D): R
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package org.jetbrains.kotlin.j2k.tree.visitors
|
package org.jetbrains.kotlin.nj2k.tree.visitors
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
|
|
||||||
interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
||||||
fun visitTreeElement(treeElement: JKTreeElement)
|
fun visitTreeElement(treeElement: JKTreeElement)
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user