Skip to content

wishlist: Allow optimization of uninhabited values #27

Open
@chrysn

Description

@chrysn

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions