You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A variable declaration `var ´x_1 , \ldots , x_n´: ´T´` is a shorthand for the
286
+
A variable declaration `var ´x_1, ..., x_n´: ´T´` is a shorthand for the
287
287
sequence of variable declarations `var ´x_1´: ´T´; ...; var ´x_n´: ´T´`.
288
-
A variable definition `var ´x_1 , \ldots , x_n´ = ´e´` is a shorthand for the
288
+
A variable definition `var ´x_1, ..., x_n´ = ´e´` is a shorthand for the
289
289
sequence of variable definitions `var ´x_1´ = ´e´; ...; var ´x_n´ = ´e´`.
290
-
A variable definition `var ´x_1 , \ldots , x_n: T´ = ´e´` is a shorthand for
290
+
A variable definition `var ´x_1, ..., x_n: T´ = ´e´` is a shorthand for
291
291
the sequence of variable definitions
292
292
`var ´x_1: T´ = ´e´; ...; var ´x_n: T´ = ´e´`.
293
293
@@ -407,7 +407,7 @@ definitions with lower bounds `>: ´L´` and upper bounds
407
407
is deferred to [here](07-implicits.html#context-bounds-and-view-bounds).
408
408
409
409
The most general form of a proper type parameter is
410
-
`´@a_1 \ldots @a_n´ ´\pm´ ´t´ >: ´L´ <: ´U´`.
410
+
`´@a_1 ... @a_n´ ´\pm´ ´t´ >: ´L´ <: ´U´`.
411
411
Here, ´L´, and ´U´ are lower and upper bounds that
412
412
constrain possible type arguments for the parameter. It is a
413
413
compile-time error if ´L´ does not conform to ´U´. ´\pm´ is a _variance_, i.e. an optional prefix of either `+`, or
@@ -426,7 +426,7 @@ TODO: this is a pretty awkward description of scoping and distinctness of binder
426
426
427
427
The names of all type parameters must be pairwise different in their enclosing type parameter clause. The scope of a type parameter includes in each case the whole type parameter clause. Therefore it is possible that a type parameter appears as part of its own bounds or the bounds of other type parameters in the same clause. However, a type parameter may not be bounded directly or indirectly by itself.
428
428
429
-
A type constructor parameter adds a nested type parameter clause to the type parameter. The most general form of a type constructor parameter is `´@a_1 \ldots @a_n \pm t[\mathit{tps}\,]´ >: ´L´ <: ´U´`.
429
+
A type constructor parameter adds a nested type parameter clause to the type parameter. The most general form of a type constructor parameter is `´@a_1 ... @a_n \pm t[\mathit{tps}\,]´ >: ´L´ <: ´U´`.
430
430
431
431
The above scoping restrictions are generalized to the case of nested type parameter clauses, which declare higher-order type parameters. Higher-order type parameters (the type parameters of a type parameter ´t´) are only visible in their immediately surrounding parameter clause (possibly including clauses at a deeper nesting level) and in the bounds of ´t´. Therefore, their names must only be pairwise different from the names of other visible parameters. Since the names of higher-order type parameters are thus often irrelevant, they may be denoted with a `‘_’`, which is nowhere visible.
432
432
@@ -491,11 +491,11 @@ changes at the following constructs.
491
491
- The type of a mutable variable is always in invariant position.
492
492
- The right-hand side of a type alias is always in invariant position.
493
493
- The prefix ´S´ of a type selection `´S´#´T´` is always in invariant position.
494
-
- For a type argument ´T´ of a type `´S´[´\ldots T \ldots´ ]`: If the
494
+
- For a type argument ´T´ of a type `´S´[´... T ...´ ]`: If the
495
495
corresponding type parameter is invariant, then ´T´ is in
496
496
invariant position. If the corresponding type parameter is
497
497
contravariant, the variance position of ´T´ is the opposite of
498
-
the variance position of the enclosing type `´S´[´\ldots T \ldots´ ]`.
498
+
the variance position of the enclosing type `´S´[´... T ...´ ]`.
499
499
500
500
<!-- TODO: handle type aliases -->
501
501
@@ -602,7 +602,7 @@ signature and ´T´ is its result type. A _function definition_
602
602
i.e. an expression which defines the function's result. A parameter
603
603
signature consists of an optional type parameter clause `[´\mathit{tps}\,´]`,
604
604
followed by zero or more value parameter clauses
605
-
`(´\mathit{ps}_1´)´\ldots´(´\mathit{ps}_n´)`. Such a declaration or definition
605
+
`(´\mathit{ps}_1´)...(´\mathit{ps}_n´)`. Such a declaration or definition
606
606
introduces a value with a (possibly polymorphic) method type whose
607
607
parameter types and result type are as given.
608
608
@@ -635,7 +635,7 @@ For every parameter ´p_{i,j}´ with a default argument a method named
635
635
expression. Here, ´n´ denotes the parameter's position in the method
636
636
declaration. These methods are parametrized by the type parameter clause
637
637
`[´\mathit{tps}\,´]` and all value parameter clauses
0 commit comments