mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 13:20:53 +07:00
generate equals/hashCode: sort primitive fields up and leave natural ordering (IDEA-21339)
This commit is contained in:
@@ -24,6 +24,7 @@ import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.util.MethodSignature;
|
||||
import com.intellij.psi.util.MethodSignatureUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
@@ -237,10 +238,7 @@ public class GenerateEqualsHelper implements Runnable {
|
||||
public int compare(PsiField f1, PsiField f2) {
|
||||
if (f1.getType() instanceof PsiPrimitiveType && !(f2.getType() instanceof PsiPrimitiveType)) return -1;
|
||||
if (!(f1.getType() instanceof PsiPrimitiveType) && f2.getType() instanceof PsiPrimitiveType) return 1;
|
||||
final String name1 = f1.getName();
|
||||
final String name2 = f2.getName();
|
||||
assert name1 != null && name2 != null;
|
||||
return name1.compareTo(name2);
|
||||
return PsiUtilCore.compareElementsByPosition(f1, f2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@ class Test {
|
||||
|
||||
final Test test = (Test) o;
|
||||
|
||||
// Compare nested arrays - values of myIIs here
|
||||
if (!Arrays.equals(myIs, test.myIs)) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(myOs, test.myOs)) return false;
|
||||
// Compare nested arrays - values of myIIs here
|
||||
if (!Arrays.equals(myIs, test.myIs)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -11,10 +11,10 @@ class Test {
|
||||
|
||||
final Test test = (Test) o;
|
||||
|
||||
if (!Arrays.deepEquals(myIIs, test.myIIs)) return false;
|
||||
if (!Arrays.equals(myIs, test.myIs)) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(myOs, test.myOs)) return false;
|
||||
if (!Arrays.deepEquals(myIIs, test.myIIs)) return false;
|
||||
if (!Arrays.equals(myIs, test.myIs)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -26,22 +26,22 @@ class A {
|
||||
|
||||
final A a = (A) o;
|
||||
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
if (Double.compare(a.a12, a12) != 0) return false;
|
||||
if (a7 != a.a7) return false;
|
||||
if (a8 != a.a8) return false;
|
||||
if (a9 != a.a9) return false;
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
if (Double.compare(a.a12, a12) != 0) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a1, a.a1)) return false;
|
||||
if (a13 != null ? !a13.equals(a.a13) : a.a13 != null) return false;
|
||||
if (a14 != null ? !a14.equals(a.a14) : a.a14 != null) return false;
|
||||
if (!Arrays.deepEquals(a2, a.a2)) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a3, a.a3)) return false;
|
||||
if (!Arrays.deepEquals(a4, a.a4)) return false;
|
||||
if (!Arrays.equals(a5, a.a5)) return false;
|
||||
if (!Arrays.deepEquals(a6, a.a6)) return false;
|
||||
if (a13 != null ? !a13.equals(a.a13) : a.a13 != null) return false;
|
||||
if (a14 != null ? !a14.equals(a.a14) : a.a14 != null) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -26,22 +26,22 @@ class A {
|
||||
|
||||
final A a = (A) o;
|
||||
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
if (Double.compare(a.a12, a12) != 0) return false;
|
||||
if (a7 != a.a7) return false;
|
||||
if (a8 != a.a8) return false;
|
||||
if (a9 != a.a9) return false;
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
if (Double.compare(a.a12, a12) != 0) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a1, a.a1)) return false;
|
||||
if (!a13.equals(a.a13)) return false;
|
||||
if (!a14.equals(a.a14)) return false;
|
||||
if (!Arrays.deepEquals(a2, a.a2)) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a3, a.a3)) return false;
|
||||
if (!Arrays.deepEquals(a4, a.a4)) return false;
|
||||
if (!Arrays.equals(a5, a.a5)) return false;
|
||||
if (!Arrays.deepEquals(a6, a.a6)) return false;
|
||||
if (!a13.equals(a.a13)) return false;
|
||||
if (!a14.equals(a.a14)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -74,22 +74,22 @@ class A {
|
||||
|
||||
final A a = (A) o;
|
||||
|
||||
if (getA10() != a.getA10()) return false;
|
||||
if (Float.compare(a.getA11(), getA11()) != 0) return false;
|
||||
if (Double.compare(a.getA12(), getA12()) != 0) return false;
|
||||
if (getA7() != a.getA7()) return false;
|
||||
if (getA8() != a.getA8()) return false;
|
||||
if (getA9() != a.getA9()) return false;
|
||||
if (getA10() != a.getA10()) return false;
|
||||
if (Float.compare(a.getA11(), getA11()) != 0) return false;
|
||||
if (Double.compare(a.getA12(), getA12()) != 0) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(getA1(), a.getA1())) return false;
|
||||
if (a13 != null ? !a13.equals(a.a13) : a.a13 != null) return false;
|
||||
if (a14 != null ? !a14.equals(a.a14) : a.a14 != null) return false;
|
||||
if (!Arrays.deepEquals(getA2(), a.getA2())) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(getA3(), a.getA3())) return false;
|
||||
if (!Arrays.deepEquals(getA4(), a.getA4())) return false;
|
||||
if (!Arrays.equals(getA5(), a.getA5())) return false;
|
||||
if (!Arrays.deepEquals(getA6(), a.getA6())) return false;
|
||||
if (a13 != null ? !a13.equals(a.a13) : a.a13 != null) return false;
|
||||
if (a14 != null ? !a14.equals(a.a14) : a.a14 != null) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -25,21 +25,21 @@ class A {
|
||||
|
||||
final A a = (A) o;
|
||||
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
if (a7 != a.a7) return false;
|
||||
if (a8 != a.a8) return false;
|
||||
if (a9 != a.a9) return false;
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a1, a.a1)) return false;
|
||||
if (!a13.equals(a.a13)) return false;
|
||||
if (!a14.equals(a.a14)) return false;
|
||||
if (!Arrays.deepEquals(a2, a.a2)) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a3, a.a3)) return false;
|
||||
if (!Arrays.deepEquals(a4, a.a4)) return false;
|
||||
if (!Arrays.equals(a5, a.a5)) return false;
|
||||
if (!Arrays.deepEquals(a6, a.a6)) return false;
|
||||
if (!a13.equals(a.a13)) return false;
|
||||
if (!a14.equals(a.a14)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -38,22 +38,22 @@ class A extends B {
|
||||
|
||||
final A a = (A) o;
|
||||
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
if (Double.compare(a.a12, a12) != 0) return false;
|
||||
if (a7 != a.a7) return false;
|
||||
if (a8 != a.a8) return false;
|
||||
if (a9 != a.a9) return false;
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
if (Double.compare(a.a12, a12) != 0) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a1, a.a1)) return false;
|
||||
if (!a13.equals(a.a13)) return false;
|
||||
if (!a14.equals(a.a14)) return false;
|
||||
if (!Arrays.deepEquals(a2, a.a2)) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a3, a.a3)) return false;
|
||||
if (!Arrays.deepEquals(a4, a.a4)) return false;
|
||||
if (!Arrays.equals(a5, a.a5)) return false;
|
||||
if (!Arrays.deepEquals(a6, a.a6)) return false;
|
||||
if (!a13.equals(a.a13)) return false;
|
||||
if (!a14.equals(a.a14)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -38,20 +38,20 @@ class A extends B {
|
||||
|
||||
return new org.apache.commons.lang3.builder.EqualsBuilder()
|
||||
.appendSuper(super.equals(o))
|
||||
.append(a10, a.a10)
|
||||
.append(a11, a.a11)
|
||||
.append(a12, a.a12)
|
||||
.append(a7, a.a7)
|
||||
.append(a8, a.a8)
|
||||
.append(a9, a.a9)
|
||||
.append(a10, a.a10)
|
||||
.append(a11, a.a11)
|
||||
.append(a12, a.a12)
|
||||
.append(a1, a.a1)
|
||||
.append(a13, a.a13)
|
||||
.append(a14, a.a14)
|
||||
.append(a2, a.a2)
|
||||
.append(a3, a.a3)
|
||||
.append(a4, a.a4)
|
||||
.append(a5, a.a5)
|
||||
.append(a6, a.a6)
|
||||
.append(a13, a.a13)
|
||||
.append(a14, a.a14)
|
||||
.isEquals();
|
||||
}
|
||||
|
||||
|
||||
@@ -36,20 +36,20 @@ class A extends B {
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
if (!super.equals(o)) return false;
|
||||
final A a = (A) o;
|
||||
return com.google.common.base.Objects.equal(a10, a.a10) &&
|
||||
com.google.common.base.Objects.equal(a11, a.a11) &&
|
||||
com.google.common.base.Objects.equal(a12, a.a12) &&
|
||||
com.google.common.base.Objects.equal(a7, a.a7) &&
|
||||
return com.google.common.base.Objects.equal(a7, a.a7) &&
|
||||
com.google.common.base.Objects.equal(a8, a.a8) &&
|
||||
com.google.common.base.Objects.equal(a9, a.a9) &&
|
||||
com.google.common.base.Objects.equal(a10, a.a10) &&
|
||||
com.google.common.base.Objects.equal(a11, a.a11) &&
|
||||
com.google.common.base.Objects.equal(a12, a.a12) &&
|
||||
Arrays.equals(a1, a.a1) &&
|
||||
com.google.common.base.Objects.equal(a13, a.a13) &&
|
||||
com.google.common.base.Objects.equal(a14, a.a14) &&
|
||||
Arrays.deepEquals(a2, a.a2) &&
|
||||
Arrays.equals(a3, a.a3) &&
|
||||
Arrays.deepEquals(a4, a.a4) &&
|
||||
Arrays.equals(a5, a.a5) &&
|
||||
Arrays.deepEquals(a6, a.a6);
|
||||
Arrays.deepEquals(a6, a.a6) &&
|
||||
com.google.common.base.Objects.equal(a13, a.a13) &&
|
||||
com.google.common.base.Objects.equal(a14, a.a14);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -10,8 +10,8 @@ class Test {
|
||||
|
||||
final Test test = (Test) o;
|
||||
|
||||
if (Double.compare(test.c, c) != 0) return false;
|
||||
if (i != test.i) return false;
|
||||
if (Double.compare(test.c, c) != 0) return false;
|
||||
if (!a.equals(test.a)) return false;
|
||||
if (b != null ? !b.equals(test.b) : test.b != null) return false;
|
||||
|
||||
|
||||
@@ -26,15 +26,14 @@ class A {
|
||||
|
||||
final A a = (A) o;
|
||||
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
if (a7 != a.a7) return false;
|
||||
if (a8 != a.a8) return false;
|
||||
if (a9 != a.a9) return false;
|
||||
if (a10 != a.a10) return false;
|
||||
if (Float.compare(a.a11, a11) != 0) return false;
|
||||
if (Double.compare(a.temp, temp) != 0) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a1, a.a1)) return false;
|
||||
if (!a14.equals(a.a14)) return false;
|
||||
if (!Arrays.deepEquals(a2, a.a2)) return false;
|
||||
// Probably incorrect - comparing Object[] arrays with Arrays.equals
|
||||
if (!Arrays.equals(a3, a.a3)) return false;
|
||||
@@ -42,6 +41,7 @@ class A {
|
||||
if (!Arrays.equals(a5, a.a5)) return false;
|
||||
if (!Arrays.deepEquals(a6, a.a6)) return false;
|
||||
if (!result.equals(a.result)) return false;
|
||||
if (!a14.equals(a.a14)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -10,8 +10,8 @@ public class Test {
|
||||
final Test test = (Test) o;
|
||||
|
||||
if (f != test.f) return false;
|
||||
if (h != test.h) return false;
|
||||
if (j != test.j) return false;
|
||||
if (h != test.h) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user