Every expression written in the XL programming language has a
compile-time type that can be deduced from the expression.
By a conversion from type
T, an expression of type
S can be treated as having the
The Java programming language defines several categories of conversions: Identity conversions, widening primitive conversions, narrowing primitive conversions, widening reference conversions, narrowing reference conversions, string conversions, and value set conversions. These conversions occur in several conversion contexts: Assignment conversion, method invocation conversion, casting conversion, string conversion, and unary and binary numeric promotion.
The XL programming language modifies the definition of widening primitive
conversions in order to allow for an implicit conversion from
and adds the conversion context
of binary floating-point promotion
(Section 8.2, “Binary Floating-Point Promotion”),
which is exclusively used for the exponentiation operator.
The widening primitive conversions of the XL programming language are the following conversions:
float, but only if this is enabled by a
corresponding compiler option.