Skip to content

Commit 0943853

Browse files
committed
better Equal.equals0
- use F0 instead of F1 - use boolean operator instead of ternary conditional operator
1 parent 91dc690 commit 0943853

File tree

19 files changed

+21
-22
lines changed

19 files changed

+21
-22
lines changed

core/src/main/java/fj/Equal.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package fj;
22

33
import static fj.Function.curry;
4-
import static fj.Unit.unit;
54

65
import fj.data.*;
76
import fj.data.hlist.HList;
@@ -562,7 +561,7 @@ public static Option<Boolean> shallowEqualsO(Object o1, Object o2) {
562561
*/
563562
@SuppressWarnings("unchecked")
564563
public static <A> boolean equals0(final java.lang.Class<? super A> clazz, final A self, final Object other, final Equal<A> equal) {
565-
return self == other ? true : clazz.isInstance(other) ? equal.eq(self, (A) other) : false;
564+
return self == other || clazz.isInstance(other) && equal.eq(self, (A) other);
566565
}
567566

568567
/**
@@ -575,8 +574,8 @@ public static <A> boolean equals0(final java.lang.Class<? super A> clazz, final
575574
* @return true if self and other are equal
576575
*/
577576
@SuppressWarnings("unchecked")
578-
public static <A> boolean equals0(final java.lang.Class<? super A> clazz, final A self, final Object other, final F<Unit, Equal<A>> equal) {
579-
return self == other ? true : clazz.isInstance(other) ? equal.f(unit()).eq(self, (A) other) : false;
577+
public static <A> boolean equals0(final java.lang.Class<? super A> clazz, final A self, final Object other, final F0<Equal<A>> equal) {
578+
return self == other || clazz.isInstance(other) && equal.f().eq(self, (A) other);
580579
}
581580

582581
}

core/src/main/java/fj/P1.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ public String toString() {
256256

257257
@Override
258258
public boolean equals(Object other) {
259-
return Equal.equals0(P1.class, this, other, u -> Equal.p1Equal(Equal.<A>anyEqual()));
259+
return Equal.equals0(P1.class, this, other, () -> Equal.p1Equal(Equal.<A>anyEqual()));
260260
}
261261

262262
@Override

core/src/main/java/fj/P2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public abstract class P2<A, B> {
2626

2727
@Override
2828
public boolean equals(Object other) {
29-
return Equal.equals0(P2.class, this, other, u -> Equal.p2Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual()));
29+
return Equal.equals0(P2.class, this, other, () -> Equal.p2Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual()));
3030
}
3131

3232
@Override

core/src/main/java/fj/P3.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ public String toString() {
193193
@Override
194194
public boolean equals(Object other) {
195195
return Equal.equals0(P3.class, this, other,
196-
u -> Equal.p3Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual()));
196+
() -> Equal.p3Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual()));
197197
}
198198

199199
@Override

core/src/main/java/fj/P4.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ public String toString() {
266266
@Override
267267
public boolean equals(Object other) {
268268
return Equal.equals0(P4.class, this, other,
269-
u -> Equal.p4Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual()));
269+
() -> Equal.p4Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual()));
270270
}
271271

272272
@Override

core/src/main/java/fj/P5.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ public String toString() {
345345
@Override
346346
public boolean equals(Object other) {
347347
return Equal.equals0(P5.class, this, other,
348-
u -> Equal.p5Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual(), Equal.<E>anyEqual()));
348+
() -> Equal.p5Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual(), Equal.<E>anyEqual()));
349349
}
350350

351351
@Override

core/src/main/java/fj/P6.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ public String toString() {
436436
@Override
437437
public boolean equals(Object other) {
438438
return Equal.equals0(P6.class, this, other,
439-
u -> Equal.p6Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual(), Equal.<E>anyEqual(), Equal.<F>anyEqual()));
439+
() -> Equal.p6Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual(), Equal.<E>anyEqual(), Equal.<F>anyEqual()));
440440
}
441441

442442
@Override

core/src/main/java/fj/P7.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ public String toString() {
530530
@Override
531531
public boolean equals(Object other) {
532532
return Equal.equals0(P7.class, this, other,
533-
u -> Equal.p7Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual(), Equal.<E>anyEqual(), Equal.<F>anyEqual(), Equal.<G>anyEqual()));
533+
() -> Equal.p7Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual(), Equal.<E>anyEqual(), Equal.<F>anyEqual(), Equal.<G>anyEqual()));
534534
}
535535

536536
@Override

core/src/main/java/fj/P8.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ public String toString() {
636636
@Override
637637
public boolean equals(Object other) {
638638
return Equal.equals0(P8.class, this, other,
639-
u -> Equal.p8Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual(), Equal.<E>anyEqual(), Equal.<F>anyEqual(), Equal.<G>anyEqual(), Equal.<H>anyEqual()));
639+
() -> Equal.p8Equal(Equal.<A>anyEqual(), Equal.<B>anyEqual(), Equal.<C>anyEqual(), Equal.<D>anyEqual(), Equal.<E>anyEqual(), Equal.<F>anyEqual(), Equal.<G>anyEqual(), Equal.<H>anyEqual()));
640640
}
641641

642642
@Override

core/src/main/java/fj/data/Array.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,7 @@ public boolean exists(final F<A, Boolean> f) {
682682

683683
@Override
684684
public boolean equals(Object o) {
685-
return Equal.equals0(Array.class, this, o, u -> Equal.arrayEqual(Equal.<A>anyEqual()));
685+
return Equal.equals0(Array.class, this, o, () -> Equal.arrayEqual(Equal.<A>anyEqual()));
686686
}
687687

688688
/**

0 commit comments

Comments
 (0)