|
33 | 33 | % is a compile-time error except when it is a getter/setter pair.
|
34 | 34 | % - Change grammar to enable non-function type aliases. Correct rule for
|
35 | 35 | % invoking `F.staticMethod()` where `F` is a type alias.
|
| 36 | +% - Clarify rules about error on mixin application involving private |
| 37 | +% members in different library. |
36 | 38 | %
|
37 | 39 | % 2.8 - 2.10
|
38 | 40 | % - Change several warnings to compile-time errors, matching the actual
|
@@ -5496,17 +5498,20 @@ \subsection{Mixin Application}
|
5496 | 5498 | \LMHash{}%
|
5497 | 5499 | Let \DefineSymbol{L_C} be the library containing the mixin application.
|
5498 | 5500 | \commentary{%
|
5499 |
| -That is, the library containing the clause \code{$S$ \WITH{} $M$} |
5500 |
| -or the clause \code{$S_0$ \WITH{} $M_1$, \ldots,\ $M_k$, $M$} giving rise |
5501 |
| -to the mixin application.% |
| 5501 | +That is, the library containing the clause |
| 5502 | +\code{$S_0$ \WITH{} \List{M}{1}{k}} where |
| 5503 | +$M$ is $M_j$ and |
| 5504 | +$S$ is \code{$S_0$ \WITH{} \List{M}{1}{j - 1}}, |
| 5505 | +for some $j \in 1 .. k$ |
| 5506 | +(so for $j = 1$ we have \code{$S$ \WITH{} $M$, \ldots}).% |
5502 | 5507 | }
|
5503 | 5508 | Let \DefineSymbol{L_M} be the library containing the declaration of $M$.
|
5504 | 5509 |
|
5505 | 5510 | \LMHash{}%
|
5506 | 5511 | Assume that $S$ has a concrete member $m_S$ which is accessible to $L_M$,
|
5507 | 5512 | that $m_S$ has the name $n$ which is private
|
5508 | 5513 | (\commentary{so $m_S$ is declared in $L_M$}),
|
5509 |
| -and that $M$ declares a concrete member $m_M$ which is also named $n$ |
| 5514 | +and that $M$ declares a member $m_M$ which is also named $n$ |
5510 | 5515 | \commentary{(note that $m_M$ is also declared in $L_M$)}.
|
5511 | 5516 | In this case a compile-time error occurs.
|
5512 | 5517 |
|
|
0 commit comments