@@ -21767,7 +21767,7 @@ \subsection{Subtypes}
21767
21767
may arise during static analysis due to type promotion
21768
21768
(\ref{typePromotion}).
21769
21769
They never occur during execution,
21770
- and there are many other restrictions on where they can occur
21770
+ and there are several other restrictions on where they can occur
21771
21771
(\ref{intersectionTypes}).
21772
21772
However, their subtype relations are specified without restrictions.
21773
21773
\commentary{%
@@ -23480,9 +23480,6 @@ \section*{Appendix: Algorithmic Subtyping}
23480
23480
with good performance.
23481
23481
23482
23482
\LMHash{}%
23483
- In this algorithm, types are considered to be the same when they have
23484
- the same canonical syntax
23485
- (\ref{theCanonicalSyntaxOfTypes}).
23486
23483
The algorithm must be performed such that the first case that matches
23487
23484
is always the case which is performed.
23488
23485
The algorithm produces results which are both positive and negative
@@ -23656,8 +23653,11 @@ \section*{Appendix: Algorithmic Subtyping}
23656
23653
\item \SubtypeNE{[Z_0/Y_0, \ldots, Z_k/Y_k]S_i}{[Z_0/X_0, \ldots, Z_k/X_k]V_i}
23657
23654
for $i \in 0 .. q$.
23658
23655
\item \SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
23659
- \item $[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}$ and $[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}$
23660
- have the same canonical syntax, for $i \in 0 .. k$.
23656
+ \item
23657
+ \MutualSubtypeNE{%
23658
+ [Z_0/X_0, \ldots, Z_k/X_k]B_{0i}}{%
23659
+ [Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}},
23660
+ for $i \in 0 .. k$.
23661
23661
\end{itemize}
23662
23662
\item
23663
23663
\textbf{Named Function Types:}
@@ -23697,8 +23697,9 @@ \section*{Appendix: Algorithmic Subtyping}
23697
23697
\item
23698
23698
\SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
23699
23699
\item
23700
- $[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}$ and $[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}$
23701
- have the same canonical syntax,
23700
+ \MutualSubtypeNE{%
23701
+ [Z_0/X_0, \ldots, Z_k/X_k]B_{0i}}{%
23702
+ [Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}},
23702
23703
for each $i \in 0 .. k$.
23703
23704
\end{itemize}
23704
23705
0 commit comments