@@ -22181,36 +22181,6 @@ \subsubsection{Being a Subtype}
2218122181each of the premises of $R$,
2218222182continuing until a rule with no premises is reached.
2218322183
22184- \commentary{%
22185- For rule \SrnNull, note that the \code{Null} type
22186- is a subtype of all non-$\bot$ types,
22187- even though it doesn't actually extend or implement those types.
22188- The other types are effectively treated as if they were nullable,
22189- which makes the null object (\ref{null}) assignable to them.%
22190- }
22191-
22192- \LMHash{}%
22193- The first premise in the
22194- rules~\SrnLeftTypeAlias{} and~\SrnRightTypeAlias{}
22195- is a type alias declaration.
22196- This premise is satisfied in each of the following situations:
22197-
22198- \begin{itemize}
22199- \item A non-generic type alias named $F$ is declared.
22200- In this case $s$ is zero,
22201- no assumptions are made about the existence
22202- of any formal type parameters,
22203- and actual type argument lists are omitted everywhere in the rule.
22204- \item We may choose $s$ and \List{X}{1}{s} such that the following holds:
22205- A generic type alias named $F$ is declared,
22206- with formal type parameters \List{X}{1}{s}.
22207- \commentary{%
22208- Each formal type parameter $X_j$ may have a bound,
22209- but the bounds are never used in this context,
22210- so we do not introduce metavariables for them.%
22211- }
22212- \end{itemize}
22213-
2221422184\LMHash{}%
2221522185Rule~\SrnRightFunction{} has as a premise that `$T$ is a function type'.
2221622186This means that $T$ is a type of one of the forms introduced in
@@ -22248,14 +22218,14 @@ \subsubsection{Being a Subtype}
2224822218}
2224922219
2225022220\commentary{%
22251- The last premise of rule~\SrnSuperinterface {}
22221+ The last premise of rule~\SrnNominal {}
2225222222 substitutes the actual type arguments \List{S}{1}{s} for the
2225322223 formal type parameters \List{X}{1}{s},
2225422224 because \List{T}{1}{m} may contain those formal type parameters.%
2225522225}
2225622226
2225722227\commentary{%
22258- The rules~\SrnCovariance{} and~\SrnSuperinterface {}
22228+ The rules~\SrnCovariance{} and~\SrnNominal {}
2225922229 are applicable to interfaces,
2226022230 but they can be used with classes as well,
2226122231 because a non-generic class $C$ which is used as a type
0 commit comments