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