about summary refs log tree commit diff
path: root/src/libcore/cast.rs
AgeCommit message (Collapse)AuthorLines
2014-05-11core: Remove the cast moduleAlex Crichton-127/+0
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 #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]
2014-05-07std: Change names of transmute's type parametersBrian Anderson-1/+1
from L, G to T, U. I don't know what L and G mean. T, U easier to understand.
2014-05-07std: Reorder definitions in castBrian Anderson-19/+19
Prioritize `transmute` and `forget`.
2014-05-07std: Remove bump_box_refcount. Deprecated and unused. Deprecused.Brian Anderson-23/+1
2014-05-07core: Get coretest workingAlex Crichton-1/+1
This mostly involved frobbing imports between realstd, realcore, and the core being test. Some of the imports are a little counterintuitive, but it mainly focuses around libcore's types not implementing Show while libstd's types implement Show.
2014-05-07core: Inherit the cast moduleAlex Crichton-0/+149
2013-05-22libstd: Rename libcore to libstd and libstd to libextra; update makefiles.Patrick Walton-160/+0
This only changes the directory names; it does not change the "real" metadata names.
2013-05-20Replace all uses of rust-intrinsic ABI with calls to unstable::intrinsicsBrian Anderson-18/+9
2013-05-19Register snapshotsBrian Anderson-14/+0
2013-05-19Use assert_eq! rather than assert! where possibleCorey Richardson-2/+2
2013-05-09Make staged versions of the functions that use uninitJames Miller-0/+14
2013-05-09Replace init() with uninit() where appropriateJames Miller-1/+1
2013-05-09auto merge of #6337 : thestinger/rust/fix_region, r=thestingerbors-0/+6
also removes unnecessary casts from the RcMut implementation
2013-05-08librustc: Stop parsing modes and remove them entirely from the languagePatrick Walton-1/+1
2013-05-08fix incorrect region code based on the old 'selfDaniel Micay-0/+6
also removes unnecessary casts from the RcMut implementation
2013-05-04Register snapshotsBrian Anderson-46/+0
2013-05-02libcore: Export core::from_str::FromStr from core::preludegifnksm-0/+2
2013-04-29test: Fix tests.Patrick Walton-2/+2
2013-04-29librustc: Rename `reinterpret_cast` to `transmute_copy` and remove the intrinsicPatrick Walton-3/+20
2013-04-29librustc: Implement `reinterpret_cast` in terms of `transmute`.Patrick Walton-0/+36
2013-04-16libcore,std,syntax,rustc: move tests into `mod tests`, make them private (no ↵Huon Wilson-5/+5
pub mod or pub fn).
2013-03-29Add AbiSet and integrate it into the AST.Niko Matsakis-1/+1
I believe this patch incorporates all expected syntax changes from extern function reform (#3678). You can now write things like: extern "<abi>" fn foo(s: S) -> T { ... } extern "<abi>" mod { ... } extern "<abi>" fn(S) -> T The ABI for foreign functions is taken from this syntax (rather than from an annotation). We support the full ABI specification I described on the mailing list. The correct ABI is chosen based on the target architecture. Calls by pointer to C functions are not yet supported, and the Rust type of crust fns is still *u8.
2013-03-29librustc: Remove `fail_unless!`Patrick Walton-6/+6
2013-03-26librustc: Modify all code to use new lifetime binder syntaxPatrick Walton-6/+8
2013-03-26core: Make sure every module at least has a one-line descriptionBrian Anderson-0/+2
2013-03-18librustc: Convert all uses of old lifetime notation to new lifetime ↵Patrick Walton-6/+6
notation. rs=delifetiming
2013-03-13Remove `++` mode from the compiler (it is parsed as `+` mode)Niko Matsakis-1/+1
and obsolete `-` mode altogether (it *was* parsed as `+` mode).
2013-03-07librustc: Convert all uses of `assert` over to `fail_unless!`Patrick Walton-6/+6
2013-03-07libcore: Remove `extern mod { ... }` from libcore. rs=deexterningPatrick Walton-4/+7
2013-02-15libcore: Get rid of `move`.Luqman Aden-10/+10
2013-02-07Make ~fn non-copyable, make &fn copyable, split barefn/closure types,Niko Matsakis-3/+0
correct handling of moves for struct-record update. Part of #3678. Fixes #2828, #3904, #4719.
2013-01-08librustc: Make unqualified identifier searches terminate at the nearest ↵Patrick Walton-0/+2
module scope. r=tjc
2013-01-08Revert "librustc: Make unqualified identifier searches terminate at the ↵Patrick Walton-2/+0
nearest module scope. r=tjc" This reverts commit a8d37af2473da79be704c9ce2374f278c47177b6.
2013-01-08librustc: Make unqualified identifier searches terminate at the nearest ↵Patrick Walton-0/+2
module scope. r=tjc
2012-12-12Fix the test for transmuteBrian Anderson-3/+4
2012-12-03Update license, add license boilerplate to most files. Remainder will follow.Graydon Hoare-0/+10
2012-10-12Make moves explicit in core testsTim Chevalier-2/+2
2012-10-05core: Correct description of cast::forgetBrian Anderson-1/+1
'managed' means something different now
2012-10-04Forbid deprecated modes again in coreTim Chevalier-0/+1
Sadly, there's only one file that requires deprecated modes (stackwalk)... So, forbid them everywhere else.
2012-10-02Removing explicit uses of + modeTim Chevalier-9/+9
This removes most explicit uses of the + argument mode. Pending a snapshot, I had to remove the forbid(deprecated_modes) pragma from a bunch of files. I'll put it back! + mode still has to be used in a few places for functions that get moved (see task.rs) The changes outside core and std are due to the to_bytes trait and making the compiler (with legacy modes on) agree with the libraries (with legacy modes off) about modes.
2012-10-02libstd: Switch off legacy modes in both core and std.Patrick Walton-1/+1
2012-09-28Demode extfmtTim Chevalier-2/+2
Needs a snapshot before this can be completed, because I changed the mode for conv_poly.
2012-09-27Finish de-exporting cast, mutable, flate, repr, cleanup, reflect. Part of #3583.Graydon Hoare-1/+0
2012-09-26libcore: De-export box, cast, and dlistPatrick Walton-25/+23
2012-09-21Install new pub/priv/export rules as defaults, old rules accessible under ↵Graydon Hoare-0/+2
#[legacy_exports];
2012-09-19De-mode vec::each() and many of the str iteration routinesNiko Matsakis-3/+4
Note that the method foo.each() is not de-moded, nor the other vec routines.
2012-09-18core: Rename 'unsafe' mod to 'cast'Brian Anderson-0/+136