43 import static com.sun.tools.javac.code.TypeTag.BOOLEAN; |
43 import static com.sun.tools.javac.code.TypeTag.BOOLEAN; |
44 import static com.sun.tools.javac.code.TypeTag.VOID; |
44 import static com.sun.tools.javac.code.TypeTag.VOID; |
45 import static com.sun.tools.javac.tree.JCTree.Tag.*; |
45 import static com.sun.tools.javac.tree.JCTree.Tag.*; |
46 |
46 |
47 /** This pass implements dataflow analysis for Java programs though |
47 /** This pass implements dataflow analysis for Java programs though |
48 * different AST visitor steps. Liveness analysis (see AliveAlanyzer) checks that |
48 * different AST visitor steps. Liveness analysis (see AliveAnalyzer) checks that |
49 * every statement is reachable. Exception analysis (see FlowAnalyzer) ensures that |
49 * every statement is reachable. Exception analysis (see FlowAnalyzer) ensures that |
50 * every checked exception that is thrown is declared or caught. Definite assignment analysis |
50 * every checked exception that is thrown is declared or caught. Definite assignment analysis |
51 * (see AssignAnalyzer) ensures that each variable is assigned when used. Definite |
51 * (see AssignAnalyzer) ensures that each variable is assigned when used. Definite |
52 * unassignment analysis (see AssignAnalyzer) in ensures that no final variable |
52 * unassignment analysis (see AssignAnalyzer) in ensures that no final variable |
53 * is assigned more than once. Finally, local variable capture analysis (see CaptureAnalyzer) |
53 * is assigned more than once. Finally, local variable capture analysis (see CaptureAnalyzer) |