Skip to content

Commit e40de4e

Browse files
committed
WIP
1 parent 2fa39d2 commit e40de4e

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

specification/dartLangSpec.tex

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21781,7 +21781,7 @@ \subsection{Subtypes}
2178121781
may arise during static analysis due to type promotion
2178221782
(\ref{typePromotion}).
2178321783
They never occur during execution,
21784-
and there are many other restrictions on where they can occur
21784+
and there are several other restrictions on where they can occur
2178521785
(\ref{intersectionTypes}).
2178621786
However, their subtype relations are specified without restrictions.
2178721787
\commentary{%
@@ -23508,9 +23508,6 @@ \section*{Appendix: Algorithmic Subtyping}
2350823508
with good performance.
2350923509

2351023510
\LMHash{}%
23511-
In this algorithm, types are considered to be the same when they have
23512-
the same canonical syntax
23513-
(\ref{theCanonicalSyntaxOfTypes}).
2351423511
The algorithm must be performed such that the first case that matches
2351523512
is always the case which is performed.
2351623513
The algorithm produces results which are both positive and negative
@@ -23684,8 +23681,11 @@ \section*{Appendix: Algorithmic Subtyping}
2368423681
\item \SubtypeNE{[Z_0/Y_0, \ldots, Z_k/Y_k]S_i}{[Z_0/X_0, \ldots, Z_k/X_k]V_i}
2368523682
for $i \in 0 .. q$.
2368623683
\item \SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
23687-
\item $[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}$ and $[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}$
23688-
have the same canonical syntax, for $i \in 0 .. k$.
23684+
\item
23685+
\MutualSubtypeNE{%
23686+
[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}}{%
23687+
[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}},
23688+
for $i \in 0 .. k$.
2368923689
\end{itemize}
2369023690
\item
2369123691
\textbf{Named Function Types:}
@@ -23725,8 +23725,9 @@ \section*{Appendix: Algorithmic Subtyping}
2372523725
\item
2372623726
\SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
2372723727
\item
23728-
$[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}$ and $[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}$
23729-
have the same canonical syntax,
23728+
\MutualSubtypeNE{%
23729+
[Z_0/X_0, \ldots, Z_k/X_k]B_{0i}}{%
23730+
[Z_0/Y_0, \ldots, Z_k/Y_k]B_{1i}},
2373023731
for each $i \in 0 .. k$.
2373123732
\end{itemize}
2373223733

0 commit comments

Comments
 (0)