Bug in JLS specification for restriction on where a return statement is allowed.
Neal Gafter
neal at gafter.com
Wed Dec 2 09:24:05 PST 2009
Alex-
JLS 14.17 says
A compile-time error occurs if a return statement appears within an instance
initializer or a static initializer
(§8.7)<http://java.sun.com/docs/books/jls/third_edition/html/classes.html#39245>
.
However, javac allows a return statement within an instance or static
initializer if there is an intervening nested inner class with a method.
*static { // static initializer*
* class X {*
* void foo() {*
* return; // yet return allowed within it*
* }*
* }*
*}*
I believe this is a bug in the specification.
Cheers,
Neal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20091202/c82d9838/attachment.html
More information about the compiler-dev
mailing list