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());
}
}