@@ -11268,16 +11268,12 @@ \subsection{Function Expressions}
11268
11268
which is used below and in other sections, as follows:
11269
11269
11270
11270
\begin{itemize}
11271
- \item{} If $T$ is a type variable $X$ with bound $B$,
11272
- or $T$ is an intersection type
11273
- (\ref{intersectionTypes})
11274
- \code{$X$\,\,\&\,\,$B$},
11275
- then \DefEquals{\flatten{T}}{\flatten{B}}.
11276
-
11277
11271
\item{} If $T$ is \code{$S$?}\ for some $S$
11278
11272
then \DefEquals{\flatten{T}}{\code{\flatten{S}?}}.
11279
11273
11280
- \item{} If $T$ is \code{FutureOr<$S$>} then \DefEquals{\flatten{T}}{S}.
11274
+ \item{} If $T$ is \code{FutureOr<$S$>} bounded
11275
+ (\ref{bindingActualsToFormals})
11276
+ then \DefEquals{\flatten{T}}{S}.
11281
11277
11282
11278
\item{} If $T$ implements \code{Future<$S$>}
11283
11279
(\ref{interfaceSuperinterfaces})
@@ -11288,7 +11284,13 @@ \subsection{Function Expressions}
11288
11284
11289
11285
\commentary{%
11290
11286
This definition guarantees that for any type $T$,
11291
- \code{$T <:$ FutureOr<$\flatten{T}$>}.%
11287
+ \code{$T <:$ FutureOr<$\flatten{T}$>}.
11288
+ Note that when $X$ is a type variable with bound $B$,
11289
+ it is possible that \flatten{X} is different from $X$:
11290
+ $B$ could, for some $S$, be \code{FutureOr<$S$>},
11291
+ or a type variable $Y$ with bound \code{FutureOr<$S$>},
11292
+ or a class $C$ that implements \code{Future<$S$>},
11293
+ or a type variable $X$ with bound $C$.%
11292
11294
}
11293
11295
11294
11296
\LMHash{}%
0 commit comments