@@ -7471,7 +7471,7 @@ copyable_to_moveonlywrapper
74717471
74727472 sil-instruction ::= 'copyable_to_moveonlywrapper'
74737473
7474- `copyably_to_moveonlywrapper `_ takes in a 'T' and maps it to a move only wrapped
7474+ `copyable_to_moveonlywrapper `_ takes in a 'T' and maps it to a move only wrapped
74757475'@moveOnly T'. This is semantically used by a code generator initializing a new
74767476moveOnly binding from a copyable value. It semantically destroys its input
74777477@owned value and returns a brand new independent @owned @moveOnly value. It also
@@ -7492,18 +7492,18 @@ one to choose it to be [owned] or [guaranteed]. With time, we may eliminate the
74927492need for the guaranteed form in the future.
74937493
74947494* `moveonlywrapper_to_copyable [owned] ` is used to signal the end of lifetime of
7495- the '@moveOnly' wrapper. SILGen inserts these when ever a move only value has
7496- its ownership passed to a situation where a copyable value is needed. Since it
7497- is consuming, we know that the no implicit copy or no-escape checker will ensure
7498- that if we need a copy for it, the program will emit a diagnostic.
7495+ the '@moveOnly' wrapper. SILGen inserts these when ever a move only value has
7496+ its ownership passed to a situation where a copyable value is needed. Since it
7497+ is consuming, we know that the no implicit copy or no-escape checker will ensure
7498+ that if we need a copy for it, the program will emit a diagnostic.
74997499
75007500* `moveonlywrapper_to_copyable [guaranteed] ` is used to pass a @moveOnly T value
7501- as a copyable guaranteed parameter with type 'T' to a function. In the case of
7502- using no-implicit-copy checking this is always fine since no-implicit-copy is a
7503- local pattern. This would be an error when performing no escape
7504- checking. Importantly, this instruction also is where in the case of an
7505- @moveOnly trivial type, we convert from the non-trivial representation to the
7506- trivial representation.
7501+ as a copyable guaranteed parameter with type 'T' to a function. In the case of
7502+ using no-implicit-copy checking this is always fine since no-implicit-copy is a
7503+ local pattern. This would be an error when performing no escape
7504+ checking. Importantly, this instruction also is where in the case of an
7505+ @moveOnly trivial type, we convert from the non-trivial representation to the
7506+ trivial representation.
75077507
75087508Assertion configuration
75097509~~~~~~~~~~~~~~~~~~~~~~~
0 commit comments