@@ -22169,36 +22169,6 @@ \subsubsection{Being a Subtype}
2216922169each of the premises of $R$,
2217022170continuing until a rule with no premises is reached.
2217122171
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-
2220222172\LMHash{}%
2220322173Rule~\SrnRightFunction{} has as a premise that `$T$ is a function type'.
2220422174This means that $T$ is a type of one of the forms introduced in
@@ -22236,14 +22206,14 @@ \subsubsection{Being a Subtype}
2223622206}
2223722207
2223822208\commentary{%
22239- The last premise of rule~\SrnSuperinterface {}
22209+ The last premise of rule~\SrnNominal {}
2224022210 substitutes the actual type arguments \List{S}{1}{s} for the
2224122211 formal type parameters \List{X}{1}{s},
2224222212 because \List{T}{1}{m} may contain those formal type parameters.%
2224322213}
2224422214
2224522215\commentary{%
22246- The rules~\SrnCovariance{} and~\SrnSuperinterface {}
22216+ The rules~\SrnCovariance{} and~\SrnNominal {}
2224722217 are applicable to interfaces,
2224822218 but they can be used with classes as well,
2224922219 because a non-generic class $C$ which is used as a type
0 commit comments