3789983e89
Reviewed-by: darcy, ihse
72 lines
1.5 KiB
Java
72 lines
1.5 KiB
Java
/*
|
|
* @test /nodynamiccopyright/
|
|
* @bug 6563143 8008436 8009138
|
|
* @summary javac should issue a warning for overriding equals without hashCode
|
|
* @summary javac should not issue a warning for overriding equals without hasCode
|
|
* @summary javac, equals-hashCode warning tuning
|
|
* if hashCode has been overriden by a superclass
|
|
* @compile/ref=EqualsHashCodeWarningTest.out -Xlint:overrides -XDrawDiagnostics EqualsHashCodeWarningTest.java
|
|
*/
|
|
|
|
import java.util.Comparator;
|
|
|
|
public class EqualsHashCodeWarningTest {
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
return o == this;
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return 0;
|
|
}
|
|
|
|
public Comparator m() {
|
|
return new Comparator() {
|
|
@Override
|
|
public boolean equals(Object o) {return true;}
|
|
|
|
@Override
|
|
public int compare(Object o1, Object o2) {
|
|
return 0;
|
|
}
|
|
};
|
|
}
|
|
}
|
|
|
|
class SubClass extends EqualsHashCodeWarningTest {
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("overrides")
|
|
class DontWarnMe {
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
class DoWarnMe {
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
return o == this;
|
|
}
|
|
}
|
|
|
|
abstract class IamAbstractGetMeOutOfHere {
|
|
public boolean equals(Object o){return true;}
|
|
}
|
|
|
|
interface I {
|
|
public boolean equals(Object o);
|
|
}
|
|
|
|
enum E {
|
|
A, B
|
|
}
|
|
|
|
@interface anno {}
|