@@ -22240,36 +22240,6 @@ \subsubsection{Being a Subtype}
2224022240each of the premises of $R$,
2224122241continuing until a rule with no premises is reached.
2224222242
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-
2227322243\LMHash{}%
2227422244Rule~\SrnRightFunction{} has as a premise that `$T$ is a function type'.
2227522245This means that $T$ is a type of one of the forms introduced in
@@ -22307,14 +22277,14 @@ \subsubsection{Being a Subtype}
2230722277}
2230822278
2230922279\commentary{%
22310- The last premise of rule~\SrnSuperinterface {}
22280+ The last premise of rule~\SrnNominal {}
2231122281 substitutes the actual type arguments \List{S}{1}{s} for the
2231222282 formal type parameters \List{X}{1}{s},
2231322283 because \List{T}{1}{m} may contain those formal type parameters.%
2231422284}
2231522285
2231622286\commentary{%
22317- The rules~\SrnCovariance{} and~\SrnSuperinterface {}
22287+ The rules~\SrnCovariance{} and~\SrnNominal {}
2231822288 are applicable to interfaces,
2231922289 but they can be used with classes as well,
2232022290 because a non-generic class $C$ which is used as a type
0 commit comments