September 06, 2010
++ on that bug report.

On a similar note, today I was rewriting a dsource class example because I wanted to show that you can use "this.name" to assign to fields that have the same name as a parameter. And then I accidentally made this mistake when writing a different method:

class Foo
{
    string name;

    void printMe()
    {
        name = "test";
        writefln("printMe.name = %s, Foo.name = %s", name, this.name);
    }
}

The "name" in the printMe method was supossed to be the declaration 'string name = "test";'. But I forgot to put the type before name, and inadvertently modified the class variable name. In this case I wasn't even passing any parameters, so this is unfortunately impossible to flag as an error because using "this" is optional in D.

On Mon, Sep 6, 2010 at 4:14 AM, bearophile <bearophileHUGS@lycos.com> wrote:
> Andrei:
>> If you can write (new Foo).x = x, then you can also write this.x = x. Try it now!
>
> See my bug reports/enhancement requests (about three days ago in a program of mine I have added a bug that enhancement 4407 is able to avoid):
>
> Arguments and attributes with the same name http://d.puremagic.com/issues/show_bug.cgi?id=3878
>
> Bye,
> bearophile
>
September 06, 2010
Andrej Mitrovic:
> ++ on that bug report.

Then vote for it :-)

Bye,
bearophile
September 06, 2010
Done. I only have 5 votes left though.

This is no democracy!! :p

On Mon, Sep 6, 2010 at 12:58 PM, bearophile <bearophileHUGS@lycos.com> wrote:
> Andrej Mitrovic:
>> ++ on that bug report.
>
> Then vote for it :-)
>
> Bye,
> bearophile
>
1 2 3
Next ›   Last »