@@ -1972,7 +1972,7 @@ Control Instructions
1972
1972
1973
1973
* The tag :math: `C.\CTAGS [x]` must be defined in the context.
1974
1974
1975
- * Let :math: `[t^\ast ] \to [{t'}^\ast ]` be the :ref: `tag type <syntax-tagtype >` :math: `C.\CTAGS [x]`.
1975
+ * Let :math: `[t^\ast ] \to [{t'}^\ast ]` be the :ref: `expansion < aux-expand-deftype >` of the :ref: ` tag type <syntax-tagtype >` :math: `C.\CTAGS [x]`.
1976
1976
1977
1977
* The :ref: `result type <syntax-resulttype >` :math: `[{t'}^\ast ]` must be empty.
1978
1978
@@ -1984,7 +1984,7 @@ Control Instructions
1984
1984
1985
1985
.. math ::
1986
1986
\frac {
1987
- C.\CTAGS [x] = [t^\ast ] \toF []
1987
+ \expanddt ( C.\CTAGS [x]) = [t^\ast ] \toF []
1988
1988
\qquad
1989
1989
C.\CLABELS [l] = [t^\ast ]
1990
1990
}{
@@ -1996,21 +1996,21 @@ Control Instructions
1996
1996
1997
1997
* The tag :math: `C.\CTAGS [x]` must be defined in the context.
1998
1998
1999
- * Let :math: `[t^\ast ] \to [{t'}^\ast ]` be the :ref: `tag type <syntax-tagtype >` :math: `C.\CTAGS [x]`.
1999
+ * Let :math: `[t^\ast ] \to [{t'}^\ast ]` be the :ref: `expansion < aux-expand-deftype >` of the :ref: ` tag type <syntax-tagtype >` :math: `C.\CTAGS [x]`.
2000
2000
2001
2001
* The :ref: `result type <syntax-resulttype >` :math: `[{t'}^\ast ]` must be empty.
2002
2002
2003
2003
* The label :math: `C.\CLABELS [l]` must be defined in the context.
2004
2004
2005
- * The :ref: `result type <syntax-resulttype >` :math: `[t^\ast ]` must be the same as :math: `C.\CLABELS [l]` with | EXNREF | appended .
2005
+ * The :ref: `result type <syntax-resulttype >` :math: `[t^\ast ~( \REF ~ \EXN ) ]` must :ref: ` match < match-resulttype >` :math: `C.\CLABELS [l]`.
2006
2006
2007
2007
* Then the catch clause is valid.
2008
2008
2009
2009
.. math ::
2010
2010
\frac {
2011
- C.\CTAGS [x] = [t^\ast ] \toF []
2011
+ \expanddt ( C.\CTAGS [x]) = [t^\ast ] \toF []
2012
2012
\qquad
2013
- C. \CLABELS [l] = [t^\ast ~\EXNREF ]
2013
+ C \vdashresulttypematch [t^\ast ~( \REF ~ \EXN )] \matchesresulttype C. \CLABELS [l ]
2014
2014
}{
2015
2015
C \vdashcatch \CATCHREF ~x~l \ok
2016
2016
}
@@ -2036,13 +2036,13 @@ Control Instructions
2036
2036
2037
2037
* The label :math: `C.\CLABELS [l]` must be defined in the context.
2038
2038
2039
- * The :ref: `result type <syntax-resulttype >` :math: `C. \CLABELS [l] must be :math:`[ \EXNREF ]`.
2039
+ * The :ref: `result type <syntax-resulttype >` :math: `[( \REF ~ \EXN )]` must :ref: ` match < match-resulttype >` :math: `C. \CLABELS [l ]`.
2040
2040
2041
2041
* Then the catch clause is valid.
2042
2042
2043
2043
.. math ::
2044
2044
\frac {
2045
- C. \CLABELS [l] = [ \EXNREF ]
2045
+ C \vdashresulttypematch [( \REF ~ \EXN )] \matchesresulttype C. \CLABELS [l ]
2046
2046
}{
2047
2047
C \vdashcatch \CATCHALLREF ~l \ok
2048
2048
}
0 commit comments