Thu, 31 Aug 2017 15:17:03 +0800
merge
aoqi@0 | 1 | /* |
aoqi@0 | 2 | * @test /nodynamiccopyright/ |
aoqi@0 | 3 | * @bug 6563143 8008436 8009138 |
aoqi@0 | 4 | * @summary javac should issue a warning for overriding equals without hashCode |
aoqi@0 | 5 | * @summary javac should not issue a warning for overriding equals without hasCode |
aoqi@0 | 6 | * @summary javac, equals-hashCode warning tuning |
aoqi@0 | 7 | * if hashCode has been overriden by a superclass |
aoqi@0 | 8 | * @compile/ref=EqualsHashCodeWarningTest.out -Xlint:overrides -XDrawDiagnostics EqualsHashCodeWarningTest.java |
aoqi@0 | 9 | */ |
aoqi@0 | 10 | |
aoqi@0 | 11 | import java.util.Comparator; |
aoqi@0 | 12 | |
aoqi@0 | 13 | public class EqualsHashCodeWarningTest { |
aoqi@0 | 14 | @Override |
aoqi@0 | 15 | public boolean equals(Object o) { |
aoqi@0 | 16 | return o == this; |
aoqi@0 | 17 | } |
aoqi@0 | 18 | |
aoqi@0 | 19 | @Override |
aoqi@0 | 20 | public int hashCode() { |
aoqi@0 | 21 | return 0; |
aoqi@0 | 22 | } |
aoqi@0 | 23 | |
aoqi@0 | 24 | public Comparator m() { |
aoqi@0 | 25 | return new Comparator() { |
aoqi@0 | 26 | @Override |
aoqi@0 | 27 | public boolean equals(Object o) {return true;} |
aoqi@0 | 28 | |
aoqi@0 | 29 | @Override |
aoqi@0 | 30 | public int compare(Object o1, Object o2) { |
aoqi@0 | 31 | return 0; |
aoqi@0 | 32 | } |
aoqi@0 | 33 | }; |
aoqi@0 | 34 | } |
aoqi@0 | 35 | } |
aoqi@0 | 36 | |
aoqi@0 | 37 | class SubClass extends EqualsHashCodeWarningTest { |
aoqi@0 | 38 | @Override |
aoqi@0 | 39 | public boolean equals(Object o) { |
aoqi@0 | 40 | return true; |
aoqi@0 | 41 | } |
aoqi@0 | 42 | } |
aoqi@0 | 43 | |
aoqi@0 | 44 | @SuppressWarnings("overrides") |
aoqi@0 | 45 | class DontWarnMe { |
aoqi@0 | 46 | @Override |
aoqi@0 | 47 | public boolean equals(Object o) { |
aoqi@0 | 48 | return true; |
aoqi@0 | 49 | } |
aoqi@0 | 50 | } |
aoqi@0 | 51 | |
aoqi@0 | 52 | class DoWarnMe { |
aoqi@0 | 53 | @Override |
aoqi@0 | 54 | public boolean equals(Object o) { |
aoqi@0 | 55 | return o == this; |
aoqi@0 | 56 | } |
aoqi@0 | 57 | } |
aoqi@0 | 58 | |
aoqi@0 | 59 | abstract class IamAbstractGetMeOutOfHere { |
aoqi@0 | 60 | public boolean equals(Object o){return true;} |
aoqi@0 | 61 | } |
aoqi@0 | 62 | |
aoqi@0 | 63 | interface I { |
aoqi@0 | 64 | public boolean equals(Object o); |
aoqi@0 | 65 | } |
aoqi@0 | 66 | |
aoqi@0 | 67 | enum E { |
aoqi@0 | 68 | A, B |
aoqi@0 | 69 | } |
aoqi@0 | 70 | |
aoqi@0 | 71 | @interface anno {} |