From 0560ba792984083cd422f48cf56bea0f037dd3de Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Mon, 13 Nov 2017 15:06:28 +0300 Subject: [PATCH] KT-19943: Remove redundant type conversions in J2kPostProcessing Don't remove them in converter itself --- .../kotlin/idea/j2k/J2kPostProcessings.kt | 1 + .../jetbrains/kotlin/j2k/ExpressionConverter.kt | 14 -------------- j2k/testData/fileOrElement/issues/kt-543-boxed.kt | 2 +- j2k/testData/fileOrElement/issues/kt-851.kt | 2 +- .../methodCallExpression/stringMethods.kt | 2 +- 5 files changed, 4 insertions(+), 17 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/j2k/J2kPostProcessings.kt b/idea/src/org/jetbrains/kotlin/idea/j2k/J2kPostProcessings.kt index b002f59c985..0f28aedb396 100644 --- a/idea/src/org/jetbrains/kotlin/idea/j2k/J2kPostProcessings.kt +++ b/idea/src/org/jetbrains/kotlin/idea/j2k/J2kPostProcessings.kt @@ -99,6 +99,7 @@ object J2KPostProcessingRegistrar { registerIntentionBasedProcessing(RemoveUnnecessaryParenthesesIntention()) registerIntentionBasedProcessing(DestructureIntention()) registerIntentionBasedProcessing(SimplifyAssertNotNullIntention()) + registerIntentionBasedProcessing(RemoveRedundantCallsOfConversionMethodsIntention()) registerDiagnosticBasedProcessing(Errors.USELESS_CAST) { element, _ -> val expression = RemoveUselessCastFix.invoke(element) diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt index 772d54dcc5e..febaac2b6b5 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt @@ -449,10 +449,6 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter { val data = SpecialMethod.ConvertCallData(qualifier, arguments.asList(), typeArguments, dot, lPar, rPar, codeConverter) val converted = specialMethod.convertCall(data) if (converted != null) { - qualifier?.type?.let { - if (canRemoveSpecialMethod(specialMethod, it)) return - } - result = converted return } @@ -472,16 +468,6 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter { methodExpression.assignNoPrototype() } - private fun canRemoveSpecialMethod(specialMethod: SpecialMethod, psiType: PsiType): Boolean = when { - specialMethod == SpecialMethod.NUMBER_BYTE_VALUE && psiType.canonicalText == "java.lang.Byte" -> true - specialMethod == SpecialMethod.NUMBER_SHORT_VALUE && psiType.canonicalText == "java.lang.Short" -> true - specialMethod == SpecialMethod.NUMBER_INT_VALUE && psiType.canonicalText == "java.lang.Integer" -> true - specialMethod == SpecialMethod.NUMBER_LONG_VALUE && psiType.canonicalText == "java.lang.Long" -> true - specialMethod == SpecialMethod.NUMBER_FLOAT_VALUE && psiType.canonicalText == "java.lang.Float" -> true - specialMethod == SpecialMethod.NUMBER_DOUBLE_VALUE && psiType.canonicalText == "java.lang.Double" -> true - else -> false - } - private fun KtLightMethod.isKotlinExtensionFunction(): Boolean { val origin = this.kotlinOrigin if (origin != null) return origin.isExtensionDeclaration() diff --git a/j2k/testData/fileOrElement/issues/kt-543-boxed.kt b/j2k/testData/fileOrElement/issues/kt-543-boxed.kt index 3334d1aa2cb..cd4e311cf4b 100644 --- a/j2k/testData/fileOrElement/issues/kt-543-boxed.kt +++ b/j2k/testData/fileOrElement/issues/kt-543-boxed.kt @@ -8,6 +8,6 @@ internal class Test { putInt(b.toInt()) val b2 = 10 - putInt(b2.toInt()) + putInt(b2) } } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-851.kt b/j2k/testData/fileOrElement/issues/kt-851.kt index 2a79008b988..6753801ab96 100644 --- a/j2k/testData/fileOrElement/issues/kt-851.kt +++ b/j2k/testData/fileOrElement/issues/kt-851.kt @@ -3,6 +3,6 @@ internal class Test { fun test() { val b = 10 - putInt(b.toInt()) + putInt(b) } } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/methodCallExpression/stringMethods.kt b/j2k/testData/fileOrElement/methodCallExpression/stringMethods.kt index f5d8407b6d3..a153c7bcd6a 100644 --- a/j2k/testData/fileOrElement/methodCallExpression/stringMethods.kt +++ b/j2k/testData/fileOrElement/methodCallExpression/stringMethods.kt @@ -60,7 +60,7 @@ internal class A { s.toUpperCase() s.toUpperCase(Locale.FRENCH) - s.toString() + s s.toCharArray() }