blob: be39f2201b8f64bbcc02565aa94fa88bbd1b4232 [file] [log] [blame]
// Test case for issue 3668:
// https://github.com/typetools/checker-framework/issues/3668
import org.checkerframework.checker.signedness.qual.*;
public class ObjectCasts {
Integer castObjectToInteger1(Object o) {
// :: error: (return)
return (Integer) o;
}
Integer castObjectToInteger2(@Unsigned Object o) {
// :: error: (return)
return (Integer) o;
}
Integer castObjectToInteger3(@Signed Object o) {
return (Integer) o;
}
@Signed Integer castObjectToInteger4(Object o) {
// :: error: (return)
return (Integer) o;
}
@Signed Integer castObjectToInteger5(@Unsigned Object o) {
// :: error: (return)
return (Integer) o;
}
@Signed Integer castObjectToInteger6(@Signed Object o) {
return (Integer) o;
}
@Unsigned Integer castObjectToInteger7(Object o) {
// :: error: (return)
return (Integer) o;
}
@Unsigned Integer castObjectToInteger8(@Unsigned Object o) {
return (Integer) o;
}
@Unsigned Integer castObjectToInteger9(@Signed Object o) {
// :: error: (return)
return (Integer) o;
}
Object castIntegerToObject1(Integer o) {
return (Object) o;
}
Object castIntegerToObject2(@Unsigned Integer o) {
return (Object) o;
}
Object castIntegerToObject3(@Signed Integer o) {
return (Object) o;
}
@Signed Object castIntegerToObject4(Integer o) {
return (Object) o;
}
@Signed Object castIntegerToObject5(@Unsigned Integer o) {
// :: error: (return)
return (Object) o;
}
@Signed Object castIntegerToObject6(@Signed Integer o) {
return (Object) o;
}
@Unsigned Object castIntegerToObject7(Integer o) {
// :: error: (return)
return (Object) o;
}
@Unsigned Object castIntegerToObject8(@Unsigned Integer o) {
return (Object) o;
}
@Unsigned Object castIntegerToObject9(@Signed Integer o) {
// :: error: (return)
return (Object) o;
}
void castObjectToBoxedVariants() {
byte b1 = 1;
short s1 = 1;
int i1 = 1;
long l1 = 1;
Object[] obj = new Object[] {b1, s1, i1, l1};
// :: error: (argument)
byteParameter((Byte) obj[0]);
// :: error: (argument)
shortParameter((Short) obj[1]);
// :: error: (argument)
integralParameter((Integer) obj[2]);
// :: error: (argument)
longParameter((Long) obj[3]);
}
void byteParameter(byte b) {}
void shortParameter(short s) {}
void integralParameter(int i) {}
void longParameter(long l) {}
}