test/tools/javac/6558548/T6558548.java

Wed, 16 Mar 2011 11:12:26 +0000

author
mcimadamore
date
Wed, 16 Mar 2011 11:12:26 +0000
changeset 935
5b29f2a85085
child 990
9a847a77205d
permissions
-rw-r--r--

6558548: The compiler needs to be aligned with clarified specification of throws
Summary: Javac should issue unconditional warnings when 'dead' catch clauses are detected
Reviewed-by: jjg

     1 /*
     2  * @test /nodynamiccopyright/
     3  * @bug     6558548
     4  * @summary The compiler needs to be aligned with clarified specification of throws
     5  * @compile/fail/ref=T6558548_latest.out -XDrawDiagnostics T6558548.java
     6  * @compile/fail/ref=T6558548_6.out -source 6 -XDrawDiagnostics T6558548.java
     7  */
     9 class T6558548 {
    11     void nothing() {}
    12     void checked() throws InterruptedException {}
    13     void runtime() throws IllegalArgumentException {}
    15     void m1() {
    16         try {
    17             throw new java.io.FileNotFoundException();
    18         }
    19         catch(java.io.FileNotFoundException exc) { }
    20         catch(java.io.IOException exc) { } // 6: ok; latest: unreachable
    21     }
    23     void m1a() {
    24         try {
    25             throw new java.io.IOException();
    26         }
    27         catch(java.io.FileNotFoundException exc) { }
    28         catch(java.io.IOException exc) { } //ok
    29     }
    31     void m2() {
    32         try {
    33             nothing();
    34         }
    35         catch(Exception exc) { } // ok
    36     }
    38     void m3() {
    39         try {
    40             checked();
    41         }
    42         catch(Exception exc) { } //ok
    43     }
    45     void m4() {
    46         try {
    47             runtime();
    48         }
    49         catch(Exception exc) { } //ok
    50     }
    52     void m5() {
    53         try {
    54             nothing();
    55         }
    56         catch(Throwable exc) { } //ok
    57     }
    59     void m6() {
    60         try {
    61             checked();
    62         }
    63         catch(Throwable exc) { } //ok
    64     }
    66     void m7() {
    67         try {
    68             runtime();
    69         }
    70         catch(Throwable exc) { } //ok
    71     }
    73     void m9() {
    74         try {
    75             checked();
    76         }
    77         catch(Error exc) { }
    78         catch(Throwable exc) { } //ok
    79     }
    81     void m10() {
    82         try {
    83             runtime();
    84         }
    85         catch(Error exc) { }
    86         catch(Throwable exc) { } //ok
    87     }
    89     void m11() {
    90         try {
    91             nothing();
    92         }
    93         catch(Error exc) { }
    94         catch(Throwable exc) { } //ok
    95     }
    97     void m12() {
    98         try {
    99             checked();
   100         }
   101         catch(RuntimeException exc) { }
   102         catch(Throwable exc) { } // ok
   103     }
   105     void m13() {
   106         try {
   107             runtime();
   108         }
   109         catch(RuntimeException exc) { }
   110         catch(Throwable exc) { } // ok
   111     }
   113     void m14() {
   114         try {
   115             nothing();
   116         }
   117         catch(RuntimeException exc) { }
   118         catch(Throwable exc) { } // ok
   119     }
   121     void m15() {
   122         try {
   123             checked();
   124         }
   125         catch(RuntimeException exc) { }
   126         catch(Exception exc) { } //ok
   127     }
   129     void m16() {
   130         try {
   131             runtime();
   132         }
   133         catch(RuntimeException exc) { }
   134         catch(Exception exc) { } //6: ok; latest: unreachable
   135     }
   137     void m17() {
   138         try {
   139             nothing();
   140         }
   141         catch(RuntimeException exc) { }
   142         catch(Exception exc) { } //6: ok; latest: unreachable
   143     }
   145     void m18() {
   146         try {
   147             checked();
   148         }
   149         catch(RuntimeException exc) { }
   150         catch(InterruptedException exc) { }
   151         catch(Exception exc) { } //6: ok; latest: unreachable
   152     }
   154     void m19() {
   155         try {
   156             runtime();
   157         }
   158         catch(RuntimeException exc) { }
   159         catch(InterruptedException exc) { } //never thrown in try
   160         catch(Exception exc) { } //6: ok; latest: unreachable
   161     }
   163     void m20() {
   164         try {
   165             nothing();
   166         }
   167         catch(RuntimeException exc) { }
   168         catch(InterruptedException exc) { } //never thrown in try
   169         catch(Exception exc) { } //6: ok; latest: unreachable
   170     }
   172     void m21() {
   173         try {
   174             checked();
   175         }
   176         catch(RuntimeException exc) { }
   177         catch(Exception exc) { } // ok
   178     }
   180     void m22() {
   181         try {
   182             runtime();
   183         }
   184         catch(RuntimeException exc) { }
   185         catch(Exception exc) { } // 6: ok; latest: unreachable
   186     }
   188     void m23() {
   189         try {
   190             nothing();
   191         }
   192         catch(RuntimeException exc) { }
   193         catch(Exception exc) { } // 6: ok; latest: unreachable
   194     }
   196     void m24() {
   197         try {
   198             checked();
   199         }
   200         catch(RuntimeException exc) { }
   201         catch(Error exc) { }
   202         catch(Throwable exc) { } //ok
   203     }
   205     void m25() {
   206         try {
   207             runtime();
   208         }
   209         catch(RuntimeException exc) { }
   210         catch(Error exc) { }
   211         catch(Throwable exc) { } //6: ok; latest: unreachable
   212     }
   214     void m26() {
   215         try {
   216             nothing();
   217         }
   218         catch(RuntimeException exc) { }
   219         catch(Error exc) { }
   220         catch(Throwable exc) { } //6: ok; latest: unreachable
   221     }
   223     void m27() {
   224         try {
   225             checked();
   226         }
   227         catch(RuntimeException exc) { }
   228         catch(Error exc) { }
   229         catch(InterruptedException exc) { }
   230         catch(Throwable exc) { } //6: ok; latest: unreachable
   231     }
   233     void m28() {
   234         try {
   235             runtime();
   236         }
   237         catch(RuntimeException exc) { }
   238         catch(Error exc) { }
   239         catch(InterruptedException exc) { } //never thrown in try
   240         catch(Throwable exc) { } //6: ok; latest: unreachable
   241     }
   243     void m29() {
   244         try {
   245             nothing();
   246         }
   247         catch(RuntimeException exc) { }
   248         catch(Error exc) { }
   249         catch(InterruptedException exc) { } //never thrown in try
   250         catch(Throwable exc) { } //6: ok; latest: unreachable
   251     }
   253     void m30() {
   254         try {
   255             checked();
   256         }
   257         catch(RuntimeException exc) { }
   258         catch(Error exc) { }
   259         catch(Throwable exc) { } //ok
   260     }
   262     void m31() {
   263         try {
   264             runtime();
   265         }
   266         catch(RuntimeException exc) { }
   267         catch(Error exc) { }
   268         catch(Throwable exc) { } //6: ok; latest: unreachable
   269     }
   271     void m32() {
   272         try {
   273             nothing();
   274         }
   275         catch(RuntimeException exc) { }
   276         catch(Error exc) { }
   277         catch(Throwable exc) { } //6: ok; latest: unreachable
   278     }
   280     void m33() {
   281         try {
   282             checked();
   283         }
   284         catch(InterruptedException exc) { } //ok
   285     }
   287     void m34() {
   288         try {
   289             runtime();
   290         }
   291         catch(InterruptedException exc) { } //never thrown in try
   292     }
   294     void m35() {
   295         try {
   296             nothing();
   297         }
   298         catch(InterruptedException exc) { } //never thrown in try
   299     }
   300 }

mercurial