Я пытаюсь инициализировать Float или Double с результатом целочисленной операции сдвига битов. Переданный параметр является целочисленным литералом, смещенным на беззнаковый байт. Насколько я понимаю вывод типа Swift, этот параметр должен иметь тип Int. Однако результирующее значение с плавающей запятой равно 0,0. Как ни странно, проблема исчезла, как только я поместил выражение параметра в скобки.
let someByte = UInt8(16)
print(Double(1 << someByte)) //Prints "0.0" ?!
print(Double((1 << someByte))) //Prints "65536.0"