Thread overview
Is this actually valid code?
Nov 07, 2011
Andrej Mitrovic
Nov 07, 2011
Trass3r
Nov 07, 2011
Andrej Mitrovic
Nov 07, 2011
Trass3r
Nov 07, 2011
Andrej Mitrovic
November 07, 2011
I've had a simple problem where I've only wanted to override a setter from a base class:

class Foo
{
    @property void test(int) {}
    @property int test() { return 1; }
}

class Bar : Foo
{
    override @property void test(int) {}
    void bartest() { auto x = test; }  // NG
}

test.d(19): Error: function test.Bar.test (int _param_0) is not
callable using argument types ()

So I thought I'd be clever:

class Foo
{
    @property void test(int) {}
    @property int test() { return 1; }
}

class Bar : Foo
{
    alias super.test test;
    override @property void test(int) {}
    void bartest() { auto x = test; }
}

And it actually works! Is this a documented feature?
November 07, 2011
> class Foo
> {
>     @property void test(int) {}
>     @property int test() { return 1; }
> }
>
> class Bar : Foo
> {
>     alias super.test test;
>     override @property void test(int) {}
>     void bartest() { auto x = test; }
> }
>
> And it actually works! Is this a documented feature?

http://d-programming-language.org/hijack.html
November 07, 2011
On Sun, 06 Nov 2011 23:10:57 -0500, Andrej Mitrovic <andrej.mitrovich@gmail.com> wrote:

> I've had a simple problem where I've only wanted to override a setter
> from a base class:
>
> class Foo
> {
>     @property void test(int) {}
>     @property int test() { return 1; }
> }
>
> class Bar : Foo
> {
>     override @property void test(int) {}
>     void bartest() { auto x = test; }  // NG
> }
>
> test.d(19): Error: function test.Bar.test (int _param_0) is not
> callable using argument types ()
>
> So I thought I'd be clever:
>
> class Foo
> {
>     @property void test(int) {}
>     @property int test() { return 1; }
> }
>
> class Bar : Foo
> {
>     alias super.test test;
>     override @property void test(int) {}
>     void bartest() { auto x = test; }
> }
>
> And it actually works! Is this a documented feature?

http://www.d-programming-language.org/function.html#function-inheritance

Look at the third example/description.

-Steve
November 07, 2011
Cool stuff, thanks guys. This thing kicks some serious C++ ass. ^^
November 07, 2011
> Cool stuff, thanks guys. This thing kicks some serious C++ ass. ^^

How? You can use using in C++ to do the same.
November 07, 2011
On 11/7/11, Trass3r <un@known.com> wrote:
>> Cool stuff, thanks guys. This thing kicks some serious C++ ass. ^^
>
> How? You can use using in C++ to do the same.
>

My bad. I was a bit over-excited there. :p