Fix bug in UnifyAst where non-null array types failed to canonicalize.
http://gwt-code-reviews.appspot.com/1469802/
Review by: jbrosenberg@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10416 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/UnifyAst.java b/dev/core/src/com/google/gwt/dev/jjs/impl/UnifyAst.java
index f1a4246..65c896b 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/UnifyAst.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/UnifyAst.java
@@ -1070,19 +1070,24 @@
}
private JReferenceType translate(JReferenceType type) {
+ if (type instanceof JNonNullType) {
+ return translate(type.getUnderlyingType()).getNonNull();
+ }
+
if (type instanceof JArrayType) {
JArrayType arrayType = (JArrayType) type;
- type = program.getTypeArray(translate(arrayType.getElementType()));
- } else if (type.isExternal()) {
+ return program.getTypeArray(translate(arrayType.getElementType()));
+ }
+
+ if (type.isExternal()) {
if (type instanceof JDeclaredType) {
type = translate((JDeclaredType) type);
- } else if (type instanceof JNonNullType) {
- type = translate(type.getUnderlyingType()).getNonNull();
} else {
assert false : "Unknown external type";
}
+ assert !type.isExternal();
}
- assert !type.isExternal();
+
return type;
}