From 0123f1d9d0b796cd65f765ac669b2624794edc06 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Tue, 7 Nov 2017 16:47:06 +0100 Subject: [PATCH] [spec] Use typeuse syntax for call_indirect and allow inline types --- document/core/text/instructions.rst | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/document/core/text/instructions.rst b/document/core/text/instructions.rst index 57723b6ab8..a06aa981ea 100644 --- a/document/core/text/instructions.rst +++ b/document/core/text/instructions.rst @@ -87,7 +87,7 @@ The same label identifier may optionally be repeated after the corresponding :ma All other control instruction are represented verbatim. .. math:: - \begin{array}{llclll} + \begin{array}{llcllll} \production{plain instruction} & \Tplaininstr_I &::=& \text{unreachable} &\Rightarrow& \UNREACHABLE \\ &&|& \text{nop} &\Rightarrow& \NOP \\ &&|& @@ -97,9 +97,13 @@ All other control instruction are represented verbatim. &\Rightarrow& \BRTABLE~l^\ast~l_N \\ &&|& \text{return} &\Rightarrow& \RETURN \\ &&|& \text{call}~~x{:}\Tfuncidx_I &\Rightarrow& \CALL~x \\ &&|& - \text{call\_indirect}~~x{:}\Ttypeidx_I &\Rightarrow& \CALLINDIRECT~x \\ + \text{call\_indirect}~~x,I'{:}\Ttypeuse_I &\Rightarrow& \CALLINDIRECT~x + & (\iff I' = \{\}) \\ \end{array} +.. note:: + The side condition stating that the :ref:`identifier context ` :math:`I'` must be empty in the rule for |CALLINDIRECT| enforces that no identifier can be bound in any |Tparam| declaration appearing in the type annotation. + Abbreviations .............