July 24, 2004
"J C Calvarese" <jcc7@cox.net> wrote in message news:cdurdu$1cm6$1@digitaldaemon.com...
> Kris wrote:
> > Hi Justin: inline
> >
> > "J C Calvarese"wrote ...
> >
> >>I've often read people on this newsgroup lobbying for the compiler to *require* the programmer to do things the hard way to keep the programmer from accidentily doing things wrong. Before the alias is
> >
> >
> > If your referring to me, then yes; I do advocate such things. But in
those
> > where I do, it's when there's no other valid context (or, at least
no-one
> > has come up with anything to the contrary).
>
> You asked for an explanation of "the benefits of those particular resolution rules", so I came up a possible benefit. The benefit may be achieved better by another method but it could be a benefit.

I'm sorry, there was a misunderstanding there. I was referring to a different topic where I've been advocating a stricter application of the language. I thought that's perhaps what you were referring to :-)

You did indeed come up with possible benefits for this one, and those were much appreciated.

> Often, Walter doesn't agree to change things until we gang up on him. I think there are really several issues at play here. Perhaps more could be achieved by breaking them into the separate parts:
>
> 1. External Names
>     Possible solutions:
>     a.  Change the compiler to not do the offending behavior.
>     b.  Don't import within the class unless you want this behavior.
>         If this still creates additional problems (as I know it did in
>         the past with forward references), maybe those problems would be
>         easier to fix that convincing Walter to redesign the name lookup
>         rules.
>
> 2. Satisfying Interface Contracts
>     I agree with you on this one. I don't understand at all why this
>     doesn't automatically inherit the needed method. Am I being dense?
>     Maybe we can convince Walter that this is an actual bug that needed
>     fixing.
>
> 3. The Alias peek-a-boo Game
>     Possible solutions:
>     a.  Change the compiler to not do the offending behavior.
>     b.  Clearly document that the alias should be added if the super's
>         methods are wanted.
>
> Your document is well-organized, but it might be easier to build consensus one page at a time. Point 2 seems the least controversial, yet it also seems to be the least discussed in this thread.
>
> >
> > - Kris
>
> --
> Justin (a/k/a jcc7)

Breaking it into three topics is a good idea (I think it might have already happened). The reason they were all in one document to begin with is that there's perhaps an inherent problem with name resolution in general.

All very good suggestions though. Please take a look at the revised document (posted soon) which speculates a reason for all of these "issues".



July 24, 2004
On Sat, 24 Jul 2004 10:17:01 -0700, Kris wrote:

> Also, please note that following doesn't even compile:
> 
> class Writer
> {
>         void put (bit x){}
>         void put (int x){}
> }
> 
> class MyWriter : Writer
> {
>         alias Writer.put put;
> 
>         void put (bit x){}
> }
> 
> "function put conflicts with MyWriter.put"

This is just a bug. If the sub-class has a method with the same signature as the *first* method in the super class and the alias appears before the methods, then the alias will generate an error message.

Try swapping the methods in the Writer class. Message goes away.
Change the signature in the sub-class to (int x). Message goes away.
Move the alias to be after the method in the sub-class. Message goes away.

This is just a bug.

-- 
Derek
Melbourne, Australia
July 25, 2004
I'm somewhat loath to post this (for a number of reasons), but will anyway. Here's a revised edition, with some additional clarification in the Interfaces section (the grayed sections), some minor example fixes per Derek's post, and an addendum that speculates as to what's really going on behind all this.

JCC makes a very good point about trying to address each of these in individual threads. They may exist already, but I could be wrong.

For those who may think I'm just having a go at Walter, please consider how confusing it can be to have three individual non-obvious issues within just one specific area of the language.

- Kris


"some idiot" <fu@bar.org> wrote in message news:cdsd5t$u5$1@digitaldaemon.com...
> Attached is a small pdf noting three outstanding issues ~ each of which
has
> various bug reports stretching back into the old NG. Given that the v1.0 release is getting closer, it seemed appropriate to try getting some priority and/or traction.
>
> Such things might simply fall by the wayside otherwise.
>
>
>


begin 666 The Three Sins of D Name Resolution.pdf
M)5!$1BTQ+C,*)>+CS],*,B P(&]B:@H\/ HO4')O9'5C97(@*$)#3"!E87-Y
M4$1&(#,N,3$N,C I"CX^"F5N9&]B:@H*-R P(&]B:@I;"C<W." @-S<X(" W
M-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W
M-S@@(#<W." @-S<X(" W-S@@(#<W." *-S<X(" W-S@@(#<W." @-S<X(" W
M-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W
M-S@@(#<W." @-S<X( HR-3 @(#,S,R @-# X(" U,# @(#4P," @.#,S(" W
M-S@@(#$X," @,S,S(" S,S,@(#4P," @-38T(" R-3 @(#,S,R @,C4P(" R
M-S@@"C4P," @-3 P(" U,# @(#4P," @-3 P(" U,# @(#4P," @-3 P(" U
M,# @(#4P," @,C<X(" R-S@@(#4V-" @-38T(" U-C0@(#0T-" *.3(Q(" W
M,C(@(#8V-R @-C8W(" W,C(@(#8Q,2 @-34V(" W,C(@(#<R,B @,S,S(" S
M.#D@(#<R,B @-C$Q(" X.#D@(#<R,B @-S(R( HU-38@(#<R,B @-C8W(" U
M-38@(#8Q,2 @-S(R(" W,C(@(#DT-" @-S(R(" W,C(@(#8Q,2 @,S,S(" R
M-S@@(#,S,R @-#8Y(" U,# @"C,S,R @-#0T(" U,# @(#0T-" @-3 P(" T
M-#0@(#,S,R @-3 P(" U,# @(#(W." @,C<X(" U,# @(#(W." @-S<X(" U
M,# @(#4P," *-3 P(" U,# @(#,S,R @,S@Y(" R-S@@(#4P," @-3 P(" W
M,C(@(#4P," @-3 P(" T-#0@(#0X," @,C P(" T.# @(#4T,2 @-S<X( HU
M,# @(#<W." @,S,S(" U,# @(#0T-" @,3 P," @-3 P(" U,# @(#,S,R @
M,3 P," @-34V(" S,S,@(#@X.2 @-S<X(" V,3$@(#<W." *-S<X(" S,S,@
M(#,S,R @-#0T(" T-#0@(#,U," @-3 P(" Q,# P(" S,S,@(#DX," @,S@Y
M(" S,S,@(#<R,B @-S<X(" T-#0@(#<R,B *,C4P(" S,S,@(#4P," @-3 P
M(" U,# @(#4P," @,C P(" U,# @(#,S,R @-S8P(" R-S8@(#4P," @-38T
M(" S,S,@(#<V," @-3 P( HT,# @(#4T.2 @,S P(" S,# @(#,S,R @-3<V
M(" T-3,@(#(U," @,S,S(" S,# @(#,Q," @-3 P(" W-3 @(#<U," @-S4P
M(" T-#0@"C<R,B @-S(R(" W,C(@(#<R,B @-S(R(" W,C(@(#@X.2 @-C8W
M(" V,3$@(#8Q,2 @-C$Q(" V,3$@(#,S,R @,S,S(" S,S,@(#,S,R *-S(R
M(" W,C(@(#<R,B @-S(R(" W,C(@(#<R,B @-S(R(" U-C0@(#<R,B @-S(R
M(" W,C(@(#<R,B @-S(R(" W,C(@(#4U-B @-3 P( HT-#0@(#0T-" @-#0T
M(" T-#0@(#0T-" @-#0T(" V-C<@(#0T-" @-#0T(" T-#0@(#0T-" @-#0T
M(" R-S@@(#(W." @,C<X(" R-S@@"C4P," @-3 P(" U,# @(#4P," @-3 P
M(" U,# @(#4P," @-30Y(" U,# @(#4P," @-3 P(" U,# @(#4P," @-3 P
M(" U,# @(#4P," *70IE;F1O8FH*"CD@,"!O8FH*6PHW-3 @(#<U," @-S4P
M(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P
M(" W-3 @(#<U," @-S4P(" W-3 @"C<U," @-S4P(" W-3 @(#<U," @-S4P
M(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P
M(" W-3 @(#<U," *,C<X(" S,S,@(#0W-" @-34V(" U-38@(#@X.2 @-S(R
M(" R,S@@(#,S,R @,S,S(" S.#D@(#4X-" @,C<X(" S,S,@(#(W." @,C<X
M( HU-38@(#4U-B @-34V(" U-38@(#4U-B @-34V(" U-38@(#4U-B @-34V
M(" U-38@(#,S,R @,S,S(" U.#0@(#4X-" @-3@T(" V,3$@"CDW-2 @-S(R
M(" W,C(@(#<R,B @-S(R(" V-C<@(#8Q,2 @-S<X(" W,C(@(#(W." @-34V
M(" W,C(@(#8Q,2 @.#,S(" W,C(@(#<W." *-C8W(" W-S@@(#<R,B @-C8W
M(" V,3$@(#<R,B @-C8W(" Y-#0@(#8V-R @-C8W(" V,3$@(#,S,R @,C<X
M(" S,S,@(#4X-" @-34V( HS,S,@(#4U-B @-C$Q(" U-38@(#8Q,2 @-34V
M(" S,S,@(#8Q,2 @-C$Q(" R-S@@(#(W." @-34V(" R-S@@(#@X.2 @-C$Q
M(" V,3$@"C8Q,2 @-C$Q(" S.#D@(#4U-B @,S,S(" V,3$@(#4U-B @-S<X
M(" U-38@(#4U-B @-3 P(" S.#D@(#(X," @,S@Y(" U.#0@(#<U," *-34V
M(" W-3 @(#(W." @-34V(" U,# @(#$P,# @(#4U-B @-34V(" S,S,@(#$P
M,# @(#8V-R @,S,S(" Q,# P(" W-3 @(#8Q,2 @-S4P( HW-3 @(#(W." @
M,C<X(" U,# @(#4P," @,S4P(" U-38@(#$P,# @(#,S,R @,3 P," @-34V
M(" S,S,@(#DT-" @-S4P(" U,# @(#8V-R *,C<X(" S,S,@(#4U-B @-34V
M(" U-38@(#4U-B @,C@P(" U-38@(#,S,R @-S,W(" S-S @(#4U-B @-3@T
M(" S,S,@(#<S-R @-34R( HT,# @(#4T.2 @,S,S(" S,S,@(#,S,R @-3<V
M(" U-38@(#(W." @,S,S(" S,S,@(#,V-2 @-34V(" X,S0@(#@S-" @.#,T
M(" V,3$@"C<R,B @-S(R(" W,C(@(#<R,B @-S(R(" W,C(@(#$P,# @(#<R
M,B @-C8W(" V-C<@(#8V-R @-C8W(" R-S@@(#(W." @,C<X(" R-S@@"C<R
M,B @-S(R(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-3@T(" W-S@@(#<R
M,B @-S(R(" W,C(@(#<R,B @-C8W(" V-C<@(#8Q,2 *-34V(" U-38@(#4U
M-B @-34V(" U-38@(#4U-B @.#@Y(" U-38@(#4U-B @-34V(" U-38@(#4U
M-B @,C<X(" R-S@@(#(W." @,C<X( HV,3$@(#8Q,2 @-C$Q(" V,3$@(#8Q
M,2 @-C$Q(" V,3$@(#4T.2 @-C$Q(" V,3$@(#8Q,2 @-C$Q(" V,3$@(#4U
M-B @-C$Q(" U-38@"ET*96YD;V)J"@HQ,2 P(&]B:@I;"C<W." @-S<X(" W
M-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W
M-S@@(#<W." @-S<X(" W-S@@(#<W." *-S<X(" W-S@@(#<W." @-S<X(" W
M-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-S<X(" W
M-S@@(#<W." @-S<X( HR-3 @(#,S,R @-#(P(" U,# @(#4P," @.#,S(" W
M-S@@(#(Q-" @,S,S(" S,S,@(#4P," @-C<U(" R-3 @(#,S,R @,C4P(" R
M-S@@"C4P," @-3 P(" U,# @(#4P," @-3 P(" U,# @(#4P," @-3 P(" U
M,# @(#4P," @,S,S(" S,S,@(#8W-2 @-C<U(" V-S4@(#4P," *.3(P(" V
M,3$@(#8Q,2 @-C8W(" W,C(@(#8Q,2 @-C$Q(" W,C(@(#<R,B @,S,S(" T
M-#0@(#8V-R @-34V(" X,S,@(#8V-R @-S(R( HV,3$@(#<R,B @-C$Q(" U
M,# @(#4U-B @-S(R(" V,3$@(#@S,R @-C$Q(" U-38@(#4U-B @,S@Y(" R
M-S@@(#,X.2 @-#(R(" U,# @"C,S,R @-3 P(" U,# @(#0T-" @-3 P(" T
M-#0@(#(W." @-3 P(" U,# @(#(W." @,C<X(" T-#0@(#(W." @-S(R(" U
M,# @(#4P," *-3 P(" U,# @(#,X.2 @,S@Y(" R-S@@(#4P," @-#0T(" V
M-C<@(#0T-" @-#0T(" S.#D@(#0P," @,C<U(" T,# @(#4T,2 @-S<X( HU
M,# @(#<W." @,S,S(" U,# @(#4U-B @.#@Y(" U,# @(#4P," @,S,S(" Q
M,# P(" U,# @(#,S,R @.30T(" W-S@@(#4U-B @-S<X( HW-S@@(#,S,R @
M,S,S(" U-38@(#4U-B @,S4P(" U,# @(#@X.2 @,S,S(" Y.# @(#,X.2 @
M,S,S(" V-C<@(#<W." @,S@Y(" U-38@"C(U," @,S@Y(" U,# @(#4P," @
M-3 P(" U,# @(#(W-2 @-3 P(" S,S,@(#<V," @,C<V(" U,# @(#8W-2 @
M,S,S(" W-C @(#4P," *-# P(" U-#D@(#,P," @,S P(" S,S,@(#4W-B @
M-3(S(" R-3 @(#,S,R @,S P(" S,3 @(#4P," @-S4P(" W-3 @(#<U," @
M-3 P( HV,3$@(#8Q,2 @-C$Q(" V,3$@(#8Q,2 @-C$Q(" X.#D@(#8V-R @
M-C$Q(" V,3$@(#8Q,2 @-C$Q(" S,S,@(#,S,R @,S,S(" S,S,@"C<R,B @
M-C8W(" W,C(@(#<R,B @-S(R(" W,C(@(#<R,B @-C<U(" W,C(@(#<R,B @
M-S(R(" W,C(@(#<R,B @-34V(" V,3$@(#4P," *-3 P(" U,# @(#4P," @
M-3 P(" U,# @(#4P," @-C8W(" T-#0@(#0T-" @-#0T(" T-#0@(#0T-" @
M,C<X(" R-S@@(#(W." @,C<X( HU,# @(#4P," @-3 P(" U,# @(#4P," @
M-3 P(" U,# @(#4T.2 @-3 P(" U,# @(#4P," @-3 P(" U,# @(#0T-" @
M-3 P(" T-#0@"ET*96YD;V)J"@HQ,R P(&]B:@I;"C<U," @-S4P(" W-3 @
M(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @
M(#<U," @-S4P(" W-3 @(#<U," *-S4P(" W-3 @(#<U," @-S4P(" W-3 @
M(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @(#<U," @-S4P(" W-3 @
M(#<U," @-S4P( HR-S@@(#(W." @,S4U(" U-38@(#4U-B @.#@Y(" V-C<@
M(#$Y,2 @,S,S(" S,S,@(#,X.2 @-3@T(" R-S@@(#,S,R @,C<X(" R-S@@
M"C4U-B @-34V(" U-38@(#4U-B @-34V(" U-38@(#4U-B @-34V(" U-38@
M(#4U-B @,C<X(" R-S@@(#4X-" @-3@T(" U.#0@(#4U-B *,3 Q-2 @-C8W
M(" V-C<@(#<R,B @-S(R(" V-C<@(#8Q,2 @-S<X(" W,C(@(#(W." @-3 P
M(" V-C<@(#4U-B @.#,S(" W,C(@(#<W." *-C8W(" W-S@@(#<R,B @-C8W
M(" V,3$@(#<R,B @-C8W(" Y-#0@(#8V-R @-C8W(" V,3$@(#(W." @,C<X
M(" R-S@@(#0V.2 @-34V( HS,S,@(#4U-B @-34V(" U,# @(#4U-B @-34V
M(" R-S@@(#4U-B @-34V(" R,C(@(#(R,B @-3 P(" R,C(@(#@S,R @-34V
M(" U-38@"C4U-B @-34V(" S,S,@(#4P," @,C<X(" U-38@(#4P," @-S(R
M(" U,# @(#4P," @-3 P(" S,S0@(#(V," @,S,T(" U.#0@(#<U," *-34V
M(" W-3 @(#(R,B @-34V(" S,S,@(#$P,# @(#4U-B @-34V(" S,S,@(#$P
M,# @(#8V-R @,S,S(" Q,# P(" W-3 @(#8Q,2 @-S4P( HW-3 @(#(R,B @
M,C(R(" S,S,@(#,S,R @,S4P(" U-38@(#$P,# @(#,S,R @,3 P," @-3 P
M(" S,S,@(#DT-" @-S4P(" U,# @(#8V-R *,C<X(" S,S,@(#4U-B @-34V
M(" U-38@(#4U-B @,C8P(" U-38@(#,S,R @-S,W(" S-S @(#4U-B @-3@T
M(" S,S,@(#<S-R @-34R( HT,# @(#4T.2 @,S,S(" S,S,@(#,S,R @-3<V
M(" U,S<@(#(W." @,S,S(" S,S,@(#,V-2 @-34V(" X,S0@(#@S-" @.#,T
M(" V,3$@"C8V-R @-C8W(" V-C<@(#8V-R @-C8W(" V-C<@(#$P,# @(#<R
M,B @-C8W(" V-C<@(#8V-R @-C8W(" R-S@@(#(W." @,C<X(" R-S@@"C<R
M,B @-S(R(" W-S@@(#<W." @-S<X(" W-S@@(#<W." @-3@T(" W-S@@(#<R
M,B @-S(R(" W,C(@(#<R,B @-C8W(" V-C<@(#8Q,2 *-34V(" U-38@(#4U
M-B @-34V(" U-38@(#4U-B @.#@Y(" U,# @(#4U-B @-34V(" U-38@(#4U
M-B @,C<X(" R-S@@(#(W." @,C<X( HU-38@(#4U-B @-34V(" U-38@(#4U
M-B @-34V(" U-38@(#4T.2 @-C$Q(" U-38@(#4U-B @-34V(" U-38@(#4P
M," @-34V(" U,# @"ET*96YD;V)J"@HQ-2 P(&]B:@H\/ HO3&5N9W1H(#(S
M-#4*+T9I;'1E<B O1FQA=&5$96-O9&4*/CX*<W1R96%M"GC:G5A)<^2V%;[K
M5^ (IM0T`.Z>6^1QE7WPP5%5#C,^H$FHN^T6V>$BS3B5_YZW`"1[B:R)5%*S
M0>"MW]OP]\>[[W[4F=#B\>FNB"NC*Z'@US]62B3X*!Z?[S[)7]W+83ATT29)
M92LB8Z2Y%S]/QVB3IO(K+RAXJZ1*H]_$X\]W61HK761 \+&YDSH2C[\COYSY
MZ3Q61:F)87@&CGF5Q#ES?-P[\1B95.Y[Y\0_#NT@NB?Q@_C%/COQJQNZXS0>
M.I"%N"V::,-$#=$K3%R80/ 0I:4<!,BLY"%*BO!L\2.7V_X094JZ)WP%2_ ,
MCT9V?;0QN;1?HS3!];3BT^T(]@#%>>EU'QDM[0C?\D*.]&;O4 $F9:=Q3Y1H
M`0Q5=^U #!O7HR FH5-:=GQ@"X>)GZEDVS%!N\6U(W)W^"9C"6G!O@[B@(YH
M!6Q.F'L@T*/!\.O$A$"!4J+U\"78E:VHQ$;'.JDJ]-DG^8R;'(C=P+ZRE*U%
M=9Z).TJ<Y?(5"%5!6]"F1'2@.2X,D%?R!_PH4=92VA9EV4UVYV)8+K3\:211
M>"M)AQQR+5_!*TGBZ?%_UWK%8"L(`![TW-AP%ZP+<.D7?#Z!$9!HDLE]=W+L
M=#;YWD8F\& B0_<<&;8R[/(0\)X\1JEFFY_9+0MV0WMN=#(3)S\,SB_6J#P!
M3(.=V!)H8 VD61LB[>EO-%AE&W31@!O;-*B(F\\ERF]8T,J":\#'"^WK!R),
M#D>".E9TLEKB0!L%*+'D'EK\TS7WM$E+/)W+MD92@?!:-T^5^$]M0\9DF+0H
ME\<NF,W(VTB[!(7 X!C[J48DYR"?[9V@( !I2+JN7;GA*RHG:CN,'!0<GF+P
M`=JRD$]DB8[,0]*%.%D[_]01#GV XQD=3/IJ^R9>Y#>QJ8+\D*QZ-$P%6M"#
M5F7 (:0O)(*+VN>=MB%_G=@\#>.9#8I$%"@$KG&C)]0[T#*#W.+(WPK 5,,9
M,(S%X$AE1PY4RB<AEJ6L`/$=X79[C#)PQC,:#+>6RHL)>\@2;'J2[0FCS0UC
M3"0KRL,01!Y=M*5'.]\"_ARWIM2KU* I,DU.:>CD:O)2%9(DIKN$+5.R-"=O
M<#[+%MOAF3F4?1[H,2/-H0A<*_FP&<:O$>B\),DR"\BL%T>O$Z"BS!8@.WR(
M$BW]BPN4HPZ#`W V!#0(0(R8-&.E<W6I]"VL#W:$- UTGM =!%T2AE34P/.G
M=G0]`<_6A*4*(?"OB5S=@Q<!"VO(#!BF1@?O$[%%>Y5?*:'6&1O<2:BJ\E4N
M**D\U6#@",*)85?F5\E6@SDX#.FHI;-%ODYJI8\E/A2(3P,&^4T,]6X'<79
MAY%%RG4MX50#\G\V)D$@3.UF/^.R\7:$E^EJ+Z5C@!L#:4^AQ7'#AO%1E7O_
M8[TC.?5%=9G+6\4M`QZI27L[#%AX,62J2GZT]9[K#G$NBC,%J Z C1#(B;04
MDZ?C7%.+Q0VWP+.U3*/AK=.)( PV8G(GKQ@G%D+/C4@LKG!=<GDN/7#6F9@I
M["/CC4P;*-&61J[3=+**U(PME&>^=/SIH'-)] )+>'/RJ?AWZC+J\3[T1AAC
M'6>I&3H:/6X&3J2W8+/4K3\<%1I*H7.*"]5EM8K5) U]`G5@H#Z;ZCB'$'M[
M.SVC[T_\;=7\A7S=M62HW'O<0VE5BB$'78-AUA90@(TGVX7=/TQ4-:@)4AQ9
M67YV-J@"!)J.52*1O1$0NBD@!4&9YY!4;@.*0N:L`BU5X"PW#7:&0(-]9NEE
M-)A_7AVZAS(AF^T9-]@_G+ "%KS-=OMQLW>VQSIF1YHE?"+G*/ EF*M\QUTR
MOYH8EJ-;^N39A#NP'F0`)R@GA&F@N)P&TD+%J<@,M#XI#@3@U.-QV!_&,)E<
MS0^9RL]/8%Z)+P<9$U>YJOP9?H;!(RUT&&0^?AFQ4!UQ<J'J/+PYLJ0P."5A
M9$$+<FQY99_0X-T1ZCE@[?70(@; -^T!%TXG-P[BJ<?6-9/"M@+G!8S6WOH0
M%5M+J<IM:NZY.'/=P^8&FBX"`)?)WHT4D$Y0+N;"S/%++EE#QN(D]KW'5PS:
MT%\N^AUJ6;XQ8J:)BE7)VM9'BZ4-)$+'BX<.V;0-VFP"-ZW06^J4ILI_DS/2
M.$O3E-.!U@QKB]#=HN)(!#J.%_SL"-"0.\$\];$C;HYL]5E^CCZL>[LD,<5[
M2?4.O]"^!BC5T%!F1O:??A,-=B+#N-#>D+#)6ECY']("N"9Q6B8^+B^,\>.!
MPH@8/9#@BV%0_N_17-G_,%=@=&4N;\=/D(L/+Q'D'M)A=)BRQ>$9.9Z(;#]"
M,]W$=7P\H$;MA%R^8+C32K9>^;"VHC)O<:#N8A0\.>,+%O_H,!U^N.F-%V3Q
MMA_?I?J,E* 7#673%XRC:YUBY(+-<^""+L[/Q 4?7[LX`'5V\=HD5ZJ\`T??
M%@6HVSL\%O?DCYGQ'D]<^>->T)=AA <8#W 1"P.NC?N;VI\#_"V[X"\GBULI
M48=;J'^&`=0`DGAL>YF[VKFK>>VHZR_IMB0]RW[8M*MUGW<OOCEKF:R$.%V$
M6GLMN.<-?4R!5USS:2_2W#%_JS0`ISA/%WI+./RU*(E19V=ICLA\PTY-T^V$
M;[AE-@"=[=<(VI.@A%_$T0'*!SO*7/?(R(/&2D:,KF+0I#KO2]:C:TD20&=
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
M>[48DASDEWP7]UCZ@X*M#+-)67'@Q)$7$\9H]_94DN5(^H;14$2=UU^PSN>
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
ME\9CGRJL)]GZ6JM'=,XBMT/O:)\_@T;:,K*8U!>"U6%?]5<+09WGB3'3]KO
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
M("]086=E<PHO2VED<R!;"C8@,"!2"C$V(# @4@HQ." P(%(*,C @,"!2"C(R
M(# @4@HR-" P(%(*70HO0V]U;G0@-@H^/@IE;F1O8FH*"C@@,"!O8FH*/#P*
M+U1Y<&4@+T9O;G1$97-C<FEP=&]R"B]!<V-E;G0@.#DQ"B]#87!(96EG:'0@
M-S@T"B]$97-C96YT("TR,38*+T9L86=S(#,T"B]&;VYT0D)O>"!;," M,C$V
M(#(U-C@@.#DQ70HO271A;&EC06YG;&4@, HO4W1E;58@, HO1F]N=$YA;64@
M+U1I;65S3F5W4F]M86Y04TU4"CX^"F5N9&]B:@H*,3 @,"!O8FH*/#P*+U1Y
M<&4@+T9O;G1$97-C<FEP=&]R"B]!<V-E;G0@.3 U"B]#87!(96EG:'0@-S@X
M"B]$97-C96YT("TR,3(*+T9L86=S(#,R"B]&;VYT0D)O>"!;," M,C$R(#(V
M,C@@.3 U70HO271A;&EC06YG;&4@, HO4W1E;58@, HO1F]N=$YA;64@+T%R
M:6%L+4)O;&1-5 H^/@IE;F1O8FH*"C$R(# @;V)J"CP\"B]4>7!E("]&;VYT
M1&5S8W)I<'1O<@HO07-C96YT(#@Y,0HO0V%P2&5I9VAT(#<X- HO1&5S8V5N
M=" M,C$V"B]&;&%G<R Y. HO1F]N=$)";W@@6S @+3(Q-B Q-C$X(#@Y,5T*
M+TET86QI8T%N9VQE(# *+U-T96U6(# *+T9O;G1.86UE("]4:6UE<TYE=U)O
M;6%N4%,M271A;&EC350*/CX*96YD;V)J"@HQ-" P(&]B:@H\/ HO5'EP92 O
M1F]N=$1E<V-R:7!T;W(*+T%S8V5N=" Y,#4*+T-A<$AE:6=H=" W.#@*+T1E
M<V-E;G0@+3(Q,@HO1FQA9W,@,S(*+T9O;G1"0F]X(%LP("TR,3(@,C8V-2 Y
M,#5="B])=&%L:6-!;F=L92 P"B]3=&5M5B P"B]&;VYT3F%M92 O07)I86Q-
M5 H^/@IE;F1O8FH*"C(X(# @;V)J"CP\"B],96YG=&@Q(#4Q.# *+TQE;F=T
M:" R-S@T"B]&:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IXVNU7?7!4
MU14_][[/; +9A"2D+,);GHE($D) )'P8EB0;\C'6A 3912V;+TPD2$2'@E F
M%"BP"<Y:HJU6):AH0*)O"6I@L%(TF!FJEAFU6JRV-HZ.-8ZV(OT82'_OW21#
M:+7^T3_:F;Z3W_N=>\YYY]YS[WTO=XD1D8MFD$3--U1FS\PYU1^&Y1!P8^VZ
MNXRGLP\<(&(RD3)O9?.MJU_^<KY%I/J(Y!6W-FU8.>9/C2$DZ$#\IH;ZZKHO
M?OKJ"T2Q$]&^M@&&Q'&N>]"N0OO*AM5WK2_)#^]">SV1M+-I36UU<E'R=*)X
MN-FIU=7KFZ4;U6E$[CX8C.:U]<TWO'+5"K0_1GP5,6T2BY""OE^37X,E99BI
M3C+B;,?77-=7&@;Y/C<^'U0SV..4H^4PJX7^:Z\S7^O)@=2R`-_"ET/[&=7@
M_B!0!SQ [=3.NT4,S0(L:*7TD=)',VFM8Y]%FW OI+^P3OJ18UE -?#7(+H7
MG =?+9@Y.=I9F\,_H&W(_07OYB?Y2<>[$'E+[0@AO%OI@]W.MY6>IO?8"<1L
MI#WP':4S]E/(W$Y==)Y-A;2R#]D`+X>5V?TCSRI$MV.\/Z=WZ,\LB>6Q,#N.
MF$2^Q1F+Z*T%,;V0,TX66ZYG36P-6\MV(6<_E_AL9%W#=_(.;O&34E#.4_K4
M1'6.UH0LC#AV>0(JM+-]ERK1<PW=,9)5R*\89Q6LBC6P^UD'QM#+!B!?\BR^
M$+-NRWU22(Z3/U96*8]"^M2EVL.ZBMP*J32!#$JC:U"5'WU48,QU=!O=[<A&
MR";,Y0]I+W70/CI 43I&O[#[I+/T'IW'[,1#[+KFL+EL&20(6<LVLVV8C]9+
M9#=[B'6S8QC?:?8FGXRJA32A>C'*K?Q!?H2?YK_D[_-^_@G_0B(I1EHAU4AW
M2ONE@]+KTNMRL=PA[Y/?E=]5F&(Y,Y6H)JFWJ*V0-BU&6Z5MT^[5'M:><TVG
M\:@K$W65TC)4M0&5;**=%'96+0HY0L]"^N@3NP[(X% EMLQEA:R(+84$V7(6
M8JO9G6S]2$6/LR=8)SN"6MZ$O,W.LM^S/[+/'#G/59[",T;J*^>5?!E?Q>_G
M#_"'^%/8D=W\.'^;OX<:^_DYU!@K)4K)TB3)+Q5!JJ2;I/725JE+.BF=E0:P
M;G'R=7*>O%2^!;6?DOOEC[&27)&4-&6V,@_2H-RN;%9:E4>PHP>4`37.F95$
M=9PZ7]VA[E6[U7?4"UJREJ)-@4S7<K1*K4E;IQW4^K6/]$,QBV(:8]:Z,ND@
MOJG/7_;V/HO=_1*_1<VF">PL=L,=4CRB#/O=XW%:4TPC[[9'IU6RJ5BIW])Y
M*8;*Y%.T3+J)FI0:*5;[E#K9G?(6]I14A&_T?FT=.RZ%I %IOY*FSA?SR1^4
M#FH;M)#V$4;ZI;1':="FLT5**^OD"_%&KV45]!4[1]]#SW?Q:72*=M%.MHYT
M:M</L3%XUWKY9-:J/"H=ECLDO[*978T5]"A]TG::3<D41U-I"O:Z0DGV!]<W
M)W?.-;-FYLS(GIZ5F3'MZJE7I:==:4[Q&I,G73'1,^$[J>-3DI/&)2:XX\>.
MB8MUQ>B:JL@29Y3I-XM"AI4>LN1TL[@XRVZ;U3!47V((609,1:-C+"/DA!FC
M(WV(7'E9I$]$^D8BF=M80 NR,@V_:5BO%II&#UM>$8"^N] ,&M: HU_OZ'*Z
MTQB#AM>+)PQ_:D.A8;&0X;>*UC6$_:%"Y(O&N@K,@GI75B9%7;%08Z%9169S
ME!7E,4?A1?YY44[Z&(S**C4+_5:)66@/P9+2_-5U5GE%P%_H\7J#69D6*Z@U
M:RPR\ZWX#">$"IQN++7 TIQNC$:['&HUHIDGPFT];JH)9<35F775-P<LJ3IH
M]Y&082TV"ZW%=_>G9F7VL">J`E9,00^CJL!1*AULB9:T%!8&[=X2"P([G/#Q
M"!]_=[]'"OM3&PV[&0[O,*R.BL"E7J]]#P:1-"NS;$G BU&;_C;#+F-)P*D`
M25EJ-@9IV^PR1<'UIM^VA&XSK!@SWVP(WQ;"8DT(6[1D@_?PA%+?T<'?4:G?
M"%<%3*^UT&,&JPLG1I,HO&1#=XG/*!GMR<J,NA/$3$?'Q@\I<6,N5>I'?([F
MA-L:1CT\U<P>D5F"+6(9M09&$C MGI9KW^IS*5R;BS!<0889;<3\A<+N>?9"
M*&ENTPB?(VP$<^#3T9;J(8N:YCY'MFIOEY$M!_^P;F5D6-.FV3M%*\#28F1Y
M3GMV5N8ZJ\QL=AM6&::,R@-X*#@O&U/N]=JKW-KCHQHTK):*@&@;5.,Y3+[L
MC*#%0[;GQ+ G>:GM:1GVC#P>,K&=CY!]\$NV]/21OWAWRCA_PSR+I7R#NU[X
M\?KXC:BLI(7+`^G5X59/>BC<%L32%.%5#(>+3*,H' I7]PRVU)B&VPQ'R\K"
MS?[0<$D]@R=:/9:O+=C ,*G6+#$;UKB"@.3A0:%QCQ3,(OQ?Q4%-:L'I0B*-
M3%^\]@:3WV"/X1 X2,J@=)1]2)1]<< ]0 L_PSUGQJP$;T*:-\';(M&%%DX7
M2>G[6VZ+C",EHRYVG%^0XY KZ05B? Z*E%@M$@S@+V?&.#S:Q<L15'[!(F<.
M> M-3;BU<47\@G.Z1W<^X_N[]ERT.7I:>X/H8KGK?2T'S3@GWK[ 6L[%<IQS
MVX@&7W>]/^(9OC[ @=HY@*J G57/H]*8J=3N:@1.4*F63NTQQZE+.DB]^B'J
MTJ905TS\$%8(Q.X`VJA+[Z4NUXO4I?Q$P(Z5UP!GX,.I2[N/2O4.Y-P&W2O\
M#FQ],>R W$U=:@#/UPMHNP3D.@$[7GV1;AR&_@?$%<-V&GT\![\'B(7M&MBV
M@).I72VA]N&^E+\.H0_ F-6;8$\>&L<T,988'W)AW!KRZ4?!J$_[/G OVK/
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
M:6YG("]7:6Y!;G-I16YC;V1I;F<*+T9I<G-T0VAA<B P"B],87-T0VAA<B R
M-34*+T9O;G1$97-C<FEP=&]R(#$R(# @4@HO5VED=&AS(#$Q(# @4@H^/@HO
M1C$X"CP\"B]4>7!E("]&;VYT"B]3=6)T>7!E("]4<G5E5'EP90HO0F%S949O
M;G0@+T%R:6%L350*+T5N8V]D:6YG("]7:6Y!;G-I16YC;V1I;F<*+T9I<G-T
M0VAA<B P"B],87-T0VAA<B R-34*+T9O;G1$97-C<FEP=&]R(#$T(# @4@HO
M5VED=&AS(#$S(# @4@H^/@HO1C$Y"CP\"B]4>7!E("]&;VYT"B]3=6)T>7!E
M("]4>7!E, HO0F%S949O;G0@+T%!04%!5"M7:6YG9&EN9W,M4F5G=6QA<@HO
M16YC;V1I;F<@+TED96YT:71Y+4@*+T1E<V-E;F1A;G1&;VYT<R!;(#(V(# @
M4B!="B]4;U5N:6-O9&4@,S @,"!2"CX^"CX^"F5N9&]B:@H*>')E9@HP(#,Q
M"C P,# P,# P,# @-C4U,S4@9B *,# P,# Q.3$V,2 P,# P,"!N( HP,# P
M,# P,#$U(# P,# P(&X@"C P,# P,3DQ.3(@,# P,# @;B *,# P,# R,C4R
M.2 P,# P,"!N( HP,# P,#(V.34P(# P,# P(&X@"C P,# P,#<W,#@@,# P
M,# @;B *,# P,# P,# V.2 P,# P,"!N( HP,# P,#(R-C(T(# P,# P(&X@
M"C P,# P,#$S-S(@,# P,# @;B *,# P,# R,C@P," P,# P,"!N( HP,# P
M,# R-C<X(# P,# P(&X@"C P,# P,C(Y-S(@,# P,# @;B *,# P,# P,SDX
M," P,# P,"!N( HP,# P,#(S,34V(# P,# P(&X@"C P,# P,#4R.#@@,# P
M,# @;B *,# P,# Q,# W-R P,# P,"!N( HP,# P,# W.#8V(# P,# P(&X@
M"C P,# P,3,S,C0@,# P,# @;B *,# P,# Q,#(S-B P,# P,"!N( HP,# P
M,#$U-34T(# P,# P(&X@"C P,# P,3,T.#,@,# P,# @;B *,# P,# Q.3 P
M,B P,# P,"!N( HP,# P,#$U-S$S(# P,# P(&X@"C P,# P,C(S-S @,# P
M,# @;B *,# P,# Q.3(U." P,# P,"!N( HP,# P,#(V-#4W(# P,# P(&X@
M"C P,# P,C8Q.38@,# P,# @;B *,# P,# R,S,R,R P,# P,"!N( HP,# P
M,#(V-#$W(# P,# P(&X@"C P,# P,C8V-3@@,# P,# @;B *=')A:6QE<@H\
M/ HO4VEZ92 S,0HO4F]O=" S(# @4@HO26YF;R R(# @4@HO241;/&9D-C4S
M9F%E8S<X,C1A83 U.65A,F%A9C<V,V,Q8V-A/CQF9#8U,V9A96,W.#(T86$P
K-3EE83)A868W-C-C,6-C83Y="CX^"G-T87)T>')E9@HR-S<U-@HE)45/1@``
`
end

July 25, 2004
I don't think anyone suggested that particular one was anything else, Derek. It's broken. Full Stop. With luck it'll get fixed.

If you are feeling some animosity towards me, then please email directly outlining your issue. And thanks for not shouting this time!

- Kris


"Derek" <derek@psyc.ward> wrote in message news:i546196c2uti$.1stk2dxkftgx4.dlg@40tude.net...
> On Sat, 24 Jul 2004 10:17:01 -0700, Kris wrote:
>
> > Also, please note that following doesn't even compile:
> >
> > class Writer
> > {
> >         void put (bit x){}
> >         void put (int x){}
> > }
> >
> > class MyWriter : Writer
> > {
> >         alias Writer.put put;
> >
> >         void put (bit x){}
> > }
> >
> > "function put conflicts with MyWriter.put"
>
> This is just a bug. If the sub-class has a method with the same signature as the *first* method in the super class and the alias appears before the methods, then the alias will generate an error message.
>
> Try swapping the methods in the Writer class. Message goes away.
> Change the signature in the sub-class to (int x). Message goes away.
> Move the alias to be after the method in the sub-class. Message goes away.
>
> This is just a bug.
>
> --
> Derek
> Melbourne, Australia


July 25, 2004
On Sat, 24 Jul 2004 10:47:15 -0700, Kris wrote:

> Okay, so I screwed up the example slightly. Please permit me to rectify that:
> 
> interface IFoo
> {
>     void foo ();
> }
> 
> 
> interface IBar
> {
>     void bar ();
> }
> 
> class Foo
> {
>    void foo (){}
> }
> 
> class Bar : Foo, IFoo, IBar
> {
>     void bar() {}
> }
> 
> There have been reasons indicated as to why one would want to include super-class methods as part of a contract exposed by a sub-class. There hasn't yet been a single one to the contrary ...

I don't think that anybody is disagreeing with this position. Even Walter ;-)

> How about it Walter? I'd really, really, like to understand why super-class methods are explicitly denied from satisfying a sub-class contract. At least then there'd be something to discuss vis-a-vis pro & con ...

<pedantic_mode>
D does not *explicitly* deny super-clas methods from being exposed in a
subclass. It *implicitly* denys them. To explicitly deny, one would have to
add code to do that. However, it happens by *not* adding code, thus it is
implicit.
</pedantic_mode>

But more to the point...D is not Java, is not C++, is not C#, is not SmallTalk, is not <insert your favorite OO lang here>. D allows the coder to satisfy a sub-class contract, but you have to do it explicitly. It is not done automatically for you. Why? Dunno. But that's the way of D ( and Walter). Okay so Java does it for you --- good on ya, Java! But this is D.

 class Bar : Foo, IFoo, IBar
 {
    void bar() {}
 }

The way that I translate this definition is like this ...

Bar is a class that is derived from Foo, and must implement the methods listed in IFoo, and must implement the methods listed in IBar. Because it is derived from Foo, any methods implemented in Bar that have the same signature as those in Foo, will override the Foo methods. If I wish users of Bar to access Foo methods, I must explicitly name those methods in Bar.

In the code above, Bar implements all the IBar methods but does not implement any of the IFoo methods. Therefore it is in error.

In D, one way of doing this is ...

 class Bar : Foo, IFoo, IBar
 {
    void bar() {}
    void foo() {Foo.foo();}
 }

Yes, it is verbose having to write all this stuff. So maybe the approach to Walter should be along the lines of ...

"Hey Walter, how can you get D to help us out here? We would like to avoid all this tedious and error-prone tasks, and thus make it easier for coders?"

-- 
Derek
Melbourne, Australia
July 25, 2004
On Sat, 24 Jul 2004 17:47:19 -0700, Kris wrote:

> I don't think anyone suggested that particular one was anything else, Derek. It's broken. Full Stop. With luck it'll get fixed.

Sorry, it seemed to me that you were implying that this current behaviour is designed that way.

> If you are feeling some animosity towards me, then please email directly outlining your issue. And thanks for not shouting this time!

What????? "animosity" ... "shouting" ... I don't get it. Why do you think that I'm angry or being nasty. Sorry if I come across that way, but it isn't (isnt/aint/isnot) so.
-- 
Derek
Melbourne, Australia
July 25, 2004
"Derek"  wrote ...
> <pedantic_mode>
> D does not *explicitly* deny super-clas methods from being exposed in a
> subclass. It *implicitly* denys them. To explicitly deny, one would have
to
> add code to do that. However, it happens by *not* adding code, thus it is
> implicit.
> </pedantic_mode>

When I can't satisfy the Interface contract even with the mystical power of 'alias', I consider it an explicit denial. You are certainly welcome to your particular interpretation too :-)

> Yes, it is verbose having to write all this stuff. So maybe the approach
to
> Walter should be along the lines of ...
>
> "Hey Walter, how can you get D to help us out here? We would like to avoid all this tedious and error-prone tasks, and thus make it easier for coders?"

I tried that approach on April 8th. Perhaps he'll listen to you instead <g>


July 25, 2004
"Vathix"  wrote
> Satisfying Interface Contracts:
> From class.html#interface it says "A reimplemented interface must
implement
> all the interface functions, it does not inherit them from a super class."
I
> don't see why you're specifying to (re)implement IFoo without
reimplementing
> it. You can't specify a base class twice, why are you doing it for an interface? It just so happens that specifying to implement an interface
has
> an added feature for reimplementing. In fact, when I tried it with a
class,
> the compiler crashed!

Sorry ... there was a typo in the example. Fixed in the revision.

> The Alias peek-a-boo Game:
> I remember reading that it helps prevent the possibility of accidentally
> calling the wrong function. Actually, I think there was a big long thread
on
> it, and I think people said they'd rather opt-into this danger using an alias. However, there is a problem when trying to both override and alias overload; I've been meaning to bug post it (wow I'm lazy ;).

This is just the kind of sneaky issue that manifests once the compiler starts to special-case certain conditions. My position is that the compiler should treat inherited methods in effectively the same manner as if they were all declared within the subclass itself (sans override for the moment). It's simpler for the compiler and simpler for the user. If this were the case, you would not have the problem you ran into <g>



July 25, 2004
Kris wrote:
> Okay, so I screwed up the example slightly. Please permit me to rectify
> that:
> 
> interface IFoo
> {
>     void foo ();
> }
> 
> interface IBar
> {
>     void bar ();
> }
> 
> class Foo
> {
>    void foo (){}
> }
> 
> class Bar : Foo, IFoo, IBar
> {
>     void bar() {}
> }
> 
> There have been reasons indicated as to why one would want to include
> super-class methods as part of a contract exposed by a sub-class. There
> hasn't yet been a single one to the contrary ...
> 
> How about it Walter? I'd really, really, like to understand why super-class
> methods are explicitly denied from satisfying a sub-class contract. At least
> then there'd be something to discuss vis-a-vis pro & con ...

The idea here, as I understand it, is that Bar is *re*implementing the IFoo interface, and so much explicitly define those methods declared in the interface.

What I don't understand is why it would be useful to do so.

Secondly, it leads me to think that, perhaps, Bar implements IFoo *twice*.  But then I have to wonder why we would want to do this and how we are to state which IFoo we want to access.

This second reason is probably, I think, the most important reason the current behaviour should be changed: it doesn't mean what a stupid person (hello!) thinks it means at first glance.

Implementing an interface should just be a contractual obligation that the class define all the methods specified therein, wherever the definition. (abstract or what have you)

 -- andy
July 25, 2004
Dagnabit. I apologize: made a glaring typo ... will link here instead

http://svn.dsource.org/svn/projects/mango/trunk/doc/Names.pdf



"Kris" <someidiot@earthlink.dot.dot.dot.net> wrote in message news:cduv7v$1e9u$1@digitaldaemon.com...
> I'm somewhat loath to post this (for a number of reasons), but will
anyway.
> Here's a revised edition, with some additional clarification in the Interfaces section (the grayed sections), some minor example fixes per Derek's post, and an addendum that speculates as to what's really going on behind all this.
>
> JCC makes a very good point about trying to address each of these in individual threads. They may exist already, but I could be wrong.
>
> For those who may think I'm just having a go at Walter, please consider
how
> confusing it can be to have three individual non-obvious issues within
just
> one specific area of the language.
>
> - Kris
>
>
> "some idiot" <fu@bar.org> wrote in message news:cdsd5t$u5$1@digitaldaemon.com...
> > Attached is a small pdf noting three outstanding issues ~ each of which
> has
> > various bug reports stretching back into the old NG. Given that the v1.0 release is getting closer, it seemed appropriate to try getting some priority and/or traction.
> >
> > Such things might simply fall by the wayside otherwise.
> >
> >
> >
>
>
>