Workaround for a JDK 1.6.0_02 compiler bug.
Found by: fredsa
Suggested by: archie.cobbs
Patch by: fredsa
Review by: me
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1518 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/js/JsConstructExpressionVisitor.java b/dev/core/src/com/google/gwt/dev/js/JsConstructExpressionVisitor.java
index a244456..3d09cba 100644
--- a/dev/core/src/com/google/gwt/dev/js/JsConstructExpressionVisitor.java
+++ b/dev/core/src/com/google/gwt/dev/js/JsConstructExpressionVisitor.java
@@ -108,8 +108,13 @@
* We only look at nodes that would not normally be surrounded by parentheses.
*/
protected <T extends JsVisitable<T>> T doAccept(T node) {
- if (node instanceof JsExpression) {
- JsExpression expression = (JsExpression) node;
+ /*
+ * Extra casts to Object to prevent 'inconvertible types' compile errors due
+ * to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6548436
+ * reproducible in jdk1.6.0_02.
+ */
+ if ((Object) node instanceof JsExpression) {
+ JsExpression expression = (JsExpression) (Object) node;
int precedence = JsPrecedenceVisitor.exec(expression);
// Only visit expressions that won't automatically be surrounded by
// parentheses