Fixed KT-5339 J2K: convert Objects.equals to == and !=
Mock JDK regenerated to add java.util.Objects #KT-5339 Fixed
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -252,6 +252,7 @@ public class GenerateMockJdk {
|
|||||||
"java/util/Properties.class",
|
"java/util/Properties.class",
|
||||||
"java/util/Random.class",
|
"java/util/Random.class",
|
||||||
"java/util/RandomAccess.class",
|
"java/util/RandomAccess.class",
|
||||||
|
"java/util/Objects.class",
|
||||||
"java/util/Set.class",
|
"java/util/Set.class",
|
||||||
"java/util/SortedMap.class",
|
"java/util/SortedMap.class",
|
||||||
"java/util/SortedSet.class",
|
"java/util/SortedSet.class",
|
||||||
|
|||||||
@@ -235,6 +235,11 @@ open class ExpressionVisitor(private val converter: Converter) : JavaElementVisi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (target is PsiMethod && isObjectsEquals(target) && arguments.size == 2) {
|
||||||
|
result = BinaryExpression(converter.convertExpression(arguments[0]), converter.convertExpression(arguments[1]), "==")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
result = MethodCallExpression(converter.convertExpression(methodExpr),
|
result = MethodCallExpression(converter.convertExpression(methodExpr),
|
||||||
convertArguments(expression),
|
convertArguments(expression),
|
||||||
typeArguments,
|
typeArguments,
|
||||||
@@ -247,6 +252,12 @@ open class ExpressionVisitor(private val converter: Converter) : JavaElementVisi
|
|||||||
method.getParameterList().getParameters().single().getType().getCanonicalText() == JAVA_LANG_OBJECT
|
method.getParameterList().getParameters().single().getType().getCanonicalText() == JAVA_LANG_OBJECT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun isObjectsEquals(method: PsiMethod): Boolean {
|
||||||
|
return method.getName() == "equals" &&
|
||||||
|
method.getParameterList().getParameters().size == 2 &&
|
||||||
|
method.getContainingClass()?.getQualifiedName() == "java.util.Objects"
|
||||||
|
}
|
||||||
|
|
||||||
override fun visitNewExpression(expression: PsiNewExpression) {
|
override fun visitNewExpression(expression: PsiNewExpression) {
|
||||||
if (expression.getArrayInitializer() != null) {
|
if (expression.getArrayInitializer() != null) {
|
||||||
result = converter.convertExpression(expression.getArrayInitializer())
|
result = converter.convertExpression(expression.getArrayInitializer())
|
||||||
|
|||||||
@@ -1146,6 +1146,11 @@ public class JavaToKotlinConverterTestGenerated extends AbstractJavaToKotlinConv
|
|||||||
doTest("j2k/tests/testData/ast/equals/Equals4.java");
|
doTest("j2k/tests/testData/ast/equals/Equals4.java");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ObjectsEquals.java")
|
||||||
|
public void testObjectsEquals() throws Exception {
|
||||||
|
doTest("j2k/tests/testData/ast/equals/ObjectsEquals.java");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("j2k/tests/testData/ast/field")
|
@TestMetadata("j2k/tests/testData/ast/field")
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
//file
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
interface I {
|
||||||
|
}
|
||||||
|
|
||||||
|
class C{
|
||||||
|
boolean foo1(I i1, I i2) {
|
||||||
|
return Objects.equals(i1, i2))
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean foo2(I i1, I i2) {
|
||||||
|
return !java.util.Objects.equals(i1, i2)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import java.util.Objects
|
||||||
|
|
||||||
|
trait I
|
||||||
|
|
||||||
|
class C {
|
||||||
|
fun foo1(i1: I, i2: I): Boolean {
|
||||||
|
return i1 == i2
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo2(i1: I, i2: I): Boolean {
|
||||||
|
return i1 != i2
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user