Description
The uX types could, conceptually, allow the compiler to do optimizations based on their constraints -- for example, an Option could fit in a u64, and (later when mechanisms to make use of Copy are in place to ensure there won't be pointer to the interior; possibly coming out of rust-lang/rust#27060) a Result<u63, u63> could be too.
This can not be done in stable Rust now, and even the means to do it that are available in unstable (rustc_layout_scalar_valid_range_end
) are internal attributes never meant to become stable.
This is not an issue that would be solved quickly (unless by a possible added unstable range_optimizations
feature that could break on any nightly), but more a long-term point for visibility, and to document towards the language team the usefulness of a public way to achieve this.