Ah, yes.. i see now

class A
{
    10000 => int foo;
}

class B extends A
{
    fun void bar()
    {
        0 => int foo;

        <<< "a", foo >>>;
        if (true) {
            <<< "b", foo >>>;
        }
        <<< "c", foo >>>;
    }
}

B bobj;
bobj.bar();

indeed.


On Wed, Aug 6, 2014 at 4:51 PM, Ian South-Dickinson <[email protected]>
wrote:

> The bug appears in other inner scopes, such as an if-statement, and
> probably for/while loops.
>
>
> On Wed, Aug 6, 2014 at 7:40 AM, Dealga McArdle <[email protected]> wrote:
>
>> Ian, why do you have that innermost scope? that's not intended use of
>> syntax I think.
>>
>>
>> On Wed, Aug 6, 2014 at 9:00 AM, Ian South-Dickinson <[email protected]
>> > wrote:
>>
>>> I encountered a strange case where a variable was changing value within
>>> the scope of an if statement, because I had a superclass with an identical
>>> variable name. I am able to reproduce it with this simple case:
>>>
>>> class A
>>> {
>>>     10000 => int foo;
>>> }
>>>
>>> class B extends A
>>> {
>>>     fun void bar()
>>>     {
>>>         0 => int foo;
>>>
>>>         <<< "a", foo >>>;
>>>         {
>>>             <<< "b", foo >>>;
>>>         }
>>>         <<< "c", foo >>>;
>>>     }
>>> }
>>>
>>> Prints out:
>>>
>>> a 0
>>> b 10000
>>> c 0
>>>
>>> _______________________________________________
>>> chuck-users mailing list
>>> [email protected]
>>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>>
>>>
>>
>> _______________________________________________
>> chuck-users mailing list
>> [email protected]
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>
>>
>
> _______________________________________________
> chuck-users mailing list
> [email protected]
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
>
_______________________________________________
chuck-users mailing list
[email protected]
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users

Reply via email to