class TypePromotions {
public void byteParam(byte p1) {
}
public void shortParam(short p1) {
}
public void intParam(int p1) {
}
public void longParam(long p1) {
}
public void callingLong() {
longParam((byte)1);
longParam((short)1);
longParam(1);
longParam(1L);
}
public void callingInt() {
intParam((byte)1);
intParam((short)1);
intParam(1);
intParam(1L); // fails
}
public void callingShort() {
shortParam((byte)1);
shortParam((short)1);
shortParam(1); // fails
shortParam(1L); // fails
}
public void callingByte() {
byteParam((byte)1);
byteParam((short)1); // fails
byteParam(1); // fails
byteParam(1L); // fails
}
}
class TypePromotionsWithExtraParam {
public void byteParam(int p0, byte p1) {
}
public void shortParam(int p0, short p1) {
}
public void intParam(int p0, int p1) {
}
public void longParam(int p0, long p1) {
}
public void callingLong() {
longParam(6, (byte)1);
longParam(6, (short)1);
longParam(6, 1);
longParam(6, 1L);
}
public void callingInt() {
intParam(6, (byte)1);
intParam(6, (short)1);
intParam(6, 1);
intParam(6, 1L); // fails
}
public void callingShort() {
shortParam(6, (byte)1);
shortParam(6, (short)1);
shortParam(6, 1); // fails
shortParam(6, 1L); // fails
}
public void callingByte() {
byteParam(6, (byte)1);
byteParam(6, (short)1); // fails
byteParam(6, 1); // fails
byteParam(6, 1L); // fails
}
}