From a1600bd83acbf0f558d82ad005c104495f5c9087 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 14 Nov 2018 18:26:11 +0300 Subject: [PATCH] New J2K: Add ForIn statement conversion --- .../jetbrains/kotlin/j2k/ConversionsRunner.kt | 1 + .../kotlin/j2k/conversions/ForInConversion.kt | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ForInConversion.kt diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/ConversionsRunner.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/ConversionsRunner.kt index 8b65196150b..d9b99117a32 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/ConversionsRunner.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/ConversionsRunner.kt @@ -54,6 +54,7 @@ object ConversionsRunner { +SwitchStatementConversion(context) +InstanceOfConversion() +ForConversion(context) + +ForInConversion() +LabeledStatementConversion() +SortClassMembersConversion() } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ForInConversion.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ForInConversion.kt new file mode 100644 index 00000000000..3afc72e313b --- /dev/null +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ForInConversion.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2010-2018 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.j2k.conversions + +import com.intellij.psi.* +import org.jetbrains.kotlin.j2k.* +import org.jetbrains.kotlin.j2k.tree.* +import org.jetbrains.kotlin.j2k.tree.impl.* +import org.jetbrains.kotlin.lexer.KtTokens +import org.jetbrains.kotlin.name.ClassId + + +class ForInConversion : RecursiveApplicableConversionBase() { + override fun applyToElement(element: JKTreeElement): JKTreeElement { + if (element !is JKForInStatement) return recurse(element) + + val parameterDeclaration = element.declaration as? JKParameter + if (parameterDeclaration != null) { + parameterDeclaration.type = JKTypeElementImpl(JKNoTypeImpl) + } + + return recurse(element) + } +} \ No newline at end of file