Camelid
bbf175df3c
Make size_of_val
and min_align_of_val
intrinsics unsafe
2021-01-04 19:23:55 -08:00
Camelid
0506789014
Remove many unnecessary manual link resolves from library
...
Now that #76934 has merged, we can remove a lot of these! E.g, this is
no longer necessary:
[`Vec<T>`]: Vec
2020-12-31 11:54:32 -08:00
Mara Bos
067f1b7030
Rollup merge of #80491 - RalfJung:dangling-of-val, r=oli-obk
...
Miri: make size/align_of_val work for dangling raw ptrs
This is needed for https://github.com/rust-lang/rust/issues/80365#issuecomment-752128105 .
r? `@oli-obk`
2020-12-30 20:56:56 +00:00
Ralf Jung
f76bae9244
CTFE: test size/align_of_val_raw on dangling pointers
2020-12-30 14:29:33 +01:00
bors
bbcaed03bf
Auto merge of #79684 - usbalbin:const_copy, r=oli-obk
...
Make copy[_nonoverlapping] const
Constifies
* `intrinsics::copy` and `intrinsics::copy_nonoverlapping`
* `ptr::read` and `ptr::read_unaligned`
* `*const T::read` and `*const T::read_unaligned`
* `*mut T::read` and `*mut T::read_unaligned`
* `MaybeUninit::assume_init_read`
2020-12-30 12:43:02 +00:00
Tomasz Miąsko
5718cc2f9b
Make forget intrinsic safe
2020-12-29 00:00:00 +00:00
Albin Hedman
1975a6e710
Constify MaybeUninit::assume_init_read
2020-12-26 02:25:38 +01:00
DrMeepster
4652a13f44
write_slice(_cloned)
2020-12-15 12:21:33 -08:00
Albin Hedman
077527170b
Make write and slice_as_[mut_]_ptr const
2020-12-08 00:07:34 +01:00
Albin Hedman
174935988f
Make assume_init_{ref,mut} const
2020-12-08 00:05:26 +01:00
Albin Hedman
1ef5dbe716
Resolved some of the comments
...
* Undo fn -> const fn for some fns.
* Split feature gate.
* Made all three intrinsics const
2020-12-02 16:17:37 +01:00
Albin Hedman
91772c35c8
Even more const
2020-12-02 03:22:47 +01:00
Albin Hedman
8bd80e25f0
Make some of MaybeUninit's methods const
2020-12-02 03:22:47 +01:00
Aaron Hill
6f91c32da6
Fix new 'unnecessary trailing semicolon' warnings
2020-11-26 17:08:36 -05:00
Carol (Nichols || Goulding)
ae17d7d455
More consistently use spaces after commas in lists in docs
2020-11-21 14:43:34 -05:00
Ralf Jung
ed96321e7e
fix aliasing issues in u128 formatting code
2020-10-31 16:26:06 +01:00
Ralf Jung
95aac4487d
transmute_copy: explain that alignment is handled correctly
2020-10-11 23:59:32 +02:00
Yuki Okushi
d7123c2393
Rollup merge of #77228 - GuillaumeGomez:maybeuninit-examples, r=pickfire
...
Add missing examples for MaybeUninit
r? @Dylan-DPC
2020-10-06 16:26:00 +09:00
Guillaume Gomez
b1ce6190ae
Add missing examples for MaybeUninit
2020-10-05 13:21:20 +02:00
Michael Howell
cd159fd7f9
Uplift drop-bounds lint from clippy
2020-10-01 12:06:33 -07:00
ecstatic-morse
4f3697b4b8
Rollup merge of #76150 - matklad:droporder, r=withoutboats
...
Don't recommend ManuallyDrop to customize drop order
See
https://internals.rust-lang.org/t/need-for-controlling-drop-order-of-fields/12914/21
for the discussion.
TL;DR: ManuallyDrop is unsafe and footguny, but you can just ask the compiler to do all the work for you by re-ordering declarations.
Specifically, the original example from the docs is much better written as
```rust
struct Peach;
struct Banana;
struct Melon;
struct FruitBox {
melon: Melon,
// XXX: mind the relative drop order of the fields below
peach: Peach,
banana: Banana,
}
```
2020-09-21 20:40:41 -07:00
Aleksey Kladov
60b102de06
Don't recommend ManuallyDrop to customize drop order
...
See
https://internals.rust-lang.org/t/need-for-controlling-drop-order-of-fields/12914/21
for the discussion.
TL;DR: ManuallyDrop is unsafe and footguny, but you can just ask the
compiler to do all the work for you by re-ordering declarations.
2020-09-21 14:00:04 +02:00
Tyler Mandry
153fb91d37
Rollup merge of #76721 - camelid:intra-doc-links-for-core-mem, r=jyn514
...
Use intra-doc links in `core::mem`
Part of #75080 .
Last one for now!
---
@rustbot modify labels: A-intra-doc-links T-doc
2020-09-16 12:24:08 -07:00
Camelid
58310ce94b
Use intra-doc links in core::mem
2020-09-14 15:14:21 -07:00
Jonas Schievink
e5389a4a34
Rollup merge of #76527 - fusion-engineering-forks:cleanup-uninit, r=jonas-schievink
...
Remove internal and unstable MaybeUninit::UNINIT.
Looks like it is no longer necessary, as `uninit_array()` can be used instead in the few cases where it was needed.
(I wanted to just add `#[doc(hidden)]` to remove clutter from the documentation, but looks like it can just be removed entirely.)
2020-09-13 20:21:09 +02:00
Ralf Jung
c20356e96b
Rollup merge of #76484 - fusion-engineering-forks:maybe-uninit-drop, r=RalfJung
...
Add MaybeUninit::assume_init_drop.
`ManuallyDrop`'s documentation tells the user to use `MaybeUninit` instead when handling uninitialized data. However, the main functionality of `ManuallyDrop` (`drop`) is not available directly on `MaybeUninit`. Adding it makes it easier to switch from one to the other.
I re-used the `maybe_uninit_extra` feature and tracking issue number (#63567 ), since it seems very related. (And to avoid creating too many features tracking issues for `MaybeUninit`.)
2020-09-12 10:43:17 +02:00
Mara Bos
43c7a9b72b
Fix broken doc links in MaybeUninit.
2020-09-09 18:56:16 +02:00
Mara Bos
a94b2cb034
Add safety docs about T's invariants in MaybeUninit::assume_init_drop.
2020-09-09 18:55:36 +02:00
Mara Bos
4506d26cf3
Remove internal and unstable MaybeUninit::UNINIT.
...
Looks like it is no longer necessary, as uninit_array() can be used
instead in the few cases where it was needed.
2020-09-09 18:38:10 +02:00
Mara Bos
a14efd1d0a
Rename MaybeUninit::read to assume_init_read.
2020-09-09 11:27:42 +02:00
Mara Bos
656a17b44d
Rename MaybeUninit::drop to assume_init_drop.
2020-09-09 11:27:09 +02:00
Flying-Toast
c66789d572
Capitalize safety comments
2020-09-08 22:26:44 -04:00
Mara Bos
caef83282b
Fix doc comment on MaybeUninit::drop.
2020-09-08 19:34:23 +02:00
Mara Bos
75e471ade9
Add MaybeUninit::drop.
...
ManuallyDrop's documentation tells the user to use MaybeUninit instead
when handling uninitialized data. However, the main functionality of
ManuallyDrop (drop) was not available directly on MaybeUninit. Adding it
makes it easier to switch from one to the other.
2020-09-08 19:01:05 +02:00
Ralf Jung
35068326b5
document remaining unsafety in maybe_uninit.rs
2020-09-05 17:24:22 +02:00
Ralf Jung
cff5f56886
rename MaybeUninit slice methods
...
first_ptr -> slice_as_ptr
first_ptr_mut -> slice_as_mut_ptr
slice_get_ref -> slice_assume_init_ref
slice_get_mut -> slice_assume_init_mut
2020-09-05 17:24:22 +02:00
bors
d9cd4a33f5
Auto merge of #76047 - Dylan-DPC:rename/maybe, r=RalfJung
...
rename get_{ref, mut} to assume_init_{ref,mut} in Maybeuninit
References #63568
Rework with comments addressed from #66174
Have replaced most of the occurrences I've found, hopefully didn't miss out anything
r? @RalfJung
(thanks @danielhenrymantilla for the initial work on this)
2020-09-01 05:41:22 +00:00
DPC
943911cc8b
the one left behind
2020-08-31 14:57:12 +02:00
DPC
6d35f8475f
fix
2020-08-31 02:27:38 +02:00
DPC
b3d7b7bdcb
update fixmes
2020-08-30 14:43:52 +02:00
DPC
ea800d529a
fix tests
2020-08-29 17:25:14 +02:00
DPC
5e208efaa8
rename get_{ref, mut} to assume_init_{ref,mut} in Maybeuninit
2020-08-29 02:13:02 +02:00
Scott McMurray
f3024073f9
Suggest mem::forget
if mem::ManuallyDrop::new
isn't used
...
I think this communicates the intent better, and is shorter anyway.
2020-08-25 09:40:53 -07:00
Yuki Okushi
17d3ce457f
Rollup merge of #75038 - rust-lang:Havvy-patch-1, r=steveklabnik
...
See also X-Link mem::{swap, take, replace}
Since it's easy to end up at one of these functions when you really wanted the other one, cross link them with descriptions of why you'd want to use them.
2020-08-19 15:54:24 +09:00
chansuke
61866bc60c
Use intra-doc links in mem::manually_drop
& mem::maybe_uninit
2020-08-15 02:33:39 +09:00
Ralf Jung
ec5d78d350
fix feature gate and tracking issue
2020-08-07 12:38:55 +02:00
Ralf Jung
0aee186723
make MaybeUninit::as_(mut_)ptr const
2020-08-07 12:24:28 +02:00
Ryan Scheel
e720f4237a
See also X-Link mem::{swap, take, replace}
2020-08-01 22:56:25 -07:00
Manish Goregaokar
39436ebe72
Rollup merge of #74602 - poliorcetics:maybe-uninit-zeroed-doc-clarification, r=jyn514
...
Clarify the doc for MaybeUninit::zeroed on incorrect use
Fixes #74343 .
@rustbot modify labels: C-enhancement, T-doc
2020-08-01 17:42:11 -07:00
Alexis Bourget
54eb3768e0
Reword incorrect use of zeroed()
2020-08-01 19:28:19 +02:00