The exact conversion from integers to floating point types succeeds even if precision is lost. Example:
The reason is a wrong preprocessor condition at FloatingPointTypes.swift.gyb:L840:
which means that the test it not performed if the integer has more bits than the mantissa of the floating point type.
It should be if srcBits >= SignificandBitCount: or if srcBits > SignificandBitCount: instead.