@@ -1719,13 +1719,13 @@ Ownership Kind
17191719The semantics in the previous example is of just one form of ownership semantics
17201720supported: "owned" semantics. In SIL, we map these "ownership semantics" into a
17211721form that a compiler can reason about by mapping semantics onto a lattice with
1722- the following elements: `None `_, `Owned `_, `Guaranteed `_, `Unowned `_, `Any `_ . We
1722+ the following elements: `None `_, `Owned `_, `Guaranteed `_, `Unowned `_, `Any `. We
17231723call this the lattice of "Ownership Kinds" and each individual value an
17241724"Ownership Kind". This lattice is defined as a 3-level lattice with::
17251725
1726- 1. None being Top.
1727- 2. Any being Bottom.
1728- 3. All non-Any, non-None OwnershipKinds being defined as a mid-level elements of the lattice
1726+ 1. None being Top.
1727+ 2. Any being Bottom.
1728+ 3. All non-Any, non-None OwnershipKinds being defined as a mid-level elements of the lattice
17291729
17301730We can graphically represent the lattice via a diagram like the following::
17311731
@@ -1760,8 +1760,8 @@ This lattice is applied to SIL by requiring well formed SIL to:
176017601. Define a static map of each SIL value to an OwnershipKind that classify the
17611761 semantics that the SIL value obeys. We call this subset of OwnershipKind to
17621762 be the set of `Value Ownership Kind `_: `None `_, `Unowned `_, `Guaranteed `_,
1763- `Owned `_ (note conspiciously missing `Any `_ ). This is because in our model
1764- `Any `_ represents an unknown ownership semantics and since our model is
1763+ `Owned `_ (note conspiciously missing `Any `). This is because in our model
1764+ `Any ` represents an unknown ownership semantics and since our model is
17651765 statically strict, we do not allow for values to have unknown ownership.
17661766
176717672. Define a static map from each operand of a SILInstruction, `i `, to an
@@ -1787,13 +1787,13 @@ In prose, a value can be passed to an operand if applying the operand's
17871787ownership constraint to the value's ownership does not change the value's
17881788ownership. Operationally this has a few interesting effects on SIL::
17891789
1790- 1. We have defined away invalid value-operand (aka def-use) pairing since the
1791- SILVerifier validates the aforementioned relationship on all SIL values,
1792- uses at all points of the pipeline until ossa is lowered.
1790+ 1. We have defined away invalid value-operand (aka def-use) pairing since the
1791+ SILVerifier validates the aforementioned relationship on all SIL values,
1792+ uses at all points of the pipeline until ossa is lowered.
17931793
1794- 2. Many SIL instructions do not care about the ownership kind that their value
1795- will take. They can just define all of their operand's as having an
1796- ownership constraint of Any.
1794+ 2. Many SIL instructions do not care about the ownership kind that their value
1795+ will take. They can just define all of their operand's as having an
1796+ ownership constraint of Any.
17971797
17981798Now lets go into more depth upon `Value Ownership Kind `_ and `Ownership Constraint `_.
17991799
0 commit comments