Being able to redefine a variable in a tighter scope is a handy feature. It
lets you think locally about your program, which is easier than thinking
globally.

Imagine bar() was written first. Then adding foo to A would be an error—and
not because there’s anything wrong with A, but because someone somewhere
subclassed A and already used that variable in one of its functions. That’s
weird.


On Sun, Aug 10, 2014 at 7:42 AM, Casper Schipper <[email protected]>
wrote:

> Should it not be simply forbidden to redefine a variable like that in a
> sub-class ?
> When you assign instead of declare, the problem disappears.
> So perhaps, instead of 'fixing' the bug, we should forbid this kind of use
> of scope (chuck should throw an error if you try) ?
>
> Casper
>
> class A
> {
>     10000 => int foo;
> }
>
> class B extends A
> {
>     fun void bar()
>     {
>         // 0 => int foo;
>         0 => foo;
>
>
>         <<< "a", foo >>>;
>         {
>             <<< "b", foo >>>;
>         }
>         <<< "c", foo >>>;
>     }
> }
>
> B b;
> b.bar();
>
>  Casper Schipper
> [email protected]
> www.casperschipper.nl
> +316 52322590
>
>
> _______________________________________________
> chuck-users mailing list
> [email protected]
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
>


-- 
Tom Lieber
http://AllTom.com/
http://infinite-sketchpad.com/
_______________________________________________
chuck-users mailing list
[email protected]
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users

Reply via email to