mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
generate equals: compare primitive and enums without boxing (IDEA-139622)
This commit is contained in:
@@ -37,3 +37,13 @@ if(this == $paramName) return true;
|
||||
if($paramName == null || getClass() != ${paramName}.getClass()) return false;
|
||||
#end
|
||||
#end
|
||||
#macro(addPrimitiveFieldComparisonCondition $field)
|
||||
$field.accessor != ${classInstanceName}.$field.accessor ##
|
||||
#end
|
||||
#macro(addDoubleFieldComparisonCondition $field)
|
||||
#if ($field.double)
|
||||
Double.compare(${classInstanceName}.$field.accessor, $field.accessor) != 0 ##
|
||||
#else
|
||||
Float.compare(${classInstanceName}.$field.accessor, $field.accessor) != 0 ##
|
||||
#end
|
||||
#end
|
||||
|
||||
@@ -13,7 +13,17 @@ Object $paramName){
|
||||
&&
|
||||
#end
|
||||
#set($i = $i + 1)
|
||||
#if ($field.primitive)
|
||||
#if ($field.double || $field.float)
|
||||
#addDoubleFieldComparisonCondition($field) ##
|
||||
#else
|
||||
#addPrimitiveFieldComparisonCondition($field) ##
|
||||
#end
|
||||
#elseif ($field.enum)
|
||||
#addPrimitiveFieldComparisonCondition($field) ##
|
||||
#else
|
||||
com.google.common.base.Objects.equal($field.accessor, ${classInstanceName}.$field.accessor)##
|
||||
#end
|
||||
#end
|
||||
;
|
||||
}
|
||||
@@ -13,7 +13,17 @@ Object $paramName){
|
||||
&&
|
||||
#end
|
||||
#set($i = $i + 1)
|
||||
#if ($field.primitive)
|
||||
#if ($field.double || $field.float)
|
||||
#addDoubleFieldComparisonCondition($field) ##
|
||||
#else
|
||||
#addPrimitiveFieldComparisonCondition($field) ##
|
||||
#end
|
||||
#elseif ($field.enum)
|
||||
#addPrimitiveFieldComparisonCondition($field) ##
|
||||
#else
|
||||
java.util.Objects.equals($field.accessor, ${classInstanceName}.$field.accessor)##
|
||||
#end
|
||||
#end
|
||||
;
|
||||
}
|
||||
+6
-6
@@ -34,12 +34,12 @@ 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(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) &&
|
||||
return a7 != a.a7 &&
|
||||
a8 != a.a8 &&
|
||||
a9 != a.a9 &&
|
||||
a10 != a.a10 &&
|
||||
Float.compare(a.a11, a11) != 0 &&
|
||||
Double.compare(a.a12, a12) != 0 &&
|
||||
com.google.common.base.Objects.equal(a1, a.a1) &&
|
||||
com.google.common.base.Objects.equal(a2, a.a2) &&
|
||||
com.google.common.base.Objects.equal(a3, a.a3) &&
|
||||
|
||||
Reference in New Issue
Block a user