@@ -21636,7 +21636,7 @@ \subsection{Subtypes}
21636
21636
may arise during static analysis due to type promotion
21637
21637
(\ref{typePromotion}).
21638
21638
They never occur during execution,
21639
- and there are many other restrictions on where they can occur
21639
+ and there are several other restrictions on where they can occur
21640
21640
(\ref{intersectionTypes}).
21641
21641
However, their subtype relations are specified without restrictions.
21642
21642
\commentary{%
@@ -23331,9 +23331,6 @@ \section*{Appendix: Algorithmic Subtyping}
23331
23331
with good performance.
23332
23332
23333
23333
\LMHash{}%
23334
- In this algorithm, types are considered to be the same when they have
23335
- the same canonical syntax
23336
- (\ref{theCanonicalSyntaxOfTypes}).
23337
23334
The algorithm must be performed such that the first case that matches
23338
23335
is always the case which is performed.
23339
23336
The algorithm produces results which are both positive and negative
@@ -23507,8 +23504,11 @@ \section*{Appendix: Algorithmic Subtyping}
23507
23504
\item \SubtypeNE{[Z_0/Y_0, \ldots, Z_k/Y_k]S_i}{[Z_0/X_0, \ldots, Z_k/X_k]V_i}
23508
23505
for $i \in 0 .. q$.
23509
23506
\item \SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
23510
- \item $[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}$ and $[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}$
23511
- have the same canonical syntax, for $i \in 0 .. k$.
23507
+ \item
23508
+ \MutualSubtypeNE{%
23509
+ [Z_0/X_0, \ldots, Z_k/X_k]B_{0i}}{%
23510
+ [Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}},
23511
+ for $i \in 0 .. k$.
23512
23512
\end{itemize}
23513
23513
\item
23514
23514
\textbf{Named Function Types:}
@@ -23548,8 +23548,9 @@ \section*{Appendix: Algorithmic Subtyping}
23548
23548
\item
23549
23549
\SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
23550
23550
\item
23551
- $[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}$ and $[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}$
23552
- have the same canonical syntax,
23551
+ \MutualSubtypeNE{%
23552
+ [Z_0/X_0, \ldots, Z_k/X_k]B_{0i}}{%
23553
+ [Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}},
23553
23554
for each $i \in 0 .. k$.
23554
23555
\end{itemize}
23555
23556
0 commit comments