September 06, 2010 Re: this as lvalue? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to bearophile | ++ 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 Re: this as lvalue? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | Andrej Mitrovic:
> ++ on that bug report.
Then vote for it :-)
Bye,
bearophile
| |||
September 06, 2010 Re: this as lvalue? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to bearophile | 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
>
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply