Tue, 03 Jun 2008 13:26:47 -0700
4075303: Use javap to enquire aboput a specific inner class
4348375: Javap is not internationalized
4459541: "javap -l" shows line numbers as signed short; they should be unsigned
4501660: change diagnostic of -help as 'print this help message and exit'
4776241: unused source file in javap...
4870651: javap should recognize generics, varargs, enum
4876942: javap invoked without args does not print help screen
4880663: javap could output whitespace between class name and opening brace
4975569: javap doesn't print new flag bits
6271787: javap dumps LocalVariableTypeTable attribute in hex, needs to print a table
6305779: javap: support annotations
6439940: Clean up javap implementation
6469569: wrong check of searchpath in JavapEnvironment
6474890: javap does not open .zip files in -classpath
6587786: Javap throws error : "ERROR:Could not find <classname>" for JRE classes
6622215: javap ignores certain relevant access flags
6622216: javap names some attributes incorrectly
6622232: javap gets whitespace confused
6622260: javap prints negative bytes incorrectly in hex
Reviewed-by: ksrini
duke@1 | 1 | /* |
duke@1 | 2 | * @test /nodynamiccopyright/ |
duke@1 | 3 | * @bug 6227617 |
duke@1 | 4 | * @summary Lint option for redundant casts |
duke@1 | 5 | * @compile -Werror T6227617.java |
duke@1 | 6 | * @compile/ref=T6227617.out -XDstdout -XDrawDiagnostics -Xlint:cast T6227617.java |
duke@1 | 7 | */ |
duke@1 | 8 | import java.util.HashMap; |
duke@1 | 9 | import java.util.Map; |
duke@1 | 10 | |
duke@1 | 11 | class T6227617 { |
duke@1 | 12 | void m() { |
duke@1 | 13 | int i1 = 2; |
duke@1 | 14 | int i2 = (int) i1; // warn |
duke@1 | 15 | |
duke@1 | 16 | float f1 = 1f; |
duke@1 | 17 | int i3 = (int) f1; |
duke@1 | 18 | |
duke@1 | 19 | String s = (String) ""; // warn |
duke@1 | 20 | Object o = (Object) ""; |
duke@1 | 21 | |
duke@1 | 22 | Map<String, Integer> m = new HashMap<String, Integer>(); |
duke@1 | 23 | Integer I1 = (Integer) m.get(""); // warn |
duke@1 | 24 | } |
duke@1 | 25 | |
duke@1 | 26 | // The following cause NPE in Attr with an Attr-based solution for -Xlint:cast |
duke@1 | 27 | static final int i1 = Foo.i1; |
duke@1 | 28 | static final String s = Foo.s; |
duke@1 | 29 | } |
duke@1 | 30 | |
duke@1 | 31 | class Foo |
duke@1 | 32 | { |
duke@1 | 33 | static final int i1 = (int) 1; |
duke@1 | 34 | static final int i2 = (int) 1L; |
duke@1 | 35 | |
duke@1 | 36 | static final String s = (String) "abc"; |
duke@1 | 37 | } |