src/share/classes/com/sun/tools/javac/comp/Flow.java

changeset 2606
f7f3f96999ba
parent 2591
fc1b69dce787
child 2702
9ca8d8713094
child 2820
7f6d6b80a58b
equal deleted inserted replaced
2603:682a6c1aefd7 2606:f7f3f96999ba
240 //step - if we suppress diagnostics, we won't stop at Attr for flow-analysis 240 //step - if we suppress diagnostics, we won't stop at Attr for flow-analysis
241 //related errors, which will allow for more errors to be detected 241 //related errors, which will allow for more errors to be detected
242 Log.DiagnosticHandler diagHandler = new Log.DiscardDiagnosticHandler(log); 242 Log.DiagnosticHandler diagHandler = new Log.DiscardDiagnosticHandler(log);
243 try { 243 try {
244 new AssignAnalyzer() { 244 new AssignAnalyzer() {
245 Scope enclosedSymbols = new Scope(env.enclClass.sym);
246 @Override
247 public void visitVarDef(JCVariableDecl tree) {
248 enclosedSymbols.enter(tree.sym);
249 super.visitVarDef(tree);
250 }
245 @Override 251 @Override
246 protected boolean trackable(VarSymbol sym) { 252 protected boolean trackable(VarSymbol sym) {
247 return !env.info.scope.includes(sym) && 253 return enclosedSymbols.includes(sym) &&
248 sym.owner.kind == MTH; 254 sym.owner.kind == MTH;
249 } 255 }
250 }.analyzeTree(env, that); 256 }.analyzeTree(env, that);
251 LambdaFlowAnalyzer flowAnalyzer = new LambdaFlowAnalyzer(); 257 LambdaFlowAnalyzer flowAnalyzer = new LambdaFlowAnalyzer();
252 flowAnalyzer.analyzeTree(env, that, make); 258 flowAnalyzer.analyzeTree(env, that, make);

mercurial