Skip to content

Commit 6246534

Browse files
gnzlbgRalfJung
andcommitted
Update reference/src/glossary.md
Co-Authored-By: Ralf Jung <[email protected]>
1 parent 6c81407 commit 6246534

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

Diff for: reference/src/glossary.md

+4-6
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,12 @@ The *layout* of a type defines:
6161
* its [niches][Niche],
6262
* its call abi.
6363

64+
Note: due to discriminant-elision optimizations, niches are required to compute
65+
the layout of, e.g., `Option<T>`, from the layout of `T`.
66+
6467
Note: Originally, *layout* and *representation* were treated as synonyms, and Rust language features like the `#[repr]` attribute reflect this.
6568
In this document, *layout* and *representation* are not synonyms.
6669

67-
<<<<<<< HEAD
6870
#### Niche
6971

7072
The *niche* of a type determines invalid bit-patterns that will be used by layout optimizations.
@@ -78,16 +80,12 @@ While all niches are invalid bit-patterns, not all invalid bit-patterns are
7880
niches. For example, the "all bits uninitialized" is an invalid bit-pattern for
7981
`&mut T`, but this bit-pattern cannot be used by layout optimizations, and is not a
8082
niche.
81-
=======
82-
Note: due to discriminant-elision optimizations, niches are required to compute
83-
the layout of, e.g., `Option<T>`, from the layout of `T`.
84-
>>>>>>> Add note about why niches need to be part of the layout
8583

8684
#### Call ABI
8785

8886
The *call ABI* determines how a type is passed *by value* across a function boundary.
8987

90-
Note: The call ABI is not stable. Currently, it is one of:
88+
Note: The set of possible call ABIs is not stable. Currently, it consists of:
9189

9290
```rust,ignore
9391
enum Abi {

0 commit comments

Comments
 (0)