Consider this code:
byte b=1; long l=1000; b += l; I would expect the last statement to require an explicit cast because, b+=l is evaluated as b = b+l and (b+l) part gives an integer. Integer cannot be assigned to byte without an explicit cast?