@@ -22233,36 +22233,6 @@ \subsubsection{Being a Subtype}
2223322233each of the premises of $R$,
2223422234continuing until a rule with no premises is reached.
2223522235
22236- \commentary{%
22237- For rule \SrnNull, note that the \code{Null} type
22238- is a subtype of all non-$\bot$ types,
22239- even though it doesn't actually extend or implement those types.
22240- The other types are effectively treated as if they were nullable,
22241- which makes the null object (\ref{null}) assignable to them.%
22242- }
22243-
22244- \LMHash{}%
22245- The first premise in the
22246- rules~\SrnLeftTypeAlias{} and~\SrnRightTypeAlias{}
22247- is a type alias declaration.
22248- This premise is satisfied in each of the following situations:
22249-
22250- \begin{itemize}
22251- \item A non-generic type alias named $F$ is declared.
22252- In this case $s$ is zero,
22253- no assumptions are made about the existence
22254- of any formal type parameters,
22255- and actual type argument lists are omitted everywhere in the rule.
22256- \item We may choose $s$ and \List{X}{1}{s} such that the following holds:
22257- A generic type alias named $F$ is declared,
22258- with formal type parameters \List{X}{1}{s}.
22259- \commentary{%
22260- Each formal type parameter $X_j$ may have a bound,
22261- but the bounds are never used in this context,
22262- so we do not introduce metavariables for them.%
22263- }
22264- \end{itemize}
22265-
2226622236\LMHash{}%
2226722237Rule~\SrnRightFunction{} has as a premise that `$T$ is a function type'.
2226822238This means that $T$ is a type of one of the forms introduced in
@@ -22300,14 +22270,14 @@ \subsubsection{Being a Subtype}
2230022270}
2230122271
2230222272\commentary{%
22303- The last premise of rule~\SrnSuperinterface {}
22273+ The last premise of rule~\SrnNominal {}
2230422274 substitutes the actual type arguments \List{S}{1}{s} for the
2230522275 formal type parameters \List{X}{1}{s},
2230622276 because \List{T}{1}{m} may contain those formal type parameters.%
2230722277}
2230822278
2230922279\commentary{%
22310- The rules~\SrnCovariance{} and~\SrnSuperinterface {}
22280+ The rules~\SrnCovariance{} and~\SrnNominal {}
2231122281 are applicable to interfaces,
2231222282 but they can be used with classes as well,
2231322283 because a non-generic class $C$ which is used as a type
0 commit comments