test/tools/javac/warnings/Unchecked.java

Mon, 16 Sep 2013 14:13:44 +0200

author
jlahoda
date
Mon, 16 Sep 2013 14:13:44 +0200
changeset 2028
4ce8148ffc4f
parent 611
4172cfff05f0
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8021112: Spurious unchecked warning reported by javac
6480588: No way to suppress deprecation warnings when implementing deprecated interface
Summary: Fixing DeferredLintHandler configuration, so lint warnings are reported with correct @SuppressWarnings settings
Reviewed-by: jjg, vromero

     1 /**
     2  * @test  /nodynamiccopyright/
     3  * @bug 4986256
     4  * @compile/ref=Unchecked.noLint.out                         -XDrawDiagnostics Unchecked.java
     5  * @compile/ref=Unchecked.lintUnchecked.out -Xlint:unchecked -XDrawDiagnostics Unchecked.java
     6  * @compile/ref=Unchecked.lintAll.out       -Xlint:all,-path -XDrawDiagnostics Unchecked.java
     7  */
     9 import java.util.ArrayList;
    10 import java.util.List;
    12 // control: this class should generate warnings
    13 class Unchecked
    14 {
    15     void m() {
    16         List l = new ArrayList<String>();
    17         l.add("abc");
    18     }
    19 }
    21 // tests: the warnings that would otherwise be generated should all be suppressed
    22 @SuppressWarnings("unchecked")
    23 class Unchecked2
    24 {
    25     void m() {
    26         List l = new ArrayList<String>();
    27         l.add("abc");
    28     }
    29 }
    31 class Unchecked3
    32 {
    33     @SuppressWarnings("unchecked")
    34     void m() {
    35         List l = new ArrayList<String>();
    36         l.add("abc");
    37     }
    38 }
    40 class Unchecked4
    41 {
    42     void m() {
    43         @SuppressWarnings("unchecked")
    44             class Inner {
    45                 void m() {
    46                     List l = new ArrayList<String>();
    47                     l.add("abc");
    48                 }
    49             }
    50     }
    51 }
    53 // this class should produce warnings because @SuppressWarnings should not be inherited
    54 class Unchecked5 extends Unchecked2
    55 {
    56     void m() {
    57         List l = new ArrayList<String>();
    58         l.add("abc");
    59     }
    60 }

mercurial