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; }
}