Skip to content

Commit cf2aeb8

Browse files
committed
Fix SIL.rst formatting in a few places.
This fixes errors in my local build.
1 parent 79ac431 commit cf2aeb8

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

docs/SIL.rst

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -842,8 +842,8 @@ and deallocated with special instructions.
842842

843843
Pack types are only allowed in two positions:
844844
- at the top level of a type, e.g. ``%0 : $Pack{Int, Float}``
845-
- as a parameter or result type of a function type, e.g.
846-
``%fn : $@convention(thin) (@pack_in Pack{Int, Float}) -> ()``
845+
- as a parameter or result type of a function type, e.g. ``%fn : $@convention(thin) (@pack_in Pack{Int, Float}) -> ()``
846+
847847
Note in particular that they are not allowed in tuple types. Pack
848848
expansions in tuple types are still flattened into the surrounding
849849
tuple structure like they are in Swift (unless the tuple is exploded,
@@ -2577,24 +2577,35 @@ ends of these lifetimes across a deinit barrier.
25772577

25782578
Source level variables (lets, vars, ...) and function arguments will result in
25792579
SIL-level lexical lifetimes if either of the two sets of circumstances apply:
2580+
25802581
(1) Inferred lexicality.
2581-
- the type is non-trivial
2582-
- the type is not eager-move
2583-
- the variable or argument is not annotated to be eager-move
2582+
2583+
- the type is non-trivial
2584+
2585+
- the type is not eager-move
2586+
2587+
- the variable or argument is not annotated to be eager-move
2588+
25842589
OR
2590+
25852591
(2) Explicit lexicality.
2586-
- the type, variable, or argument is annotated `@_lexical`
2592+
2593+
- the type, variable, or argument is annotated `@_lexical`
25872594

25882595
A type is eager-move by satisfying one of two conditions:
2596+
25892597
(1) Inferred: An aggregate is inferred to be eager-move if all of its fields are
2590-
eager-move.
2598+
eager-move.
2599+
25912600
(2) Annotated: Any type can be eager-move if it is annotated with an attribute
2592-
that explicitly specifies it to be: `@_eagerMove`, `@_noImplicitCopy`.
2601+
that explicitly specifies it to be: `@_eagerMove`, `@_noImplicitCopy`.
25932602

25942603
A variable or argument is eager-move by satisfying one of two conditions:
2604+
25952605
(1) Inferred: Its type is eager-move.
2606+
25962607
(2) Annotated: The variable or argument is annotated with an attribute that
2597-
specifies it to be: `@_eagerMove`, `@_noImplicitCopy`.
2608+
specifies it to be: `@_eagerMove`, `@_noImplicitCopy`.
25982609

25992610
These source-level rules result in a few sorts of SIL value whose destroys must
26002611
not be moved across deinit barriers:
@@ -6532,7 +6543,7 @@ Given the address of a tuple in memory, derives the
65326543
address of an element within that value.
65336544

65346545
tuple_pack_element_addr
6535-
``````````````````
6546+
```````````````````````
65366547
::
65376548

65386549
sil-instruction ::= 'tuple_pack_element_addr' sil-value 'of' sil-operand 'as' sil-type
@@ -8608,7 +8619,7 @@ Optimizer Dataflow Marker Instructions
86088619
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86098620

86108621
mark_unresolved_non_copyable_value
8611-
```````````````
8622+
``````````````````````````````````
86128623
::
86138624

86148625
sil-instruction ::= 'mark_unresolved_non_copyable_value'

0 commit comments

Comments
 (0)