|
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