One thing that comes to my mind right now why int i = 5l; is not possible, because the range of long is bigger than int range and thus putting long value in variable that of int could not be possible.
int range: -2147483648… 2147483648, and
long range: -2^63… 2^63-1