langtools/test/tools/javac/TryWithResources/TwrIntersection02.java
author darcy
Fri, 16 Jul 2010 19:35:24 -0700
changeset 6148 3a8158299c51
permissions -rw-r--r--
6911256: Project Coin: Support Automatic Resource Management (ARM) blocks in the compiler 6964740: Project Coin: More tests for ARM compiler changes 6965277: Project Coin: Correctness issues in ARM implementation 6967065: add -Xlint warning category for Automatic Resource Management (ARM) Reviewed-by: jjb, darcy, mcimadamore, jjg, briangoetz Contributed-by: tball@google.com

/*
 * @test  /nodynamiccopyright/
 * @bug 6911256 6964740 6965277
 * @author Maurizio Cimadamore
 * @summary Check that resources of an intersection type forces union of exception types
 *          to be caught outside twr block
 * @compile/fail/ref=TwrIntersection02.out -XDrawDiagnostics TwrIntersection02.java
 */

class TwrIntersection02 {

    static class Exception1 extends Exception {}
    static class Exception2 extends Exception {}


    interface MyResource1 extends AutoCloseable {
       void close() throws Exception1;
    }

    interface MyResource2 extends AutoCloseable {
       void close() throws Exception2;
    }

    public void test1() throws Exception1 {
        try(getX()) {
            //do something
        }
    }

    public void test2() throws Exception2 {
        try(getX()) {
            //do something
        }
    }

    <X extends MyResource1 & MyResource2> X getX() { return null; }
}