< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Analyzer.java

Print this page
rev 50958 : 8207229: Trees.getScope crashes for broken lambda
8207230: Trees.getScope runs Analyzers
Reviewed-by: TBD


 458             return analyzeEnv;
 459         } else {
 460             return null;
 461         }
 462     }
 463 
 464     /**
 465      * Analyze an AST node if needed.
 466      */
 467     void analyzeIfNeeded(JCTree tree, Env<AttrContext> env) {
 468         if (env != null) {
 469             JCStatement stmt = (JCStatement)tree;
 470             analyze(stmt, env);
 471         }
 472     }
 473 
 474     /**
 475      * Analyze an AST node; this involves collecting a list of all the nodes that needs rewriting,
 476      * and speculatively type-check the rewritten code to compare results against previously attributed code.
 477      */
 478     void analyze(JCStatement statement, Env<AttrContext> env) {
 479         StatementScanner statementScanner = new StatementScanner(statement, env);
 480         statementScanner.scan();
 481 
 482         if (!statementScanner.rewritings.isEmpty()) {
 483             for (RewritingContext rewriting : statementScanner.rewritings) {
 484                 deferredAnalysisHelper.queue(rewriting);
 485             }
 486         }
 487     }
 488 
 489     /**
 490      * Helper interface to handle deferral of analysis tasks.
 491      */
 492     interface DeferredAnalysisHelper {
 493         /**
 494          * Add a new analysis task to the queue.
 495          */
 496         void queue(RewritingContext rewriting);
 497         /**
 498          * Flush queue with given attribution env.




 458             return analyzeEnv;
 459         } else {
 460             return null;
 461         }
 462     }
 463 
 464     /**
 465      * Analyze an AST node if needed.
 466      */
 467     void analyzeIfNeeded(JCTree tree, Env<AttrContext> env) {
 468         if (env != null) {
 469             JCStatement stmt = (JCStatement)tree;
 470             analyze(stmt, env);
 471         }
 472     }
 473 
 474     /**
 475      * Analyze an AST node; this involves collecting a list of all the nodes that needs rewriting,
 476      * and speculatively type-check the rewritten code to compare results against previously attributed code.
 477      */
 478     protected void analyze(JCStatement statement, Env<AttrContext> env) {
 479         StatementScanner statementScanner = new StatementScanner(statement, env);
 480         statementScanner.scan();
 481 
 482         if (!statementScanner.rewritings.isEmpty()) {
 483             for (RewritingContext rewriting : statementScanner.rewritings) {
 484                 deferredAnalysisHelper.queue(rewriting);
 485             }
 486         }
 487     }
 488 
 489     /**
 490      * Helper interface to handle deferral of analysis tasks.
 491      */
 492     interface DeferredAnalysisHelper {
 493         /**
 494          * Add a new analysis task to the queue.
 495          */
 496         void queue(RewritingContext rewriting);
 497         /**
 498          * Flush queue with given attribution env.


< prev index next >