Tested on 0.631, with no warnings in non-strict mode.
--!strict
local _v = false :: string | false -- TypeError: Cannot cast 'boolean' into 'false | string' because the types are unrelated
local _w = false :: string | boolean
local _x: string | false = false
local _y = "" :: number | "" -- TypeError: Cannot cast 'string' into '"" | number' because the types are unrelated
local _z = "" :: number | string
Tested on 0.631, with no warnings in non-strict mode.