@@ -22240,36 +22240,6 @@ \subsubsection{Being a Subtype}
22240
22240
each of the premises of $R$,
22241
22241
continuing until a rule with no premises is reached.
22242
22242
22243
- \commentary{%
22244
- For rule \SrnNull, note that the \code{Null} type
22245
- is a subtype of all non-$\bot$ types,
22246
- even though it doesn't actually extend or implement those types.
22247
- The other types are effectively treated as if they were nullable,
22248
- which makes the null object (\ref{null}) assignable to them.%
22249
- }
22250
-
22251
- \LMHash{}%
22252
- The first premise in the
22253
- rules~\SrnLeftTypeAlias{} and~\SrnRightTypeAlias{}
22254
- is a type alias declaration.
22255
- This premise is satisfied in each of the following situations:
22256
-
22257
- \begin{itemize}
22258
- \item A non-generic type alias named $F$ is declared.
22259
- In this case $s$ is zero,
22260
- no assumptions are made about the existence
22261
- of any formal type parameters,
22262
- and actual type argument lists are omitted everywhere in the rule.
22263
- \item We may choose $s$ and \List{X}{1}{s} such that the following holds:
22264
- A generic type alias named $F$ is declared,
22265
- with formal type parameters \List{X}{1}{s}.
22266
- \commentary{%
22267
- Each formal type parameter $X_j$ may have a bound,
22268
- but the bounds are never used in this context,
22269
- so we do not introduce metavariables for them.%
22270
- }
22271
- \end{itemize}
22272
-
22273
22243
\LMHash{}%
22274
22244
Rule~\SrnRightFunction{} has as a premise that `$T$ is a function type'.
22275
22245
This means that $T$ is a type of one of the forms introduced in
@@ -22307,14 +22277,14 @@ \subsubsection{Being a Subtype}
22307
22277
}
22308
22278
22309
22279
\commentary{%
22310
- The last premise of rule~\SrnSuperinterface {}
22280
+ The last premise of rule~\SrnNominal {}
22311
22281
substitutes the actual type arguments \List{S}{1}{s} for the
22312
22282
formal type parameters \List{X}{1}{s},
22313
22283
because \List{T}{1}{m} may contain those formal type parameters.%
22314
22284
}
22315
22285
22316
22286
\commentary{%
22317
- The rules~\SrnCovariance{} and~\SrnSuperinterface {}
22287
+ The rules~\SrnCovariance{} and~\SrnNominal {}
22318
22288
are applicable to interfaces,
22319
22289
but they can be used with classes as well,
22320
22290
because a non-generic class $C$ which is used as a type
0 commit comments