From 88235c3eb244939e73cdf8379807e28533784eba Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 4 Jul 2014 21:19:58 +0400 Subject: [PATCH] Minor code corrections after code review --- .../plugin/completion/handlers/GenerateLambda.kt | 3 +-- j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt | 3 +-- .../org/jetbrains/jet/j2k/ConstructorConverter.kt | 3 +-- j2k/src/org/jetbrains/jet/j2k/Converter.kt | 13 ++++++------- .../jetbrains/jet/j2k/visitors/ExpressionVisitor.kt | 3 ++- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/completion/handlers/GenerateLambda.kt b/idea/src/org/jetbrains/jet/plugin/completion/handlers/GenerateLambda.kt index 3f42cdf5e65..c764ffede91 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/handlers/GenerateLambda.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/handlers/GenerateLambda.kt @@ -111,8 +111,7 @@ private fun buildTemplate(lambdaType: JetType, explicitParameterTypes: Boolean, template.addTextSegment("(") } - for (i in parameterTypes.indices) { - val parameterType = parameterTypes[i] + for ((i, parameterType) in parameterTypes.withIndices()) { if (i > 0) { template.addTextSegment(", ") } diff --git a/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt b/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt index 2ced8168c0b..74512765d6d 100644 --- a/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt +++ b/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt @@ -105,8 +105,7 @@ class CodeBuilder(private val topElement: PsiElement?) { commentsAndSpacesUsed.addAll(prefixElements) commentsAndSpacesUsed.addAll(postfixElements) - for (i in prefixElements.indices) { - val e = prefixElements[i] + for ((i, e) in prefixElements.withIndices()) { if (i == 0 && e is PsiWhiteSpace) { val blankLines = e.newLinesCount() - 1 for (_ in 1..blankLines) { diff --git a/j2k/src/org/jetbrains/jet/j2k/ConstructorConverter.kt b/j2k/src/org/jetbrains/jet/j2k/ConstructorConverter.kt index 94f30089081..e37c8395ce3 100644 --- a/j2k/src/org/jetbrains/jet/j2k/ConstructorConverter.kt +++ b/j2k/src/org/jetbrains/jet/j2k/ConstructorConverter.kt @@ -363,8 +363,7 @@ class ConstructorConverter(private val psiClass: PsiClass, private val converter // searching for other constructor call in form "this(...)" // it's not necessary the first statement because of statements inserted for writable parameters - for (i in statements.indices) { - val statement = statements[i] + for ((i, statement) in statements.withIndices()) { if (statement is MethodCallExpression) { if ((statement.methodExpression as? Identifier)?.name == "this") { val constructorCall = MethodCallExpression.buildNotNull(null, className, statement.arguments).assignPrototypesFrom(statement) diff --git a/j2k/src/org/jetbrains/jet/j2k/Converter.kt b/j2k/src/org/jetbrains/jet/j2k/Converter.kt index a54583f3eb9..d9e3a632c77 100644 --- a/j2k/src/org/jetbrains/jet/j2k/Converter.kt +++ b/j2k/src/org/jetbrains/jet/j2k/Converter.kt @@ -424,7 +424,7 @@ public class Converter private(val project: Project, val settings: ConverterSett convertedExpression = BangBangExpression(convertedExpression).assignNoPrototype() } - if (canConvertType(actualType, expectedType) && convertedExpression !is LiteralExpression) { + if (needConversion(actualType, expectedType) && convertedExpression !is LiteralExpression) { val conversion = PRIMITIVE_TYPE_CONVERSIONS[expectedType.getCanonicalText()] if (conversion != null) { convertedExpression = MethodCallExpression.buildNotNull(convertedExpression, conversion) @@ -445,7 +445,7 @@ public class Converter private(val project: Project, val settings: ConverterSett resultType = resultType.toNotNullType() } - if (canConvertType(actualType, expectedType) && convertedExpression !is LiteralExpression) { + if (needConversion(actualType, expectedType) && convertedExpression !is LiteralExpression) { val conversion = PRIMITIVE_TYPE_CONVERSIONS[expectedType.getCanonicalText()] if (conversion != null) { resultType = typeConverter.convertType(expectedType, Nullability.NotNull) @@ -455,13 +455,12 @@ public class Converter private(val project: Project, val settings: ConverterSett return resultType } - private fun canConvertType(actual: PsiType, expected: PsiType): Boolean { + private fun needConversion(actual: PsiType, expected: PsiType): Boolean { val expectedStr = expected.getCanonicalText() val actualStr = actual.getCanonicalText() - if (expectedStr == actualStr) return false - val o1 = expectedStr == typeConversionMap[actualStr] - val o2 = actualStr == typeConversionMap[expectedStr] - return o1 == o2 + return expectedStr != actualStr && + expectedStr != typeConversionMap[actualStr] && + actualStr != typeConversionMap[expectedStr] } private val typeConversionMap: Map = mapOf( diff --git a/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt b/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt index 7eaad9cd111..bc1d61faa28 100644 --- a/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt +++ b/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt @@ -89,7 +89,8 @@ open class ExpressionVisitor(private val converter: Converter) : JavaElementVisi JavaTokenType.ANDAND, JavaTokenType.OROR -> PsiType.BOOLEAN JavaTokenType.PLUS, JavaTokenType.MINUS, JavaTokenType.ASTERISK, - JavaTokenType.DIV, JavaTokenType.PERC, JavaTokenType.LTLT, JavaTokenType.GTGT -> expression.getType() + JavaTokenType.DIV, JavaTokenType.PERC, JavaTokenType.LTLT, JavaTokenType.GTGT, + JavaTokenType.GTGTGT -> expression.getType() else -> null }