File tree Expand file tree Collapse file tree 2 files changed +17
-4
lines changed Expand file tree Collapse file tree 2 files changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -192,13 +192,26 @@ Reference Instructions
192
192
193
193
.. _exec-ref.null :
194
194
195
- :math: `\REFNULL ~\X {ht} `
195
+ :math: `\REFNULL ~x `
196
196
.......................
197
197
198
- 1. Push the value :math: `\REFNULL ~\X {ht}` to the stack.
198
+ 1. Let :math: `F` be the :ref: `current <exec-notation-textual >` :ref: `frame <syntax-frame >`.
199
+
200
+ 2. Assert: due to :ref: `validation <valid-ref.null >`, the :ref: `defined type <syntax-deftype >` :math: `F.\AMODULE .\MITYPES [x]` exists.
201
+
202
+ 3. Let :math: `\deftype ` be the :ref: `defined type <syntax-deftype >` :math: `F.\AMODULE .\MITYPES [x]`.
203
+
204
+ 4. Push the value :math: `\REFNULL ~\deftype ` to the stack.
205
+
206
+ .. math ::
207
+ \begin {array}{lcl@{\qquad }l}
208
+ F; (\REFNULL ~x) &\stepto & F; (\REFNULL ~\deftype )
209
+ & (\iff \deftype = F.\AMODULE .\MITYPES [x]) \\
210
+ \end {array}
199
211
200
212
.. note ::
201
- No formal reduction rule is required for this instruction, since the |REFNULL | instruction is already a :ref: `value <syntax-val >`.
213
+ No formal reduction rule is required for the case |REFNULL | |ABSHEAPTYPE |,
214
+ since the instruction form is already a :ref: `value <syntax-val >`.
202
215
203
216
204
217
.. _exec-ref.func :
Original file line number Diff line number Diff line change @@ -47,7 +47,7 @@ Any of the aformentioned references can furthermore be wrapped up as an *externa
47
47
\production {vector} & \vecc &::=&
48
48
\V128 .\CONST ~\i128 \\
49
49
\production {reference} & \reff &::=&
50
- \REFNULL ~t \\&&|&
50
+ \REFNULL ~( \absheaptype ~|~ \deftype ) \\&&|&
51
51
\REFI31 NUM~\u31 \\&&|&
52
52
\REFSTRUCTADDR ~\structaddr \\&&|&
53
53
\REFARRAYADDR ~\arrayaddr \\&&|&
You can’t perform that action at this time.
0 commit comments