Tue, 26 Feb 2013 09:04:19 +0000
8008436: javac should not issue a warning for overriding equals without hasCode if hashCode has been overriden by a superclass
Reviewed-by: jjg, mcimadamore
vromero@1588 | 1 | /* |
vromero@1588 | 2 | * @test /nodynamiccopyright/ |
vromero@1607 | 3 | * @bug 6563143 8008436 |
vromero@1588 | 4 | * @summary javac should issue a warning for overriding equals without hashCode |
vromero@1607 | 5 | * @summary javac should not issue a warning for overriding equals without hasCode |
vromero@1607 | 6 | * if hashCode has been overriden by a superclass |
vromero@1588 | 7 | * @compile/ref=OverridesEqualsButNotHashCodeTest.out -Xlint:overrides -XDrawDiagnostics OverridesEqualsButNotHashCodeTest.java |
vromero@1588 | 8 | */ |
vromero@1588 | 9 | |
vromero@1588 | 10 | public class OverridesEqualsButNotHashCodeTest { |
vromero@1588 | 11 | @Override |
vromero@1588 | 12 | public boolean equals(Object o) { |
vromero@1588 | 13 | return o == this; |
vromero@1588 | 14 | } |
vromero@1607 | 15 | |
vromero@1607 | 16 | @Override |
vromero@1607 | 17 | public int hashCode() { |
vromero@1607 | 18 | return 0; |
vromero@1607 | 19 | } |
vromero@1607 | 20 | } |
vromero@1607 | 21 | |
vromero@1607 | 22 | class SubClass extends OverridesEqualsButNotHashCodeTest { |
vromero@1607 | 23 | @Override |
vromero@1607 | 24 | public boolean equals(Object o) { |
vromero@1607 | 25 | return o == this; |
vromero@1607 | 26 | } |
vromero@1588 | 27 | } |
vromero@1588 | 28 | |
vromero@1607 | 29 | @SuppressWarnings("overrides") |
vromero@1607 | 30 | class NoWarning { |
vromero@1588 | 31 | @Override |
vromero@1588 | 32 | public boolean equals(Object o) { |
vromero@1588 | 33 | return o == this; |
vromero@1588 | 34 | } |
vromero@1588 | 35 | } |
vromero@1588 | 36 | |
vromero@1607 | 37 | class DoWarnMe { |
vromero@1607 | 38 | @Override |
vromero@1607 | 39 | public boolean equals(Object o) { |
vromero@1607 | 40 | return o == this; |
vromero@1607 | 41 | } |
vromero@1607 | 42 | } |