@@ -22155,36 +22155,6 @@ \subsubsection{Being a Subtype}
2215522155each of the premises of $R$,
2215622156continuing until a rule with no premises is reached.
2215722157
22158- \commentary{%
22159- For rule \SrnNull, note that the \code{Null} type
22160- is a subtype of all non-$\bot$ types,
22161- even though it doesn't actually extend or implement those types.
22162- The other types are effectively treated as if they were nullable,
22163- which makes the null object (\ref{null}) assignable to them.%
22164- }
22165-
22166- \LMHash{}%
22167- The first premise in the
22168- rules~\SrnLeftTypeAlias{} and~\SrnRightTypeAlias{}
22169- is a type alias declaration.
22170- This premise is satisfied in each of the following situations:
22171-
22172- \begin{itemize}
22173- \item A non-generic type alias named $F$ is declared.
22174- In this case $s$ is zero,
22175- no assumptions are made about the existence
22176- of any formal type parameters,
22177- and actual type argument lists are omitted everywhere in the rule.
22178- \item We may choose $s$ and \List{X}{1}{s} such that the following holds:
22179- A generic type alias named $F$ is declared,
22180- with formal type parameters \List{X}{1}{s}.
22181- \commentary{%
22182- Each formal type parameter $X_j$ may have a bound,
22183- but the bounds are never used in this context,
22184- so we do not introduce metavariables for them.%
22185- }
22186- \end{itemize}
22187-
2218822158\LMHash{}%
2218922159Rule~\SrnRightFunction{} has as a premise that `$T$ is a function type'.
2219022160This means that $T$ is a type of one of the forms introduced in
@@ -22222,14 +22192,14 @@ \subsubsection{Being a Subtype}
2222222192}
2222322193
2222422194\commentary{%
22225- The last premise of rule~\SrnSuperinterface {}
22195+ The last premise of rule~\SrnNominal {}
2222622196 substitutes the actual type arguments \List{S}{1}{s} for the
2222722197 formal type parameters \List{X}{1}{s},
2222822198 because \List{T}{1}{m} may contain those formal type parameters.%
2222922199}
2223022200
2223122201\commentary{%
22232- The rules~\SrnCovariance{} and~\SrnSuperinterface {}
22202+ The rules~\SrnCovariance{} and~\SrnNominal {}
2223322203 are applicable to interfaces,
2223422204 but they can be used with classes as well,
2223522205 because a non-generic class $C$ which is used as a type
0 commit comments