DIP66 - Multiple alias this

Paolo Invernizzi paolo.invernizzi at gmail.com
Wed Sep 30 12:40:03 UTC 2020


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 ...
> [...]
>
> I haven't used alias on classes either, but I did frequently 
> use alias this on structs that wrap classes. Which may lead to 
> some of the same complexity: struct S implicitly converts to 
> class C which may in turn implicitly convert to base class B or 
> interface I.  But probably not as horrible as using alias this 
> inside a class.
>
>
> T

Indeed, I imagine that's a much simpler case to handle in the 
compiler.

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 ...




More information about the Digitalmars-d mailing list