Commit graph

218 commits

Author SHA1 Message Date
bors
9758ff9c0b Auto merge of #47299 - cramertj:unsafe-placer, r=alexcrichton
Make core::ops::Place an unsafe trait

Consumers of `Place` would reasonably expect that the `pointer` function returns a valid pointer to memory that can actually be written to.
2018-01-24 07:22:22 +00:00
Simon Sapin
602a445b92 Assign its own tracking issue to Box::into_raw_non_null
https://github.com/rust-lang/rust/issues/47336
2018-01-20 11:09:23 +01:00
Simon Sapin
5aeeafff49 Revert Box::into_raw_non_null to unstable 2018-01-20 11:09:23 +01:00
Simon Sapin
12b3630f62 Rename Box::into_non_null_raw to Box::into_raw_non_null 2018-01-20 11:09:23 +01:00
Simon Sapin
8ef5e549c3 Remove Box::from_non_null_raw
Per https://github.com/rust-lang/rust/pull/46952#issuecomment-353956225
2018-01-20 11:09:23 +01:00
Simon Sapin
1772fa2aa1 Rename Box::*_nonnull_raw to *_non_null_raw 2018-01-20 11:09:23 +01:00
Simon Sapin
55c50cd8ac Stabilize std::ptr::NonNull 2018-01-20 11:09:23 +01:00
Simon Sapin
a2f878a084 Replace Box::{from,into}_unique with {from,into}_nonnull_raw
Thew `_raw` prefix is included because the fact that `Box`’s ownership
semantics are "dissolved" or recreated seem more important than the exact
parameter type or return type.
2018-01-20 11:09:22 +01:00
Taylor Cramer
25574e58b6 Make core::ops::Place an unsafe trait 2018-01-09 11:39:23 -08:00
Alex Crichton
a850bb0e5d Update bootstrap compiler
Also remove a number of `stage0` annotations and such
2017-11-29 21:11:20 -08:00
bors
246a6d19c9 Auto merge of #45881 - Centril:box-leak, r=alexcrichton
Add Box::leak<'a>(Box<T>) -> &'a mut T where T: 'a

Adds:

```rust
impl<T: ?Sized> Box<T> {
    pub fn leak<'a>(b: Box<T>) -> &'a mut T where T: 'a {
        unsafe { &mut *Box::into_raw(b) }
    }
}
```

which is useful for when you just want to put some stuff on the heap and then have a reference to it for the remainder of the program.

r? @sfackler
cc @durka
2017-11-23 19:18:15 +00:00
Mazdak
bc18d99232 Box::leak: update unstable issue number (46179). 2017-11-22 07:21:30 +01:00
Eduard-Mihai Burtescu
fa67abd127 rustc: don't special-case Box<T> as having a pointer layout. 2017-11-19 02:43:55 +02:00
Mazdak
46800ab135 Box::leak - made an oops, fixed now =) 2017-11-09 23:39:18 +01:00
Mazdak
ee24e992b6 Box::leak - updated documentation 2017-11-09 23:27:58 +01:00
Mazdak
dabb0c6605 Box::leak - relaxed constraints wrt. lifetimes 2017-11-09 23:25:32 +01:00
Mazdak
79f62cb4d3 Box::leak - fixed bug in documentation 2017-11-09 00:15:07 +01:00
Mazdak
2b48b4779e Box::leak - improve documentation 2017-11-08 23:59:35 +01:00
Mazdak
360ce780fd added associated function Box::leak 2017-11-08 23:10:33 +01:00
bors
0217315bf2 Auto merge of #44877 - nvzqz:box-conversions, r=alexcrichton
Improve raw Box conversions

This PR has two goals:

- Reduce use of `mem::transmute` in `Box` conversions

  I understand that `mem::transmute`-ing non `#[repr(C)]` types is implementation-defined behavior.  This may not matter within the reference implementation of Rust, but I believe it's important to remain consistent. For example, I noticed that `str::from_utf8_unchecked` went from using `mem::transmute` to using pointer casts.

- Make `Box` pointer conversions more straightforward regarding `Unique`
2017-10-10 11:07:25 +00:00
Nikolai Vazquez
22298b8240 Add unique feature in Box::from_unique docs 2017-10-06 19:21:22 -04:00
Nikolai Vazquez
5af88ee996 Add missing word in Box::from_unique docs 2017-10-06 17:39:38 -04:00
Nikolai Vazquez
5ce5b2fe76 Create Box::from_unique function
Provides a reasonable interface for Box::from_raw implementation.

Does not get around the requirement of mem::transmute for converting
back and forth between Unique and Box.
2017-10-06 17:30:20 -04:00
Nikolai Vazquez
452b71a07b Revert to using mem::transmute in Box::from_raw
Same reasons as commit 904133e1e2.
2017-10-06 17:01:50 -04:00
Nikolai Vazquez
904133e1e2 Revert to using mem::transmute in Box::into_unique
Seems to cause this error: "Cannot handle boxed::Box<[u8]> represented
as TyLayout".
2017-10-06 16:39:01 -04:00
Nikolai Vazquez
36d663fcfc Remove mem::transmute used in Box<str> conversions 2017-09-27 14:56:20 -04:00
Nikolai Vazquez
edb2c2d291 Remove uses of mem::transmute in Box methods
Makes use of conversions via Unique.
2017-09-26 21:16:59 -04:00
kennytm
0bbe468271
impl Hasher for {&mut Hasher, Box<Hasher>} 2017-09-12 17:28:07 +08:00
John Kåre Alsaker
d29af37999 Merge branch 'master' of https://github.com/rust-lang/rust into gen 2017-08-28 02:41:16 +02:00
lukaramu
49ee9f3f08 Fix inconsistent doc headings
This fixes headings reading "Unsafety" and "Example", they should be
"Safety" and "Examples" according to RFC 1574.
2017-08-24 18:42:53 +02:00
Alex Crichton
1210ebff43 Merge remote-tracking branch 'origin/master' into gen 2017-08-16 10:03:47 -07:00
Zack M. Davis
1b6c9605e4 use field init shorthand EVERYWHERE
Like #43008 (f668999), but _much more aggressive_.
2017-08-15 15:29:17 -07:00
John Kåre Alsaker
df0496a620 Rename State to GeneratorState 2017-07-28 15:46:27 +02:00
Alex Crichton
09a5d319ab Remove support for gen arg 2017-07-28 15:46:26 +02:00
Alex Crichton
facabcb85e Fill in generator tracking issue in a few more locations 2017-07-28 15:46:23 +02:00
Alex Crichton
81030176dd std: Add forwarding impls of Generator trait 2017-07-28 15:46:23 +02:00
Simon Sapin
cbd2b6b484 Add Box::into_unique 2017-07-22 20:38:40 +02:00
Oliver Middleton
f2566bbaeb Correct some stability attributes
These show up in rustdoc so need to be correct.
2017-07-10 02:07:29 +01:00
Alex Crichton
695dee063b rustc: Implement the #[global_allocator] attribute
This PR is an implementation of [RFC 1974] which specifies a new method of
defining a global allocator for a program. This obsoletes the old
`#![allocator]` attribute and also removes support for it.

[RFC 1974]: https://github.com/rust-lang/rfcs/pull/197

The new `#[global_allocator]` attribute solves many issues encountered with the
`#![allocator]` attribute such as composition and restrictions on the crate
graph itself. The compiler now has much more control over the ABI of the
allocator and how it's implemented, allowing much more freedom in terms of how
this feature is implemented.

cc #27389
2017-07-05 14:37:01 -07:00
kennytm
4711982314
Removed as many "```ignore" as possible.
Replaced by adding extra imports, adding hidden code (`# ...`), modifying
examples to be runnable (sorry Homura), specifying non-Rust code, and
converting to should_panic, no_run, or compile_fail.

Remaining "```ignore"s received an explanation why they are being ignored.
2017-06-23 15:31:53 +08:00
Murarth
eadda7665e Merge crate collections into alloc 2017-06-13 23:37:34 -07:00
Oliver Middleton
2f703e4304 Correct some stability versions
These were found by running tidy on stable versions of rust and finding
features stabilised with the wrong version numbers.
2017-05-20 08:38:39 +01:00
Alexis Beingessner
c7cffc5f4e Deprecate heap::EMPTY in favour of Unique::empty or otherwise. 2017-05-04 23:54:54 -04:00
Clar Charr
c66c6e9697 More methods for str boxes. 2017-04-24 17:51:49 -04:00
Clar Charr
edf5dc66c1 Box docs: no allocation is done for ZSTs. 2017-03-08 21:53:28 -05:00
Clar Charr
963843b1b3 Conversions between CStr/OsStr/Path and boxes. 2017-02-14 14:18:43 -05:00
Clar Charr
550373b1f9 Direct conversions between slices and boxes. 2017-02-06 18:53:13 -05:00
Alex Crichton
626e754473 Bump version, upgrade bootstrap
This commit updates the version number to 1.17.0 as we're not on that version of
the nightly compiler, and at the same time this updates src/stage0.txt to
bootstrap from freshly minted beta compiler and beta Cargo.
2017-02-03 13:25:46 -08:00
Vadim Petrochenkov
4a4f8ff0a3 Implement Drop for Box 2017-01-30 23:14:15 +03:00
Vadim Petrochenkov
ffba0cea62 Merge ty::TyBox into ty::TyAdt 2017-01-30 23:14:15 +03:00