Cleaned up some code for 1.5.  Also tweaked the JMethodBody.toString() for better debugging experience.


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1649 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/SourceGenerationVisitor.java b/dev/core/src/com/google/gwt/dev/jjs/impl/SourceGenerationVisitor.java
index 538fa4f..d701d01 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/SourceGenerationVisitor.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/SourceGenerationVisitor.java
@@ -56,7 +56,7 @@
     super(textOutput);
   }
 
-  // @Override
+  @Override
   public boolean visit(JClassType x, Context ctx) {
     // All classes are deemed "static" so the monolithic compile results can be
     // copy/pasted into a single enclosing class.
@@ -67,13 +67,13 @@
     openBlock();
 
     for (int i = 0; i < x.fields.size(); ++i) {
-      JField it = (JField) x.fields.get(i);
+      JField it = x.fields.get(i);
       accept(it);
       newline();
       newline();
     }
     for (int i = 0; i < x.methods.size(); ++i) {
-      JMethod it = (JMethod) x.methods.get(i);
+      JMethod it = x.methods.get(i);
       if (!isEmptyInitializer(it)) {
         accept(it);
         newline();
@@ -85,6 +85,7 @@
     return false;
   }
 
+  @Override
   public boolean visit(JField x, Context ctx) {
     super.visit(x, ctx);
 
@@ -96,20 +97,20 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JInterfaceType x, Context ctx) {
     super.visit(x, ctx);
 
     openBlock();
 
     for (int i = 0; i < x.fields.size(); ++i) {
-      JField field = (JField) x.fields.get(i);
+      JField field = x.fields.get(i);
       accept(field);
       newline();
       newline();
     }
     for (int i = 0; i < x.methods.size(); ++i) {
-      JMethod method = (JMethod) x.methods.get(i);
+      JMethod method = x.methods.get(i);
       accept(method);
       newline();
       newline();
@@ -119,13 +120,7 @@
     return false;
   }
 
-  // @Override
-  public boolean visit(JMethodBody x, Context ctx) {
-    // actually visit my block
-    return true;
-  }
-
-  // @Override
+  @Override
   public boolean visit(JProgram x, Context ctx) {
     for (int i = 0; i < x.entryMethods.size(); ++i) {
       JMethod method = x.entryMethods.get(i);
@@ -142,7 +137,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JsniMethodBody x, Context ctx) {
     print("/*-");
     String jsniCode = x.getFunc().getBody().toString();
@@ -158,12 +153,12 @@
     return false;
   }
 
-  // @Override
+  @Override
   protected void printMemberFinalFlag(CanBeFinal x) {
     // suppress final flags
   }
 
-  // @Override
+  @Override
   protected void printTypeName(JType type) {
     if (type instanceof JNullType) {
       print("Object");
@@ -172,4 +167,9 @@
     }
   }
 
+  @Override
+  protected boolean shouldPrintMethodBody() {
+    return true;
+  }
+
 }
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/ToStringGenerationVisitor.java b/dev/core/src/com/google/gwt/dev/jjs/impl/ToStringGenerationVisitor.java
index aadbe42..5bbee4d 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/ToStringGenerationVisitor.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/ToStringGenerationVisitor.java
@@ -56,7 +56,6 @@
 import com.google.gwt.dev.jjs.ast.JLocalRef;
 import com.google.gwt.dev.jjs.ast.JLongLiteral;
 import com.google.gwt.dev.jjs.ast.JMethod;
-import com.google.gwt.dev.jjs.ast.JMethodBody;
 import com.google.gwt.dev.jjs.ast.JMethodCall;
 import com.google.gwt.dev.jjs.ast.JNewArray;
 import com.google.gwt.dev.jjs.ast.JNewInstance;
@@ -151,13 +150,13 @@
     super(textOutput);
   }
 
-  // @Override
+  @Override
   public boolean visit(JAbsentArrayDimension x, Context ctx) {
     // nothing to print, parent prints []
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JArrayRef x, Context ctx) {
     JExpression instance = x.getInstance();
     parenPush(x, instance);
@@ -169,7 +168,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JArrayType x, Context ctx) {
     accept(x.getLeafType());
     for (int i = 0, c = x.getDims(); i < c; ++i) {
@@ -178,7 +177,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JAssertStatement x, Context ctx) {
     print(CHARS_ASSERT);
     accept(x.getTestExpr());
@@ -189,7 +188,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JBinaryOperation x, Context ctx) {
     // TODO(later): associativity
     JExpression arg1 = x.getLhs();
@@ -209,11 +208,11 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JBlock x, Context ctx) {
     openBlock();
     for (int i = 0; i < x.statements.size(); ++i) {
-      JStatement statement = (JStatement) x.statements.get(i);
+      JStatement statement = x.statements.get(i);
       needSemi = true;
       accept(statement);
       if (needSemi) {
@@ -226,13 +225,13 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JBooleanLiteral x, Context ctx) {
     printBooleanLiteral(x.getValue());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JBreakStatement x, Context ctx) {
     print(CHARS_BREAK);
     if (x.getLabel() != null) {
@@ -242,7 +241,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JCaseStatement x, Context ctx) {
     if (x.getExpr() != null) {
       print(CHARS_CASE);
@@ -256,7 +255,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JCastOperation x, Context ctx) {
     lparen();
     printType(x);
@@ -270,20 +269,20 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JCharLiteral x, Context ctx) {
     printCharLiteral(x.getValue());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JClassLiteral x, Context ctx) {
     printTypeName(x.getRefType());
     print(CHARS_DOTCLASS);
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JClassType x, Context ctx) {
     printAbstractFlag(x);
     printFinalFlag(x);
@@ -302,7 +301,7 @@
         if (i > 0) {
           print(CHARS_COMMA);
         }
-        printTypeName((JType) x.implments.get(i));
+        printTypeName(x.implments.get(i));
       }
       space();
     }
@@ -310,7 +309,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JConditional x, Context ctx) {
     // TODO(later): associativity
     JExpression ifTest = x.getIfTest();
@@ -335,7 +334,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JContinueStatement x, Context ctx) {
     print(CHARS_CONTINUE);
     if (x.getLabel() != null) {
@@ -345,7 +344,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JDoStatement x, Context ctx) {
     print(CHARS_DO);
     if (x.getBody() != null) {
@@ -367,19 +366,19 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JDoubleLiteral x, Context ctx) {
     printDoubleLiteral(x.getValue());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JExpressionStatement x, Context ctx) {
     accept(x.getExpr());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JField x, Context ctx) {
     // Due to our wacky construction model, only constant fields may be final
     // when generating source
@@ -396,7 +395,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JFieldRef x, Context ctx) {
     JExpression instance = x.getInstance();
     if (instance != null) {
@@ -411,26 +410,26 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JFloatLiteral x, Context ctx) {
     printFloatLiteral(x.getValue());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JForStatement x, Context ctx) {
     print(CHARS_FOR);
     lparen();
 
-    Iterator/* <JStatement> */iter = x.getInitializers().iterator();
+    Iterator<JStatement> iter = x.getInitializers().iterator();
     if (iter.hasNext()) {
-      JStatement stmt = (JStatement) iter.next();
+      JStatement stmt = iter.next();
       accept(stmt);
     }
     suppressType = true;
     while (iter.hasNext()) {
       print(CHARS_COMMA);
-      JStatement stmt = (JStatement) iter.next();
+      JStatement stmt = iter.next();
       accept(stmt);
     }
     suppressType = false;
@@ -454,7 +453,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JIfStatement x, Context ctx) {
     print(CHARS_IF);
     lparen();
@@ -491,7 +490,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JInstanceOf x, Context ctx) {
     JExpression expr = x.getExpr();
     parenPush(x, expr);
@@ -502,7 +501,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JInterfaceType x, Context ctx) {
     print(CHARS_INTERFACE);
     printTypeName(x);
@@ -514,7 +513,7 @@
         if (i > 0) {
           print(CHARS_COMMA);
         }
-        printTypeName((JType) x.implments.get(i));
+        printTypeName(x.implments.get(i));
       }
       space();
     }
@@ -522,19 +521,19 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JIntLiteral x, Context ctx) {
     print(Integer.toString(x.getValue()).toCharArray());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JLabel x, Context ctx) {
     printName(x);
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JLabeledStatement x, Context ctx) {
     accept(x.getLabel());
     print(" : ");
@@ -542,7 +541,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JLocal x, Context ctx) {
     printFinalFlag(x);
     printType(x);
@@ -551,7 +550,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JLocalDeclarationStatement x, Context ctx) {
     if (!suppressType) {
       accept(x.getLocalRef().getTarget());
@@ -566,49 +565,46 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JLocalRef x, Context ctx) {
     printName(x.getLocal());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JLongLiteral x, Context ctx) {
     printLongLiteral(x.getValue());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JMethod x, Context ctx) {
     // special: transcribe clinit and init as if they were initializer blocks
     if (isInitializer(x)) {
       if (x.isStatic()) {
         print(CHARS_STATIC);
       }
-      accept(x.getBody());
+      if (shouldPrintMethodBody()) {
+        accept(x.getBody());
+      } else {
+        print("{ ... }");
+        newlineOpt();
+      }
     } else {
       printMethodHeader(x);
-      if (x.isAbstract()) {
-        semi();
-      } else {
+      if (shouldPrintMethodBody() && !x.isAbstract()) {
         space();
         accept(x.getBody());
+      } else {
+        semi();
+        newlineOpt();
       }
     }
 
     return false;
   }
 
-  // @Override
-  public boolean visit(JMethodBody x, Context ctx) {
-    print("{");
-    // don't visit my block
-    newline();
-    print("}");
-    return false;
-  }
-
-  // @Override
+  @Override
   public boolean visit(JMethodCall x, Context ctx) {
     JExpression instance = x.getInstance();
     JMethod target = x.getTarget();
@@ -631,7 +627,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JMultiExpression x, Context ctx) {
     lparen();
     visitCollectionWithCommas(x.exprs.iterator());
@@ -639,7 +635,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JNewArray x, Context ctx) {
     print(CHARS_NEW);
     printTypeName(x.getArrayType().getLeafType());
@@ -649,7 +645,7 @@
       print('}');
     } else {
       for (int i = 0; i < x.dims.size(); ++i) {
-        JExpression expr = (JExpression) x.dims.get(i);
+        JExpression expr = x.dims.get(i);
         print('[');
         accept(expr);
         print(']');
@@ -658,7 +654,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JNewInstance x, Context ctx) {
     print(CHARS_NEW);
     printType(x);
@@ -667,19 +663,19 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JNullLiteral x, Context ctx) {
     print(CHARS_NULL);
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JNullType x, Context ctx) {
     printTypeName(x);
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JParameter x, Context ctx) {
     printType(x);
     space();
@@ -687,13 +683,13 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JParameterRef x, Context ctx) {
     printName(x.getTarget());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JPostfixOperation x, Context ctx) {
     // TODO(later): associativity
     JExpression arg = x.getArg();
@@ -704,7 +700,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JPrefixOperation x, Context ctx) {
     // TODO(later): associativity
     print(x.getOp().getSymbol());
@@ -715,19 +711,19 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JPrimitiveType x, Context ctx) {
     printTypeName(x);
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JProgram x, Context ctx) {
     print("<JProgram>");
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JReturnStatement x, Context ctx) {
     print(CHARS_RETURN);
     if (x.getExpr() != null) {
@@ -737,12 +733,12 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JsniFieldRef x, Context ctx) {
     return visit(x.getField(), ctx);
   }
 
-  // @Override
+  @Override
   public boolean visit(JsniMethodBody x, Context ctx) {
     print("/*-{");
     // don't visit my block
@@ -751,13 +747,14 @@
     semi();
     return false;
   }
-  // @Override
+
+  @Override
   public boolean visit(JsniMethodRef x, Context ctx) {
     printMethodHeader(x.getTarget());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JsonArray x, Context ctx) {
     print('[');
     visitCollectionWithCommas(x.exprs.iterator());
@@ -765,7 +762,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JsonObject x, Context ctx) {
     print('{');
     visitCollectionWithCommas(x.propInits.iterator());
@@ -773,7 +770,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JsonPropInit x, Context ctx) {
     accept(x.labelExpr);
     print(':');
@@ -781,13 +778,13 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JStringLiteral x, Context ctx) {
     printStringLiteral(x.getValue());
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JSwitchStatement x, Context ctx) {
     print(CHARS_SWITCH);
     lparen();
@@ -800,13 +797,13 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JThisRef x, Context ctx) {
     print(CHARS_THIS);
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JThrowStatement x, Context ctx) {
     print(CHARS_THROW);
     if (x.getExpr() != null) {
@@ -816,18 +813,18 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JTryStatement x, Context ctx) {
     print(CHARS_TRY);
     accept(x.getTryBlock());
     for (int i = 0, c = x.getCatchArgs().size(); i < c; ++i) {
       print(CHARS_CATCH);
       lparen();
-      JLocalRef localRef = (JLocalRef) x.getCatchArgs().get(i);
+      JLocalRef localRef = x.getCatchArgs().get(i);
       accept(localRef.getTarget());
       rparen();
       space();
-      JBlock block = (JBlock) x.getCatchBlocks().get(i);
+      JBlock block = x.getCatchBlocks().get(i);
       accept(block);
     }
     if (x.getFinallyBlock() != null) {
@@ -837,7 +834,7 @@
     return false;
   }
 
-  // @Override
+  @Override
   public boolean visit(JWhileStatement x, Context ctx) {
     print(CHARS_WHILE);
     lparen();
@@ -1026,13 +1023,13 @@
 
     if (x.thrownExceptions.size() > 0) {
       print(CHARS_THROWS);
-      Iterator/* <JClassType> */iter = x.thrownExceptions.iterator();
+      Iterator<JClassType> iter = x.thrownExceptions.iterator();
       if (iter.hasNext()) {
-        printTypeName((JType) iter.next());
+        printTypeName(iter.next());
       }
       while (iter.hasNext()) {
         print(CHARS_COMMA);
-        printTypeName((JType) iter.next());
+        printTypeName(iter.next());
       }
     }
   }
@@ -1088,19 +1085,21 @@
     print(';');
   }
 
+  protected boolean shouldPrintMethodBody() {
+    return false;
+  }
+
   protected void space() {
     print(' ');
   }
 
-  protected void visitCollectionWithCommas(Iterator/* <? extends JNode> */iter) {
+  protected void visitCollectionWithCommas(Iterator<? extends JNode> iter) {
     if (iter.hasNext()) {
-      JNode node = (JNode) iter.next();
-      accept(node);
+      accept(iter.next());
     }
     while (iter.hasNext()) {
       print(CHARS_COMMA);
-      JNode node = (JNode) iter.next();
-      accept(node);
+      accept(iter.next());
     }
   }