Skip to content

Commit 2cd4d76

Browse files
committed
WIP
1 parent 8bb9943 commit 2cd4d76

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
@@ -21767,7 +21767,7 @@ \subsection{Subtypes}
2176721767
may arise during static analysis due to type promotion
2176821768
(\ref{typePromotion}).
2176921769
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
2177121771
(\ref{intersectionTypes}).
2177221772
However, their subtype relations are specified without restrictions.
2177321773
\commentary{%
@@ -23480,9 +23480,6 @@ \section*{Appendix: Algorithmic Subtyping}
2348023480
with good performance.
2348123481

2348223482
\LMHash{}%
23483-
In this algorithm, types are considered to be the same when they have
23484-
the same canonical syntax
23485-
(\ref{theCanonicalSyntaxOfTypes}).
2348623483
The algorithm must be performed such that the first case that matches
2348723484
is always the case which is performed.
2348823485
The algorithm produces results which are both positive and negative
@@ -23656,8 +23653,11 @@ \section*{Appendix: Algorithmic Subtyping}
2365623653
\item \SubtypeNE{[Z_0/Y_0, \ldots, Z_k/Y_k]S_i}{[Z_0/X_0, \ldots, Z_k/X_k]V_i}
2365723654
for $i \in 0 .. q$.
2365823655
\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$.
2366123661
\end{itemize}
2366223662
\item
2366323663
\textbf{Named Function Types:}
@@ -23697,8 +23697,9 @@ \section*{Appendix: Algorithmic Subtyping}
2369723697
\item
2369823698
\SubtypeNE{[Z_0/X_0, \ldots, Z_k/X_k]U_0}{[Z_0/Y_0, \ldots, Z_k/Y_k]U_1}.
2369923699
\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}},
2370223703
for each $i \in 0 .. k$.
2370323704
\end{itemize}
2370423705

0 commit comments

Comments
 (0)