Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: Remove the cast module #14069

Merged
merged 1 commit into from
May 11, 2014
Merged

Commits on May 11, 2014

  1. core: Remove the cast module

    This commit revisits the `cast` module in libcore and libstd, and scrutinizes
    all functions inside of it. The result was to remove the `cast` module entirely,
    folding all functionality into the `mem` module. Specifically, this is the fate
    of each function in the `cast` module.
    
    * transmute - This function was moved to `mem`, but it is now marked as
                  #[unstable]. This is due to planned changes to the `transmute`
                  function and how it can be invoked (see the #[unstable] comment).
                  For more information, see RFC 5 and rust-lang#12898
    
    * transmute_copy - This function was moved to `mem`, with clarification that is
                       is not an error to invoke it with T/U that are different
                       sizes, but rather that it is strongly discouraged. This
                       function is now #[stable]
    
    * forget - This function was moved to `mem` and marked #[stable]
    
    * bump_box_refcount - This function was removed due to the deprecation of
                          managed boxes as well as its questionable utility.
    
    * transmute_mut - This function was previously deprecated, and removed as part
                      of this commit.
    
    * transmute_mut_unsafe - This function doesn't serve much of a purpose when it
                             can be achieved with an `as` in safe code, so it was
                             removed.
    
    * transmute_lifetime - This function was removed because it is likely a strong
                           indication that code is incorrect in the first place.
    
    * transmute_mut_lifetime - This function was removed for the same reasons as
                               `transmute_lifetime`
    
    * copy_lifetime - This function was moved to `mem`, but it is marked
                      `#[unstable]` now due to the likelihood of being removed in
                      the future if it is found to not be very useful.
    
    * copy_mut_lifetime - This function was also moved to `mem`, but had the same
                          treatment as `copy_lifetime`.
    
    * copy_lifetime_vec - This function was removed because it is not used today,
                          and its existence is not necessary with DST
                          (copy_lifetime will suffice).
    
    In summary, the cast module was stripped down to these functions, and then the
    functions were moved to the `mem` module.
    
        transmute - #[unstable]
        transmute_copy - #[stable]
        forget - #[stable]
        copy_lifetime - #[unstable]
        copy_mut_lifetime - #[unstable]
    
    [breaking-change]
    alexcrichton committed May 11, 2014
    5 Configuration menu
    Copy the full SHA
    f94d671 View commit details
    Browse the repository at this point in the history