Bug in D!!!
crimaniak via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Sep 4 02:03:58 PDT 2017
On Wednesday, 30 August 2017 at 20:47:12 UTC, EntangledQuanta
wrote:
> interface I
> {
> void Go(T)(S!T s);
>
> static final I New()
> {
> return new C();
> }
> }
>
> abstract class A : I
> {
>
> }
>
>
> class C : A
> {
> void Go(T)(S!T s)
> {
>
> }
> }
> This is a blocker for me! Can someone open a ticket?
Judging by the length of the thread that I did not read, the
real problem was not spotted, otherwise, it would be shorter. The
problem is called "virtual method in the interface" anti-pattern.
Just never do that, and life will be easier. In this case, I
recommend to move Go to A and make it just dispatcher for
specialized private non-templated virtual functions. You don't
need all this mess with string templates for it.
More information about the Digitalmars-d-learn
mailing list