hg: jdk7/tl/langtools: 6943289: Project Coin: Improved Exception Handling for Java (aka 'multicatch')

Neal Gafter neal at gafter.com
Mon May 3 18:50:07 PDT 2010


This will serve as a code review

"Disjoint" is not a correct name.  The word you should be looking for is
"Disjunct".  The code as written allows types that are not disjoint (such as
"Exception | IOException").  It also allows repeated types (such as
"Exception | Exception").  This (name issue) will be more important if this
concept is extended to support exception transparency in project lambda.  In
that case the disjuncts are not necessarily disjoint, especially in the
presence of (exception) type parameters.

The phrase "multi-catch statement" appears in one of the diagnostics, but
the multi-catch form is not a statement.

I would have appreciated a chance to review this code before it was pushed
to the langtools repository.  Still, you should be congratulated for getting
this submitted under the wire before the final langtools integration (5/21)
preceding jdk7 feature-complete.

On Mon, May 3, 2010 at 5:14 PM, <jonathan.gibbons at sun.com> wrote:

> Changeset: a6f2911a7c55
> Author:    mcimadamore
> Date:      2010-05-03 17:12 -0700
> URL:       http://hg.openjdk.java.net/jdk7/tl/langtools/rev/a6f2911a7c55
>
> 6943289: Project Coin: Improved Exception Handling for Java (aka
> 'multicatch')
> Reviewed-by: jjg, darcy
>
> + src/share/classes/com/sun/source/tree/DisjointTypeTree.java
> ! src/share/classes/com/sun/source/tree/Tree.java
> ! src/share/classes/com/sun/source/tree/TreeVisitor.java
> ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java
> ! src/share/classes/com/sun/source/util/TreeScanner.java
> ! src/share/classes/com/sun/tools/javac/code/Flags.java
> ! src/share/classes/com/sun/tools/javac/code/Source.java
> ! src/share/classes/com/sun/tools/javac/comp/Attr.java
> ! src/share/classes/com/sun/tools/javac/comp/Flow.java
> ! src/share/classes/com/sun/tools/javac/jvm/Gen.java
> ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java
> ! src/share/classes/com/sun/tools/javac/resources/compiler.properties
> ! src/share/classes/com/sun/tools/javac/tree/JCTree.java
> ! src/share/classes/com/sun/tools/javac/tree/Pretty.java
> ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java
> ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java
> ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java
> ! src/share/classes/com/sun/tools/javac/tree/TreeScanner.java
> ! src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java
> + test/tools/javac/multicatch/Neg01.java
> + test/tools/javac/multicatch/Neg01.out
> + test/tools/javac/multicatch/Neg02.java
> + test/tools/javac/multicatch/Neg02.out
> + test/tools/javac/multicatch/Neg03.java
> + test/tools/javac/multicatch/Neg03.out
> + test/tools/javac/multicatch/Neg04.java
> + test/tools/javac/multicatch/Neg04.out
> + test/tools/javac/multicatch/Pos01.java
> + test/tools/javac/multicatch/Pos02.java
> + test/tools/javac/multicatch/Pos03.java
> + test/tools/javac/multicatch/Pos04.java
> + test/tools/javac/multicatch/Pos05.java
>
>



More information about the coin-dev mailing list