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 {}
|