@@ -21769,7 +21769,7 @@ \subsection{Subtypes}
21769
21769
may arise during static analysis due to type promotion
21770
21770
(\ref{typePromotion}).
21771
21771
They never occur during execution,
21772
- and there are many other restrictions on where they can occur
21772
+ and there are several other restrictions on where they can occur
21773
21773
(\ref{intersectionTypes}).
21774
21774
However, their subtype relations are specified without restrictions.
21775
21775
\commentary{%
@@ -23496,9 +23496,6 @@ \section*{Appendix: Algorithmic Subtyping}
23496
23496
with good performance.
23497
23497
23498
23498
\LMHash{}%
23499
- In this algorithm, types are considered to be the same when they have
23500
- the same canonical syntax
23501
- (\ref{theCanonicalSyntaxOfTypes}).
23502
23499
The algorithm must be performed such that the first case that matches
23503
23500
is always the case which is performed.
23504
23501
The algorithm produces results which are both positive and negative
@@ -23672,8 +23669,11 @@ \section*{Appendix: Algorithmic Subtyping}
23672
23669
\item \SubtypeNE{[Z_0/Y_0, \ldots, Z_k/Y_k]S_i}{[Z_0/X_0, \ldots, Z_k/X_k]V_i}
23673
23670
for $i \in 0 .. q$.
23674
23671
\item \SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
23675
- \item $[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}$ and $[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}$
23676
- have the same canonical syntax, for $i \in 0 .. k$.
23672
+ \item
23673
+ \MutualSubtypeNE{%
23674
+ [Z_0/X_0, \ldots, Z_k/X_k]B_{0i}}{%
23675
+ [Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}},
23676
+ for $i \in 0 .. k$.
23677
23677
\end{itemize}
23678
23678
\item
23679
23679
\textbf{Named Function Types:}
@@ -23713,8 +23713,9 @@ \section*{Appendix: Algorithmic Subtyping}
23713
23713
\item
23714
23714
\SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
23715
23715
\item
23716
- $[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}$ and $[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}$
23717
- have the same canonical syntax,
23716
+ \MutualSubtypeNE{%
23717
+ [Z_0/X_0, \ldots, Z_k/X_k]B_{0i}}{%
23718
+ [Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}},
23718
23719
for each $i \in 0 .. k$.
23719
23720
\end{itemize}
23720
23721
0 commit comments