Is there anything fundamentally wrong with this code?

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Feb 3 14:34:31 PST 2017


On 02/03/2017 11:43 AM, WhatMeWorry wrote:
> On Friday, 3 February 2017 at 18:37:15 UTC, Johan Engelen wrote:
>> On Friday, 3 February 2017 at 17:20:43 UTC, WhatMeWorry wrote:
>>>         [...]
>>
>> The error is in this line. Instead of assigning to the `postProc` at
>> module scope, you are defining a new local variable and assigning to it.
>>
>>> [...]
>
> Thank you so much.  This is where I deserve a big Duh.  I guess there is
> no way to to make this idiot proof.  I'll print it out and hang it over
> my desk.

No matter how experienced, these happen to most programmers. :-/ 
Somebody else had a similar problem just the other day on this forum.

The same problem somewhat commonly happens when one copy+pastes members 
into the constructor and assigns to them forgetting to remove the types:

struct S {
     int i;
     int j;

     this(int a) {
         // Declarations pasted from the members
         int i = 42 + a;    // meant 'i = 42 + a' (or this.i = ...)
         int j = 43 + a;
     }
}

Another related one is assigning to a parameter usually in the constructor:

struct S {
     int i;

     this(int i) {
         i = i;    // meant this.i = i
     }
}

Ali



More information about the Digitalmars-d-learn mailing list