Type autocasting
Values of a numeric type autocast to a larger one if no precision is lost:
Expressions are casted (like in the last example above), unless the flag is passed to the compiler (see Compiler features).
Autocasting at the moment works only in two scenarios: at function calls, as shown so far, and at class/instance variable initialization. The following example shows an example of two situations for an instance variable: casting at initialization works, but casting at an assignment doesn’t: