@@ -22169,36 +22169,6 @@ \subsubsection{Being a Subtype}
22169
22169
each of the premises of $R$,
22170
22170
continuing until a rule with no premises is reached.
22171
22171
22172
- \commentary{%
22173
- For rule \SrnNull, note that the \code{Null} type
22174
- is a subtype of all non-$\bot$ types,
22175
- even though it doesn't actually extend or implement those types.
22176
- The other types are effectively treated as if they were nullable,
22177
- which makes the null object (\ref{null}) assignable to them.%
22178
- }
22179
-
22180
- \LMHash{}%
22181
- The first premise in the
22182
- rules~\SrnLeftTypeAlias{} and~\SrnRightTypeAlias{}
22183
- is a type alias declaration.
22184
- This premise is satisfied in each of the following situations:
22185
-
22186
- \begin{itemize}
22187
- \item A non-generic type alias named $F$ is declared.
22188
- In this case $s$ is zero,
22189
- no assumptions are made about the existence
22190
- of any formal type parameters,
22191
- and actual type argument lists are omitted everywhere in the rule.
22192
- \item We may choose $s$ and \List{X}{1}{s} such that the following holds:
22193
- A generic type alias named $F$ is declared,
22194
- with formal type parameters \List{X}{1}{s}.
22195
- \commentary{%
22196
- Each formal type parameter $X_j$ may have a bound,
22197
- but the bounds are never used in this context,
22198
- so we do not introduce metavariables for them.%
22199
- }
22200
- \end{itemize}
22201
-
22202
22172
\LMHash{}%
22203
22173
Rule~\SrnRightFunction{} has as a premise that `$T$ is a function type'.
22204
22174
This means that $T$ is a type of one of the forms introduced in
@@ -22236,14 +22206,14 @@ \subsubsection{Being a Subtype}
22236
22206
}
22237
22207
22238
22208
\commentary{%
22239
- The last premise of rule~\SrnSuperinterface {}
22209
+ The last premise of rule~\SrnNominal {}
22240
22210
substitutes the actual type arguments \List{S}{1}{s} for the
22241
22211
formal type parameters \List{X}{1}{s},
22242
22212
because \List{T}{1}{m} may contain those formal type parameters.%
22243
22213
}
22244
22214
22245
22215
\commentary{%
22246
- The rules~\SrnCovariance{} and~\SrnSuperinterface {}
22216
+ The rules~\SrnCovariance{} and~\SrnNominal {}
22247
22217
are applicable to interfaces,
22248
22218
but they can be used with classes as well,
22249
22219
because a non-generic class $C$ which is used as a type
0 commit comments