DIP66 - Multiple alias this

mw mingwu at gmail.com
Wed Sep 30 17:06:53 UTC 2020


On Wednesday, 30 September 2020 at 12:40:03 UTC, Paolo Invernizzi 
wrote:
> On Wednesday, 30 September 2020 at 12:34:03 UTC, H. S. Teoh 
> wrote:
>> On Wed, Sep 30, 2020 at 07:54:39AM +0000, Paolo Invernizzi via 
>> Digitalmars-d wrote:
>>> On Wednesday, 30 September 2020 at 01:36:59 UTC, Mike wrote:
>>> > On Monday, 28 September 2020 at 19:55:10 UTC, Andrei 
>>> > Alexandrescu wrote:
>>> > 
>>> > 1.  Deprecate `alias this` for classes, and implement 
>>> > multiple `alias this` for structs.  That will give users 
>>> > the composition feature they need, and in addition, because 
>>> > structs cannot inherit, it removes the complexity Walter 
>>> > spoke of.
>>> 
>>> This!
>>> 
>>> We've never used alias this for classes, I'm wondering if 
>>> there's something like that in Phobos, or in other projects 
>>> ...

> It would be interesting to have a PR that disable alias this 
> for classes just to have a look on how many external dub 
> projects are impacted by that ...


Right, we just had a discussion last month on the problems I 
found here:

https://forum.dlang.org/post/pjxwebeyiypgtgxqmcdp@forum.dlang.org

class SharedArray(T) {
   public T[] array;
   alias array this;  // subtyping
}


The point is, these D language features are not well-thought and 
designed, and when people start to use it and mix with other 
language features, all kinds of weird corner-case behavior show 
up and surprise the user.



More information about the Digitalmars-d mailing list