Revision: 9932
Author: sco...@google.com
Date: Fri Apr 1 12:57:25 2011
Log: Fix ICE in GenerateJavaAST
An empty for statement can generate an ICE.
for (Integer xyzzy : new ArrayList<Integer>())
; // TODO
http://gwt-code-reviews.appspot.com/1400801/
Review by: zun...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=9932
Modified:
/trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
/trunk/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java
=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
Thu Mar 3 14:34:14 2011
+++ /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
Fri Apr 1 12:57:25 2011
@@ -1639,7 +1639,9 @@
body = (JBlock) action;
} else {
body = new JBlock(info);
- body.addStmt(action);
+ if (action != null) {
+ body.addStmt(action);
+ }
}
JLocal elementVar = (JLocal) typeMap.get(x.elementVariable.binding);
=======================================
--- /trunk/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java Thu Dec
16 11:33:51 2010
+++ /trunk/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java Fri Apr
1 12:57:25 2011
@@ -20,6 +20,7 @@
import junit.framework.Assert;
+import java.util.ArrayList;
import java.util.EventListener;
/**
@@ -723,6 +724,12 @@
for (; b;);
+ for (int i = 0; i < 10; ++i);
+
+ for (int i : new int[10]);
+
+ for (Integer i : new ArrayList<Integer>());
+
for (;;)
break;
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors