Variable's DA status not changing within body of closure

Neal Gafter neal at gafter.com
Sun May 18 15:59:36 PDT 2008


Oh, I see.  Yes, perhaps this should work.  Thanks for persevering!

Regards,
Neal

On Sun, May 18, 2008 at 3:03 PM, Mark Mahieu <mark at twistedbanana.demon.co.uk>
wrote:

> Hmm, I realize that the closure can't have any impact on the variable's
> DA/DU status outside of the closure body, regardless of how it is (or isn't
> executed), but I still don't see why the variable i 'might not have been
> initialized' at the point I'm incrementing it within the body of the
> closure, since the preceding statement - also within the closure body -
> assigns to it.
>
> Puzzled,
>
> Mark
>
>
> On 18 May 2008, at 21:52, Neal Gafter wrote:
>
> This is correct.  The fact that the exec method definitely executes the
> closure it receives is not part of its type.
>
> On Sun, May 18, 2008 at 7:17 AM, Mark Mahieu <
> mark at twistedbanana.demon.co.uk> wrote:
>
>> This doesn't look quite right:
>>
>>
>> public class DefinitelyAssigned {
>>
>>    public static void main(String[] args) {
>>
>>        int i;
>>
>>        exec() {
>>            i = 0;
>>            i++;
>>        }
>>    }
>>
>>    static void exec({==>void} block) {
>>        block.invoke();
>>    }
>> }
>>
>>
>> DefinitelyAssigned.java:9: variable i might not have been initialized
>>                        i++;
>>                        ^
>> 1 error
>>
>>
>>
>> Regards,
>>
>> Mark
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/closures-dev/attachments/20080518/df045d53/attachment.html 


More information about the closures-dev mailing list