Apply reformat code and optimize imports to kotlin code in j2k

Minor: remove Unit return types
This commit is contained in:
Pavel V. Talanov
2013-10-29 16:27:46 +04:00
parent 2a5657e0e6
commit 28f3d692ab
54 changed files with 433 additions and 451 deletions
+6 -4
View File
@@ -66,7 +66,7 @@ public open class Converter(val project: Project) {
return Collections.unmodifiableSet(classIdentifiersSet) return Collections.unmodifiableSet(classIdentifiersSet)
} }
public open fun clearClassIdentifiers(): Unit { public open fun clearClassIdentifiers() {
classIdentifiersSet.clear() classIdentifiersSet.clear()
} }
@@ -611,9 +611,11 @@ public open class Converter(val project: Project) {
return false return false
} }
private fun removeEmpty(statements: List<Element>): List<Element> { private fun removeEmpty(statements: List<Element>): List<Element> {
return statements.filterNot { it == Statement.EMPTY_STATEMENT || return statements.filterNot {
it == Statement.EMPTY_STATEMENT ||
it == Expression.EMPTY_EXPRESSION || it == Expression.EMPTY_EXPRESSION ||
it == Element.EMPTY_ELEMENT } it == Element.EMPTY_ELEMENT
}
} }
private fun isNotOpenMethod(method: PsiMethod): Boolean { private fun isNotOpenMethod(method: PsiMethod): Boolean {
@@ -852,7 +854,7 @@ open class ReferenceCollector(): JavaRecursiveElementVisitor() {
return myCollectedReferences return myCollectedReferences
} }
public override fun visitReferenceExpression(expression: PsiReferenceExpression?): Unit { public override fun visitReferenceExpression(expression: PsiReferenceExpression?) {
super.visitReferenceExpression(expression) super.visitReferenceExpression(expression)
if (expression != null) { if (expression != null) {
myCollectedReferences.add(expression) myCollectedReferences.add(expression)
@@ -86,7 +86,7 @@ object JavaToKotlinTranslator {
return null return null
} }
fun setClassIdentifiers(converter: Converter, psiFile: PsiElement): Unit { fun setClassIdentifiers(converter: Converter, psiFile: PsiElement) {
val c = ClassVisitor() val c = ClassVisitor()
psiFile.accept(c) psiFile.accept(c)
converter.clearClassIdentifiers() converter.clearClassIdentifiers()
@@ -18,7 +18,6 @@ package org.jetbrains.jet.j2k.ast
import org.jetbrains.jet.j2k.ast.types.Type import org.jetbrains.jet.j2k.ast.types.Type
import org.jetbrains.jet.lang.types.expressions.OperatorConventions import org.jetbrains.jet.lang.types.expressions.OperatorConventions
import java.util.*
import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtil
public open class ArrayInitializerExpression(val `type`: Type, val initializers: List<Expression>) : Expression() { public open class ArrayInitializerExpression(val `type`: Type, val initializers: List<Expression>) : Expression() {
@@ -16,8 +16,6 @@
package org.jetbrains.jet.j2k.ast package org.jetbrains.jet.j2k.ast
import java.util.LinkedList
public open class Block(val statements: List<Element>, val notEmpty: Boolean = false) : Statement() { public open class Block(val statements: List<Element>, val notEmpty: Boolean = false) : Statement() {
public override fun isEmpty(): Boolean { public override fun isEmpty(): Boolean {
return !notEmpty && (statements.size() == 0 || statements.all { it == Statement.EMPTY_STATEMENT }) return !notEmpty && (statements.size() == 0 || statements.all { it == Statement.EMPTY_STATEMENT })
+4 -4
View File
@@ -16,13 +16,11 @@
package org.jetbrains.jet.j2k.ast package org.jetbrains.jet.j2k.ast
import org.jetbrains.annotations.Nullable
import org.jetbrains.jet.j2k.Converter import org.jetbrains.jet.j2k.Converter
import org.jetbrains.jet.j2k.J2KConverterFlags import org.jetbrains.jet.j2k.J2KConverterFlags
import org.jetbrains.jet.j2k.ast.types.ClassType import org.jetbrains.jet.j2k.ast.types.ClassType
import org.jetbrains.jet.j2k.ast.types.Type import org.jetbrains.jet.j2k.ast.types.Type
import java.util.HashSet import java.util.HashSet
import java.util.LinkedList
import java.util.ArrayList import java.util.ArrayList
public open class Class(converter: Converter, public open class Class(converter: Converter,
@@ -150,9 +148,11 @@ public open class Class(converter : Converter,
class object { class object {
open fun getMembers(members: List<Node>, converter: Converter): List<Node> { open fun getMembers(members: List<Node>, converter: Converter): List<Node> {
if (converter.hasFlag(J2KConverterFlags.SKIP_NON_PUBLIC_MEMBERS)) { if (converter.hasFlag(J2KConverterFlags.SKIP_NON_PUBLIC_MEMBERS)) {
return members.filter { it is Comment || return members.filter {
it is Comment ||
(it as Member).accessModifier() == Modifier.PUBLIC || (it as Member).accessModifier() == Modifier.PUBLIC ||
(it as Member).accessModifier() == Modifier.PROTECTED } (it as Member).accessModifier() == Modifier.PROTECTED
}
} }
return members return members
} }
@@ -16,8 +16,6 @@
package org.jetbrains.jet.j2k.ast package org.jetbrains.jet.j2k.ast
import org.jetbrains.jet.j2k.ast.types.Type
public open class ExpressionList(val expressions: List<Expression>) : Expression() { public open class ExpressionList(val expressions: List<Expression>) : Expression() {
public override fun toKotlin(): String = expressions.map { it.toKotlin() }.makeString(", ") public override fun toKotlin(): String = expressions.map { it.toKotlin() }.makeString(", ")
} }
@@ -17,7 +17,6 @@
package org.jetbrains.jet.j2k.ast package org.jetbrains.jet.j2k.ast
import org.jetbrains.jet.j2k.ast.types.Type import org.jetbrains.jet.j2k.ast.types.Type
import java.util.LinkedList
import org.jetbrains.jet.j2k.Converter import org.jetbrains.jet.j2k.Converter
import java.util.ArrayList import java.util.ArrayList
@@ -16,7 +16,6 @@
package org.jetbrains.jet.j2k.ast package org.jetbrains.jet.j2k.ast
import java.util.LinkedList
import org.jetbrains.jet.j2k.ast.types.Type import org.jetbrains.jet.j2k.ast.types.Type
import java.util.ArrayList import java.util.ArrayList
@@ -17,7 +17,6 @@
package org.jetbrains.jet.j2k.ast package org.jetbrains.jet.j2k.ast
public open class Identifier(val name: String, public open class Identifier(val name: String,
val myNullable: Boolean = true, val myNullable: Boolean = true,
val quotingNeeded: Boolean = true) : Expression() { val quotingNeeded: Boolean = true) : Expression() {
@@ -16,8 +16,6 @@
package org.jetbrains.jet.j2k.ast package org.jetbrains.jet.j2k.ast
import org.jetbrains.annotations.Nullable
public open class NewClassExpression(val name: Element, public open class NewClassExpression(val name: Element,
val arguments: List<Expression>, val arguments: List<Expression>,
val qualifier: Expression = Expression.EMPTY_EXPRESSION, val qualifier: Expression = Expression.EMPTY_EXPRESSION,
@@ -18,7 +18,6 @@ package org.jetbrains.jet.j2k.ast.types
import org.jetbrains.jet.j2k.ast.Element import org.jetbrains.jet.j2k.ast.Element
import org.jetbrains.jet.j2k.ast.Identifier import org.jetbrains.jet.j2k.ast.Identifier
import java.util.Collections
import java.util.ArrayList import java.util.ArrayList
public open class ClassType(val `type`: Identifier, val parameters: List<Element>, nullable: Boolean) : Type(nullable) { public open class ClassType(val `type`: Identifier, val parameters: List<Element>, nullable: Boolean) : Type(nullable) {
@@ -16,8 +16,6 @@
package org.jetbrains.jet.j2k.ast.types package org.jetbrains.jet.j2k.ast.types
import org.jetbrains.jet.j2k.ast.types.Type
public open class VarArg(val `type`: Type) : Type(false) { public open class VarArg(val `type`: Type) : Type(false) {
public override fun toKotlin(): String = `type`.toKotlin() public override fun toKotlin(): String = `type`.toKotlin()
} }
@@ -27,7 +27,7 @@ public open class ClassVisitor(): JavaRecursiveElementVisitor() {
return HashSet<String>(myClassIdentifiers) return HashSet<String>(myClassIdentifiers)
} }
public override fun visitClass(aClass: PsiClass?): Unit { public override fun visitClass(aClass: PsiClass?) {
val qName = aClass?.getQualifiedName() val qName = aClass?.getQualifiedName()
if (qName != null) { if (qName != null) {
myClassIdentifiers.add(qName) myClassIdentifiers.add(qName)
@@ -34,7 +34,7 @@ public open class ElementVisitor(val myConverter : Converter) : JavaElementVisit
return myResult return myResult
} }
public override fun visitLocalVariable(variable : PsiLocalVariable?) : Unit { public override fun visitLocalVariable(variable: PsiLocalVariable?) {
val theVariable = variable!! val theVariable = variable!!
var kType = myConverter.typeToType(theVariable.getType(), isAnnotatedAsNotNull(theVariable.getModifierList())) var kType = myConverter.typeToType(theVariable.getType(), isAnnotatedAsNotNull(theVariable.getModifierList()))
if (theVariable.hasModifierProperty(PsiModifier.FINAL) && isDefinitelyNotNull(theVariable.getInitializer())) { if (theVariable.hasModifierProperty(PsiModifier.FINAL) && isDefinitelyNotNull(theVariable.getInitializer())) {
@@ -46,11 +46,11 @@ public open class ElementVisitor(val myConverter : Converter) : JavaElementVisit
myConverter.expressionToExpression(theVariable.getInitializer(), theVariable.getType())) myConverter.expressionToExpression(theVariable.getInitializer(), theVariable.getType()))
} }
public override fun visitExpressionList(list : PsiExpressionList?) : Unit { public override fun visitExpressionList(list: PsiExpressionList?) {
myResult = ExpressionList(myConverter.expressionsToExpressionList(list!!.getExpressions())) myResult = ExpressionList(myConverter.expressionsToExpressionList(list!!.getExpressions()))
} }
public override fun visitReferenceElement(reference : PsiJavaCodeReferenceElement?) : Unit { public override fun visitReferenceElement(reference: PsiJavaCodeReferenceElement?) {
val theReference = reference!! val theReference = reference!!
val types: List<Type> = myConverter.typesToTypeList(theReference.getTypeParameters()) val types: List<Type> = myConverter.typesToTypeList(theReference.getTypeParameters())
if (!theReference.isQualified()) { if (!theReference.isQualified()) {
@@ -69,16 +69,16 @@ public open class ElementVisitor(val myConverter : Converter) : JavaElementVisit
} }
} }
public override fun visitTypeElement(`type` : PsiTypeElement?) : Unit { public override fun visitTypeElement(`type`: PsiTypeElement?) {
myResult = TypeElement(myConverter.typeToType(`type`!!.getType())) myResult = TypeElement(myConverter.typeToType(`type`!!.getType()))
} }
public override fun visitTypeParameter(classParameter : PsiTypeParameter?) : Unit { public override fun visitTypeParameter(classParameter: PsiTypeParameter?) {
myResult = TypeParameter(Identifier(classParameter!!.getName()!!), myResult = TypeParameter(Identifier(classParameter!!.getName()!!),
classParameter.getExtendsListTypes().map { myConverter.typeToType(it) }) classParameter.getExtendsListTypes().map { myConverter.typeToType(it) })
} }
public override fun visitParameterList(list : PsiParameterList?) : Unit { public override fun visitParameterList(list: PsiParameterList?) {
myResult = ParameterList(myConverter.parametersToParameterList(list!!.getParameters()).requireNoNulls()) myResult = ParameterList(myConverter.parametersToParameterList(list!!.getParameters()).requireNoNulls())
} }
@@ -18,10 +18,8 @@ package org.jetbrains.jet.j2k.visitors
import com.intellij.psi.* import com.intellij.psi.*
import com.intellij.psi.tree.IElementType import com.intellij.psi.tree.IElementType
import org.jetbrains.annotations.Nullable
import org.jetbrains.jet.j2k.Converter import org.jetbrains.jet.j2k.Converter
import org.jetbrains.jet.j2k.ast.* import org.jetbrains.jet.j2k.ast.*
import org.jetbrains.jet.j2k.ast.types.EmptyType
import org.jetbrains.jet.j2k.ast.types.Type import org.jetbrains.jet.j2k.ast.types.Type
import org.jetbrains.jet.lang.types.expressions.OperatorConventions import org.jetbrains.jet.lang.types.expressions.OperatorConventions
import java.util.ArrayList import java.util.ArrayList
@@ -40,7 +38,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
return myResult as Expression return myResult as Expression
} }
public override fun visitArrayAccessExpression(expression: PsiArrayAccessExpression?): Unit { public override fun visitArrayAccessExpression(expression: PsiArrayAccessExpression?) {
val assignment = PsiTreeUtil.getParentOfType(expression, javaClass<PsiAssignmentExpression>()) val assignment = PsiTreeUtil.getParentOfType(expression, javaClass<PsiAssignmentExpression>())
val lvalue = assignment != null && expression == assignment.getLExpression(); val lvalue = assignment != null && expression == assignment.getLExpression();
myResult = ArrayAccessExpression(getConverter().expressionToExpression(expression?.getArrayExpression()), myResult = ArrayAccessExpression(getConverter().expressionToExpression(expression?.getArrayExpression()),
@@ -48,12 +46,12 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
lvalue) lvalue)
} }
public override fun visitArrayInitializerExpression(expression: PsiArrayInitializerExpression?): Unit { public override fun visitArrayInitializerExpression(expression: PsiArrayInitializerExpression?) {
myResult = ArrayInitializerExpression(getConverter().typeToType(expression?.getType()), myResult = ArrayInitializerExpression(getConverter().typeToType(expression?.getType()),
getConverter().expressionsToExpressionList(expression?.getInitializers()!!)) getConverter().expressionsToExpressionList(expression?.getInitializers()!!))
} }
public override fun visitAssignmentExpression(expression: PsiAssignmentExpression?): Unit { public override fun visitAssignmentExpression(expression: PsiAssignmentExpression?) {
val tokenType: IElementType = expression?.getOperationSign()?.getTokenType()!! val tokenType: IElementType = expression?.getOperationSign()?.getTokenType()!!
val secondOp: String = when(tokenType) { val secondOp: String = when(tokenType) {
JavaTokenType.GTGTEQ -> "shr" JavaTokenType.GTGTEQ -> "shr"
@@ -75,7 +73,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
} }
} }
public override fun visitBinaryExpression(expression: PsiBinaryExpression?): Unit { public override fun visitBinaryExpression(expression: PsiBinaryExpression?) {
val lhs = getConverter().expressionToExpression(expression?.getLOperand()!!, expression?.getType()) val lhs = getConverter().expressionToExpression(expression?.getLOperand()!!, expression?.getType())
val rhs = getConverter().expressionToExpression(expression?.getROperand(), expression?.getType()) val rhs = getConverter().expressionToExpression(expression?.getROperand(), expression?.getType())
if (expression?.getOperationSign()?.getTokenType() == JavaTokenType.GTGTGT) { if (expression?.getOperationSign()?.getTokenType() == JavaTokenType.GTGTGT) {
@@ -87,11 +85,11 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
} }
} }
public override fun visitClassObjectAccessExpression(expression: PsiClassObjectAccessExpression?): Unit { public override fun visitClassObjectAccessExpression(expression: PsiClassObjectAccessExpression?) {
myResult = ClassObjectAccessExpression(getConverter().typeElementToTypeElement(expression?.getOperand())) myResult = ClassObjectAccessExpression(getConverter().typeElementToTypeElement(expression?.getOperand()))
} }
public override fun visitConditionalExpression(expression: PsiConditionalExpression?): Unit { public override fun visitConditionalExpression(expression: PsiConditionalExpression?) {
val condition: PsiExpression? = expression?.getCondition() val condition: PsiExpression? = expression?.getCondition()
val `type`: PsiType? = condition?.getType() val `type`: PsiType? = condition?.getType()
val e: Expression = (if (`type` != null) val e: Expression = (if (`type` != null)
@@ -103,17 +101,17 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
getConverter().expressionToExpression(expression?.getElseExpression()))) getConverter().expressionToExpression(expression?.getElseExpression())))
} }
public override fun visitExpressionList(list: PsiExpressionList?): Unit { public override fun visitExpressionList(list: PsiExpressionList?) {
myResult = ExpressionList(getConverter().expressionsToExpressionList(list!!.getExpressions())) myResult = ExpressionList(getConverter().expressionsToExpressionList(list!!.getExpressions()))
} }
public override fun visitInstanceOfExpression(expression: PsiInstanceOfExpression?): Unit { public override fun visitInstanceOfExpression(expression: PsiInstanceOfExpression?) {
val checkType: PsiTypeElement? = expression?.getCheckType() val checkType: PsiTypeElement? = expression?.getCheckType()
myResult = IsOperator(getConverter().expressionToExpression(expression?.getOperand()), myResult = IsOperator(getConverter().expressionToExpression(expression?.getOperand()),
myConverter.typeElementToTypeElement(checkType)) myConverter.typeElementToTypeElement(checkType))
} }
public override fun visitLiteralExpression(expression: PsiLiteralExpression?): Unit { public override fun visitLiteralExpression(expression: PsiLiteralExpression?) {
val value: Any? = expression?.getValue() val value: Any? = expression?.getValue()
var text: String = expression?.getText()!! var text: String = expression?.getText()!!
val `type`: PsiType? = expression?.getType() val `type`: PsiType? = expression?.getType()
@@ -143,7 +141,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
myResult = LiteralExpression(text) myResult = LiteralExpression(text)
} }
public override fun visitMethodCallExpression(expression: PsiMethodCallExpression?): Unit { public override fun visitMethodCallExpression(expression: PsiMethodCallExpression?) {
convertMethodCallExpression(expression!!) convertMethodCallExpression(expression!!)
} }
@@ -156,7 +154,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
} }
} }
public override fun visitNewExpression(expression: PsiNewExpression?): Unit { public override fun visitNewExpression(expression: PsiNewExpression?) {
if (expression?.getArrayInitializer() != null) if (expression?.getArrayInitializer() != null)
{ {
myResult = createNewEmptyArray(expression) myResult = createNewEmptyArray(expression)
@@ -211,16 +209,16 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
return getConverter().expressionToExpression(expression?.getArrayInitializer()) return getConverter().expressionToExpression(expression?.getArrayInitializer())
} }
public override fun visitParenthesizedExpression(expression: PsiParenthesizedExpression?): Unit { public override fun visitParenthesizedExpression(expression: PsiParenthesizedExpression?) {
myResult = ParenthesizedExpression(getConverter().expressionToExpression(expression?.getExpression())) myResult = ParenthesizedExpression(getConverter().expressionToExpression(expression?.getExpression()))
} }
public override fun visitPostfixExpression(expression: PsiPostfixExpression?): Unit { public override fun visitPostfixExpression(expression: PsiPostfixExpression?) {
myResult = PostfixOperator(getOperatorString(expression!!.getOperationSign().getTokenType()!!), myResult = PostfixOperator(getOperatorString(expression!!.getOperationSign().getTokenType()!!),
getConverter().expressionToExpression(expression.getOperand())) getConverter().expressionToExpression(expression.getOperand()))
} }
public override fun visitPrefixExpression(expression: PsiPrefixExpression?): Unit { public override fun visitPrefixExpression(expression: PsiPrefixExpression?) {
val operand = getConverter().expressionToExpression(expression?.getOperand(), expression?.getOperand()!!.getType()) val operand = getConverter().expressionToExpression(expression?.getOperand(), expression?.getOperand()!!.getType())
val token = expression?.getOperationTokenType()!! val token = expression?.getOperationTokenType()!!
if (token == JavaTokenType.TILDE) { if (token == JavaTokenType.TILDE) {
@@ -231,7 +229,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
} }
} }
public override fun visitReferenceExpression(expression: PsiReferenceExpression?): Unit { public override fun visitReferenceExpression(expression: PsiReferenceExpression?) {
val isFieldReference: Boolean = isFieldReference(expression!!, getContainingClass(expression)) val isFieldReference: Boolean = isFieldReference(expression!!, getContainingClass(expression))
val insideSecondaryConstructor: Boolean = isInsideSecondaryConstructor(expression) val insideSecondaryConstructor: Boolean = isInsideSecondaryConstructor(expression)
val hasReceiver: Boolean = isFieldReference && insideSecondaryConstructor val hasReceiver: Boolean = isFieldReference && insideSecondaryConstructor
@@ -291,7 +289,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
return false; return false;
} }
public override fun visitSuperExpression(expression: PsiSuperExpression?): Unit { public override fun visitSuperExpression(expression: PsiSuperExpression?) {
val qualifier: PsiJavaCodeReferenceElement? = expression?.getQualifier() val qualifier: PsiJavaCodeReferenceElement? = expression?.getQualifier()
myResult = SuperExpression((if (qualifier != null) myResult = SuperExpression((if (qualifier != null)
Identifier(qualifier.getQualifiedName()!!) Identifier(qualifier.getQualifiedName()!!)
@@ -299,7 +297,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
Identifier.EMPTY_IDENTIFIER)) Identifier.EMPTY_IDENTIFIER))
} }
public override fun visitThisExpression(expression: PsiThisExpression?): Unit { public override fun visitThisExpression(expression: PsiThisExpression?) {
val qualifier: PsiJavaCodeReferenceElement? = expression?.getQualifier() val qualifier: PsiJavaCodeReferenceElement? = expression?.getQualifier()
myResult = ThisExpression((if (qualifier != null) myResult = ThisExpression((if (qualifier != null)
Identifier(qualifier.getQualifiedName()!!) Identifier(qualifier.getQualifiedName()!!)
@@ -307,7 +305,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
Identifier.EMPTY_IDENTIFIER)) Identifier.EMPTY_IDENTIFIER))
} }
public override fun visitTypeCastExpression(expression: PsiTypeCastExpression?): Unit { public override fun visitTypeCastExpression(expression: PsiTypeCastExpression?) {
val castType: PsiTypeElement? = expression?.getCastType() val castType: PsiTypeElement? = expression?.getCastType()
if (castType != null) { if (castType != null) {
val operand = expression?.getOperand() val operand = expression?.getOperand()
@@ -324,7 +322,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
} }
} }
public override fun visitPolyadicExpression(expression: PsiPolyadicExpression?): Unit { public override fun visitPolyadicExpression(expression: PsiPolyadicExpression?) {
var parameters = ArrayList<Expression>() var parameters = ArrayList<Expression>()
for (operand : PsiExpression in expression?.getOperands()!!) { for (operand : PsiExpression in expression?.getOperands()!!) {
parameters.add(getConverter().expressionToExpression(operand, expression?.getType())) parameters.add(getConverter().expressionToExpression(operand, expression?.getType()))
@@ -24,7 +24,7 @@ import com.intellij.psi.CommonClassNames.JAVA_LANG_OBJECT
import org.jetbrains.jet.j2k.ast.MethodCallExpression import org.jetbrains.jet.j2k.ast.MethodCallExpression
public open class ExpressionVisitorForDirectObjectInheritors(converter: Converter) : ExpressionVisitor(converter) { public open class ExpressionVisitorForDirectObjectInheritors(converter: Converter) : ExpressionVisitor(converter) {
public override fun visitMethodCallExpression(expression: PsiMethodCallExpression?): Unit { public override fun visitMethodCallExpression(expression: PsiMethodCallExpression?) {
val methodExpression = expression?.getMethodExpression()!! val methodExpression = expression?.getMethodExpression()!!
if (superMethodInvocation(methodExpression, "hashCode")) { if (superMethodInvocation(methodExpression, "hashCode")) {
myResult = MethodCallExpression.build(Identifier("System", false), "identityHashCode", arrayList(Identifier("this"))) myResult = MethodCallExpression.build(Identifier("System", false), "identityHashCode", arrayList(Identifier("this")))
@@ -18,26 +18,22 @@ package org.jetbrains.jet.j2k.visitors
import com.intellij.psi.* import com.intellij.psi.*
import com.intellij.psi.tree.IElementType import com.intellij.psi.tree.IElementType
import org.jetbrains.annotations.Nullable
import org.jetbrains.jet.j2k.Converter import org.jetbrains.jet.j2k.Converter
import org.jetbrains.jet.j2k.ast.* import org.jetbrains.jet.j2k.ast.*
import java.util.Arrays
import java.util.Collections
import java.util.LinkedList
import org.jetbrains.jet.j2k.countWritingAccesses import org.jetbrains.jet.j2k.countWritingAccesses
import java.util.ArrayList import java.util.ArrayList
public open class StatementVisitor(converter: Converter) : ElementVisitor(converter) { public open class StatementVisitor(converter: Converter) : ElementVisitor(converter) {
public override fun visitAssertStatement(statement: PsiAssertStatement?): Unit { public override fun visitAssertStatement(statement: PsiAssertStatement?) {
myResult = AssertStatement(getConverter().expressionToExpression(statement?.getAssertCondition()), myResult = AssertStatement(getConverter().expressionToExpression(statement?.getAssertCondition()),
getConverter().expressionToExpression(statement?.getAssertDescription())) getConverter().expressionToExpression(statement?.getAssertDescription()))
} }
public override fun visitBlockStatement(statement: PsiBlockStatement?): Unit { public override fun visitBlockStatement(statement: PsiBlockStatement?) {
myResult = myConverter.blockToBlock(statement?.getCodeBlock(), true) myResult = myConverter.blockToBlock(statement?.getCodeBlock(), true)
} }
public override fun visitBreakStatement(statement: PsiBreakStatement?): Unit { public override fun visitBreakStatement(statement: PsiBreakStatement?) {
if (statement?.getLabelIdentifier() == null) { if (statement?.getLabelIdentifier() == null) {
myResult = BreakStatement(Identifier.EMPTY_IDENTIFIER) myResult = BreakStatement(Identifier.EMPTY_IDENTIFIER)
} }
@@ -47,7 +43,7 @@ public open class StatementVisitor(converter: Converter): ElementVisitor(convert
} }
} }
public override fun visitContinueStatement(statement: PsiContinueStatement?): Unit { public override fun visitContinueStatement(statement: PsiContinueStatement?) {
if (statement?.getLabelIdentifier() == null) if (statement?.getLabelIdentifier() == null)
{ {
myResult = ContinueStatement(Identifier.EMPTY_IDENTIFIER) myResult = ContinueStatement(Identifier.EMPTY_IDENTIFIER)
@@ -58,11 +54,11 @@ public open class StatementVisitor(converter: Converter): ElementVisitor(convert
} }
} }
public override fun visitDeclarationStatement(statement: PsiDeclarationStatement?): Unit { public override fun visitDeclarationStatement(statement: PsiDeclarationStatement?) {
myResult = DeclarationStatement(getConverter().elementsToElementList(statement?.getDeclaredElements()!!)) myResult = DeclarationStatement(getConverter().elementsToElementList(statement?.getDeclaredElements()!!))
} }
public override fun visitDoWhileStatement(statement: PsiDoWhileStatement?): Unit { public override fun visitDoWhileStatement(statement: PsiDoWhileStatement?) {
val condition: PsiExpression? = statement?.getCondition() val condition: PsiExpression? = statement?.getCondition()
val expression: Expression = (if (condition != null && condition.getType() != null) val expression: Expression = (if (condition != null && condition.getType() != null)
getConverter().expressionToExpression(condition, condition.getType()) getConverter().expressionToExpression(condition, condition.getType())
@@ -71,16 +67,16 @@ public open class StatementVisitor(converter: Converter): ElementVisitor(convert
myResult = DoWhileStatement(expression, getConverter().statementToStatement(statement?.getBody())) myResult = DoWhileStatement(expression, getConverter().statementToStatement(statement?.getBody()))
} }
public override fun visitExpressionStatement(statement: PsiExpressionStatement?): Unit { public override fun visitExpressionStatement(statement: PsiExpressionStatement?) {
myResult = getConverter().expressionToExpression(statement?.getExpression()) myResult = getConverter().expressionToExpression(statement?.getExpression())
} }
public override fun visitExpressionListStatement(statement: PsiExpressionListStatement?): Unit { public override fun visitExpressionListStatement(statement: PsiExpressionListStatement?) {
myResult = ExpressionListStatement(getConverter().expressionsToExpressionList( myResult = ExpressionListStatement(getConverter().expressionsToExpressionList(
statement?.getExpressionList()?.getExpressions()!!)) statement?.getExpressionList()?.getExpressions()!!))
} }
public override fun visitForStatement(statement: PsiForStatement?): Unit { public override fun visitForStatement(statement: PsiForStatement?) {
val initialization: PsiStatement? = statement?.getInitialization() val initialization: PsiStatement? = statement?.getInitialization()
val update: PsiStatement? = statement?.getUpdate() val update: PsiStatement? = statement?.getUpdate()
val condition: PsiExpression? = statement?.getCondition() val condition: PsiExpression? = statement?.getCondition()
@@ -126,7 +122,7 @@ public open class StatementVisitor(converter: Converter): ElementVisitor(convert
} }
} }
public override fun visitForeachStatement(statement: PsiForeachStatement?): Unit { public override fun visitForeachStatement(statement: PsiForeachStatement?) {
val iterator = { val iterator = {
val iteratorExpr = getConverter().expressionToExpression(statement?.getIteratedValue()) val iteratorExpr = getConverter().expressionToExpression(statement?.getIteratedValue())
if (iteratorExpr.isNullable()) if (iteratorExpr.isNullable())
@@ -139,7 +135,7 @@ public open class StatementVisitor(converter: Converter): ElementVisitor(convert
getConverter().statementToStatement(statement?.getBody())) getConverter().statementToStatement(statement?.getBody()))
} }
public override fun visitIfStatement(statement: PsiIfStatement?): Unit { public override fun visitIfStatement(statement: PsiIfStatement?) {
val condition: PsiExpression? = statement?.getCondition() val condition: PsiExpression? = statement?.getCondition()
val expression: Expression = getConverter().expressionToExpression(condition, PsiType.BOOLEAN) val expression: Expression = getConverter().expressionToExpression(condition, PsiType.BOOLEAN)
myResult = IfStatement(expression, myResult = IfStatement(expression,
@@ -147,19 +143,19 @@ public open class StatementVisitor(converter: Converter): ElementVisitor(convert
getConverter().statementToStatement(statement?.getElseBranch())) getConverter().statementToStatement(statement?.getElseBranch()))
} }
public override fun visitLabeledStatement(statement: PsiLabeledStatement?): Unit { public override fun visitLabeledStatement(statement: PsiLabeledStatement?) {
myResult = LabelStatement(Converter.identifierToIdentifier(statement?.getLabelIdentifier()), myResult = LabelStatement(Converter.identifierToIdentifier(statement?.getLabelIdentifier()),
getConverter().statementToStatement(statement?.getStatement())) getConverter().statementToStatement(statement?.getStatement()))
} }
public override fun visitSwitchLabelStatement(statement: PsiSwitchLabelStatement?): Unit { public override fun visitSwitchLabelStatement(statement: PsiSwitchLabelStatement?) {
myResult = (if (statement?.isDefaultCase()!!) myResult = (if (statement?.isDefaultCase()!!)
DefaultSwitchLabelStatement() DefaultSwitchLabelStatement()
else else
SwitchLabelStatement(getConverter().expressionToExpression(statement?.getCaseValue()))) SwitchLabelStatement(getConverter().expressionToExpression(statement?.getCaseValue())))
} }
public override fun visitSwitchStatement(statement: PsiSwitchStatement?): Unit { public override fun visitSwitchStatement(statement: PsiSwitchStatement?) {
myResult = SwitchContainer(getConverter().expressionToExpression(statement?.getExpression()), myResult = SwitchContainer(getConverter().expressionToExpression(statement?.getExpression()),
switchBodyToCases(statement?.getBody())) switchBodyToCases(statement?.getBody()))
} }
@@ -207,16 +203,16 @@ public open class StatementVisitor(converter: Converter): ElementVisitor(convert
return result return result
} }
public override fun visitSynchronizedStatement(statement: PsiSynchronizedStatement?): Unit { public override fun visitSynchronizedStatement(statement: PsiSynchronizedStatement?) {
myResult = SynchronizedStatement(getConverter().expressionToExpression(statement?.getLockExpression()), myResult = SynchronizedStatement(getConverter().expressionToExpression(statement?.getLockExpression()),
getConverter().blockToBlock(statement?.getBody())) getConverter().blockToBlock(statement?.getBody()))
} }
public override fun visitThrowStatement(statement: PsiThrowStatement?): Unit { public override fun visitThrowStatement(statement: PsiThrowStatement?) {
myResult = ThrowStatement(getConverter().expressionToExpression(statement?.getException())) myResult = ThrowStatement(getConverter().expressionToExpression(statement?.getException()))
} }
public override fun visitTryStatement(statement: PsiTryStatement?): Unit { public override fun visitTryStatement(statement: PsiTryStatement?) {
val catches = ArrayList<CatchStatement>() val catches = ArrayList<CatchStatement>()
val catchBlocks = statement?.getCatchBlocks()!! val catchBlocks = statement?.getCatchBlocks()!!
val catchBlockParameters = statement?.getCatchBlockParameters()!! val catchBlockParameters = statement?.getCatchBlockParameters()!!
@@ -228,7 +224,7 @@ public open class StatementVisitor(converter: Converter): ElementVisitor(convert
catches, getConverter().blockToBlock(statement?.getFinallyBlock(), true)) catches, getConverter().blockToBlock(statement?.getFinallyBlock(), true))
} }
public override fun visitWhileStatement(statement: PsiWhileStatement?): Unit { public override fun visitWhileStatement(statement: PsiWhileStatement?) {
var condition: PsiExpression? = statement?.getCondition() var condition: PsiExpression? = statement?.getCondition()
val expression: Expression = (if (condition != null && condition?.getType() != null) val expression: Expression = (if (condition != null && condition?.getType() != null)
this.getConverter().expressionToExpression(condition, condition?.getType()) this.getConverter().expressionToExpression(condition, condition?.getType())
@@ -237,7 +233,7 @@ public open class StatementVisitor(converter: Converter): ElementVisitor(convert
myResult = WhileStatement(expression, getConverter().statementToStatement(statement?.getBody())) myResult = WhileStatement(expression, getConverter().statementToStatement(statement?.getBody()))
} }
public override fun visitReturnStatement(statement: PsiReturnStatement?): Unit { public override fun visitReturnStatement(statement: PsiReturnStatement?) {
val returnValue: PsiExpression? = statement?.getReturnValue() val returnValue: PsiExpression? = statement?.getReturnValue()
val methodReturnType: PsiType? = getConverter().methodReturnType val methodReturnType: PsiType? = getConverter().methodReturnType
val expression: Expression = (if (returnValue != null && methodReturnType != null) val expression: Expression = (if (returnValue != null && methodReturnType != null)
@@ -22,7 +22,7 @@ import java.util.HashSet
public open class SuperVisitor() : JavaRecursiveElementVisitor() { public open class SuperVisitor() : JavaRecursiveElementVisitor() {
public val resolvedSuperCallParameters: HashSet<PsiExpressionList> = hashSet() public val resolvedSuperCallParameters: HashSet<PsiExpressionList> = hashSet()
public override fun visitMethodCallExpression(expression: PsiMethodCallExpression?): Unit { public override fun visitMethodCallExpression(expression: PsiMethodCallExpression?) {
if (expression != null && isSuper(expression.getMethodExpression())) { if (expression != null && isSuper(expression.getMethodExpression())) {
resolvedSuperCallParameters.add(expression.getArgumentList()) resolvedSuperCallParameters.add(expression.getArgumentList())
} }
@@ -17,13 +17,12 @@
package org.jetbrains.jet.j2k.visitors package org.jetbrains.jet.j2k.visitors
import com.intellij.psi.* import com.intellij.psi.*
import org.jetbrains.annotations.Nullable
import java.util.LinkedHashSet import java.util.LinkedHashSet
public open class ThisVisitor() : JavaRecursiveElementVisitor() { public open class ThisVisitor() : JavaRecursiveElementVisitor() {
private val myResolvedConstructors = LinkedHashSet<PsiMethod>() private val myResolvedConstructors = LinkedHashSet<PsiMethod>()
public override fun visitReferenceExpression(expression: PsiReferenceExpression?): Unit { public override fun visitReferenceExpression(expression: PsiReferenceExpression?) {
for (r : PsiReference? in expression?.getReferences()!!) { for (r : PsiReference? in expression?.getReferences()!!) {
if (r?.getCanonicalText() == "this") { if (r?.getCanonicalText() == "this") {
val res: PsiElement? = r?.resolve() val res: PsiElement? = r?.resolve()