Skip to content

Commit bbc2918

Browse files
committed
Remove definition and rationale
1 parent 6702509 commit bbc2918

File tree

1 file changed

+0
-12
lines changed

1 file changed

+0
-12
lines changed

reference/src/validity/unions.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,10 @@
44
represents the consensus from issue [#73]. The statements in here are not (yet)
55
"guaranteed" not to change until an RFC ratifies them.
66

7-
The bit `i` of an union is allowed to have value `v` _iff_ there is a variant of
8-
the union such that bit `i` of the variant is allowed to have value `v`. We
9-
assume all variants to be "filled up" to the same size with padding, which may
10-
have any value.
11-
127
## Validity of unions with zero-sized fields
138

149
A union containing a zero-sized field can contain any value. An example of such
1510
an union is [`MaybeUninit`].
1611

17-
<details><summary><b>Rationale</b></summary>
18-
19-
This follows from the definition of the values that `union` bits are allowed to
20-
take. The zero-sized type has size `0`, and its variant is filled up to
21-
the `union` size with padding. Since padding is allowed to take any value, any
22-
bit in the `union` is allowed to take any value.
23-
2412
[#73]: https://github.com/rust-lang/unsafe-code-guidelines/issues/73
2513
[`MaybeUninit`]: https://doc.rust-lang.org/std/mem/union.MaybeUninit.html

0 commit comments

Comments
 (0)