langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
changeset 14365 20f388573215
parent 14359 d4099818ab70
child 14538 384681be798f
--- a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Fri Oct 26 18:40:13 2012 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Mon Oct 29 10:39:49 2012 -0700
@@ -271,6 +271,10 @@
      */
     protected TransTypes transTypes;
 
+    /** The lambda translator.
+     */
+    protected LambdaToMethod lambdaToMethod;
+
     /** The syntactic sugar desweetener.
      */
     protected Lower lower;
@@ -369,6 +373,8 @@
 
         options = Options.instance(context);
 
+        lambdaToMethod = LambdaToMethod.instance(context);
+
         verbose       = options.isSet(VERBOSE);
         sourceOutput  = options.isSet(PRINTSOURCE); // used to be -s
         stubOutput    = options.isSet("-stubs");
@@ -524,8 +530,10 @@
         ATTR(4),
         FLOW(5),
         TRANSTYPES(6),
-        LOWER(7),
-        GENERATE(8);
+        UNLAMBDA(7),
+        LOWER(8),
+        GENERATE(9);
+
         CompileState(int value) {
             this.value = value;
         }
@@ -1418,6 +1426,12 @@
             env.tree = transTypes.translateTopLevelClass(env.tree, localMake);
             compileStates.put(env, CompileState.TRANSTYPES);
 
+            if (shouldStop(CompileState.UNLAMBDA))
+                return;
+
+            env.tree = lambdaToMethod.translateTopLevelClass(env, env.tree, localMake);
+            compileStates.put(env, CompileState.UNLAMBDA);
+
             if (shouldStop(CompileState.LOWER))
                 return;