On Saturday, 24 October 2015 at 09:54:43 UTC, Jacob Carlborg wrote:
When the template this parameter feature was added to the language it was possible to use it for static methods:

class Foo
{
    static void foo(this T)()
    {
        pragma(msg, T.stringof);
    }
}

class Bar : Foo {}

Foo.foo(); // prints "Foo"
Bar.foo(); // prints "Bar"

For some reason this feature was removed, it might be that it was never indented to work for static methods.

Can we make it work again for static methods? It would be really handy for creating Objective-C bindings.

It was changed in this PR:
https://github.com/D-Programming-Language/dmd/pull/1687

It's hard to tell whether it was intentional though. But IMO your code should work, so I suggest you file a bug report.

Reply via email to