Hi Areca!
It's normal not to give a compile error because 100 can be converted to a byte.
Bytes numbers are represented on 8 bits=> means a byte number is between -2^7..2^7 - 1 (x^y means x multiplied with x for y times) = -128..127.
Because 100 can be represented on a byte (-128<100<127) the compiler gives no error and converts the int number 100 to the byte number 100.
If you tried to convert an int number greater than 127 or less than -128 (let's say 144) to a byte number, the compiler will give you an error.
The code example above gives you an error compile.
So, the final modifier has nothing to do with the conversion.
I hope this answer lets you.
Do let me know if you have troubles understanding it.