From 5a13db5dc967367b9e3ec85bb5f07e65a1df09b7 Mon Sep 17 00:00:00 2001 From: Roel Spilker Date: Sun, 29 Apr 2012 22:24:59 +0200 Subject: Issue 366: don't call the getter twice, fixed for javac. --- .../resource/after-delombok/EqualsAndHashCode.java | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'test/transform/resource/after-delombok/EqualsAndHashCode.java') diff --git a/test/transform/resource/after-delombok/EqualsAndHashCode.java b/test/transform/resource/after-delombok/EqualsAndHashCode.java index e7f701e8..8f84fb22 100644 --- a/test/transform/resource/after-delombok/EqualsAndHashCode.java +++ b/test/transform/resource/after-delombok/EqualsAndHashCode.java @@ -3,6 +3,7 @@ class EqualsAndHashCode { boolean[] y; Object[] z; String a; + String b; @java.lang.Override @java.lang.SuppressWarnings("all") public boolean equals(final java.lang.Object o) { @@ -13,7 +14,12 @@ class EqualsAndHashCode { if (this.x != other.x) return false; if (!java.util.Arrays.equals(this.y, other.y)) return false; if (!java.util.Arrays.deepEquals(this.z, other.z)) return false; - if (this.a == null ? other.a != null : !this.a.equals((java.lang.Object)other.a)) return false; + final java.lang.Object this$a = this.a; + final java.lang.Object other$a = other.a; + if (this$a == null ? other$a != null : !this$a.equals(other$a)) return false; + final java.lang.Object this$b = this.b; + final java.lang.Object other$b = other.b; + if (this$b == null ? other$b != null : !this$b.equals(other$b)) return false; return true; } @java.lang.SuppressWarnings("all") @@ -28,12 +34,18 @@ class EqualsAndHashCode { result = result * PRIME + this.x; result = result * PRIME + java.util.Arrays.hashCode(this.y); result = result * PRIME + java.util.Arrays.deepHashCode(this.z); - result = result * PRIME + (this.a == null ? 0 : this.a.hashCode()); + final java.lang.Object $a = this.a; + result = result * PRIME + ($a == null ? 0 : $a.hashCode()); + final java.lang.Object $b = this.b; + result = result * PRIME + ($b == null ? 0 : $b.hashCode()); return result; } } final class EqualsAndHashCode2 { int x; + long y; + float f; + double d; @java.lang.Override @java.lang.SuppressWarnings("all") public boolean equals(final java.lang.Object o) { @@ -41,6 +53,9 @@ final class EqualsAndHashCode2 { if (!(o instanceof EqualsAndHashCode2)) return false; final EqualsAndHashCode2 other = (EqualsAndHashCode2)o; if (this.x != other.x) return false; + if (this.y != other.y) return false; + if (java.lang.Float.compare(this.f, other.f) != 0) return false; + if (java.lang.Double.compare(this.d, other.d) != 0) return false; return true; } @java.lang.Override @@ -49,6 +64,11 @@ final class EqualsAndHashCode2 { final int PRIME = 31; int result = 1; result = result * PRIME + this.x; + final long $y = this.y; + result = result * PRIME + (int)($y >>> 32 ^ $y); + result = result * PRIME + java.lang.Float.floatToIntBits(this.f); + final long $d = java.lang.Double.doubleToLongBits(this.d); + result = result * PRIME + (int)($d >>> 32 ^ $d); return result; } } -- cgit