class A implements Comparable<A> {
@Override
public int compareTo(A a) {
return Integer.MIN_VALUE; // Noncompliant [[sc=12;ec=29]] {{Simply return -1}}
}
public int compareTo() {
return Short.MIN_VALUE; // Compliant
}
public int getMinValue() {
return Integer.MIN_VALUE; // Compliant
}
public int compareTo(int a) {
return -1; // Compliant
}
public boolean compareTo(Boolean a) {
return a; // Compliant
}
public Long compareTo(Long a) {
return Long.MIN_VALUE; // Compliant
}
@Override
public int compareTo(Short a) {
return Integer.MAX_VALUE; // Compliant
}
}
class B implements Comparable<B> {
@Override
public int compareTo(B b) {
class C implements Comparable<C> {
@Override
public int compareTo(C c) {
class D implements Comparable<D> {
@Override
public int compareTo(D d) {
return Integer.MIN_VALUE; // Noncompliant
}
}
return Integer.MIN_VALUE; // Noncompliant
}
}
return Integer.MIN_VALUE; // Noncompliant
}
}
class E implements Comparable<E> {
@Override
public int compareTo(E e) {
return 0; // Compliant
}
}
class F implements Comparable<F> {
@Override
public int compareTo(F e) {
return Integer.MAX_VALUE; // Compliant
}
}
class G implements Comparable<G> {
@Override
public int compareTo(G e) {
return Short.MAX_VALUE; // Compliant
}
}