Skip to content

Commit f002f93

Browse files
committed
WIP
1 parent 4f29d71 commit f002f93

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
@@ -21769,7 +21769,7 @@ \subsection{Subtypes}
2176921769
may arise during static analysis due to type promotion
2177021770
(\ref{typePromotion}).
2177121771
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
2177321773
(\ref{intersectionTypes}).
2177421774
However, their subtype relations are specified without restrictions.
2177521775
\commentary{%
@@ -23496,9 +23496,6 @@ \section*{Appendix: Algorithmic Subtyping}
2349623496
with good performance.
2349723497

2349823498
\LMHash{}%
23499-
In this algorithm, types are considered to be the same when they have
23500-
the same canonical syntax
23501-
(\ref{theCanonicalSyntaxOfTypes}).
2350223499
The algorithm must be performed such that the first case that matches
2350323500
is always the case which is performed.
2350423501
The algorithm produces results which are both positive and negative
@@ -23672,8 +23669,11 @@ \section*{Appendix: Algorithmic Subtyping}
2367223669
\item \SubtypeNE{[Z_0/Y_0, \ldots, Z_k/Y_k]S_i}{[Z_0/X_0, \ldots, Z_k/X_k]V_i}
2367323670
for $i \in 0 .. q$.
2367423671
\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$.
2367723677
\end{itemize}
2367823678
\item
2367923679
\textbf{Named Function Types:}
@@ -23713,8 +23713,9 @@ \section*{Appendix: Algorithmic Subtyping}
2371323713
\item
2371423714
\SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
2371523715
\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}},
2371823719
for each $i \in 0 .. k$.
2371923720
\end{itemize}
2372023721

0 commit comments

Comments
 (0)