Platform-dependent types have different sizes on different target platforms, while platform-independent types have the same size on all target platforms. Assignment between platform-dependent and platform-independent integers may cause truncation on some platforms, and should be removed.
Platform-dependent integer types include:
NativeInt and NativeUintRefactor the code so that platform-dependent and platform-independent types are not assigned to each other.