Inheritance of mixin

Daniel N via Digitalmars-d digitalmars-d at puremagic.com
Sat Apr 30 01:12:22 PDT 2016


On Friday, 29 April 2016 at 10:59:20 UTC, Timon Gehr wrote:
> The use case isn't rare (it is a quite popular request, at 
> least four independent instances that I remember).
>
> Having a mixin in all classes in some subtree of the class 
> hierarchy can be a good idea. Of course one can easily do it 
> manually, but it is always nice to get rid of boilerplate.

The argument in favour of this feature is even stronger, it also 
impacts correctness.

Both when providing libraries or a large team working within the 
same framework.

Programmer 1:
class ComplexAndGenericAbstractBase
{
...
}

Programmer 2:
class Car : ComplexAndGenericAbstractBase
{
... correctly uses mixin
}

Programmer 3:
class BlueCar : Car
{
... no mixin, everything compiles, but is terribly broken at 
_runtime_(!)
}

So either P2 needs to remember to prevent anyone from inheriting 
from 'Car', or P3 needs to type mixin "out of the blue", P2 might 
not even have documented the need to do so, after all the full 
doc is in ComplexAndGenericAbstractBase...




More information about the Digitalmars-d mailing list