Reviewers: cromwellian, zundel,

Description:
Removes a field from JType, and several from the serialization of
JPrimitiveType.

Please review this at http://gwt-code-reviews.appspot.com/1367801/

Affected files:
  M dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java
  M dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java
  M dev/core/src/com/google/gwt/dev/jjs/ast/JType.java


Index: dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java
diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java index 6e62e0df6f320a24e074f670283b9225bbf59891..dcdfee6e7b776afd9d0188e6a31d5ad98ab67f6c 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java
@@ -57,13 +57,16 @@ public class JPrimitiveType extends JType {
   public static final JPrimitiveType VOID = new JPrimitiveType("void", "V",
       "java.lang.Void", null);

-  private final String signatureName;
+  private final transient JValueLiteral defaultValue;

-  private final String wrapperTypeName;
+  private final transient String signatureName;
+
+  private final transient String wrapperTypeName;

   private JPrimitiveType(String name, String signatureName,
-      String wrapperTypeName, JLiteral defaultValue) {
-    super(SourceOrigin.UNKNOWN, name, defaultValue);
+      String wrapperTypeName, JValueLiteral defaultValue) {
+    super(SourceOrigin.UNKNOWN, name);
+    this.defaultValue = defaultValue;
     this.signatureName = StringInterner.get().intern(signatureName);
     this.wrapperTypeName = StringInterner.get().intern(wrapperTypeName);
     Singletons.map.put(this.name, this);
@@ -74,10 +77,8 @@ public class JPrimitiveType extends JType {
    * if no such coercion is possible.
    */
   public JValueLiteral coerceLiteral(JValueLiteral value) {
-    JLiteral defaultValue = getDefaultValue();
-    if (defaultValue instanceof JValueLiteral) {
-      JValueLiteral defaultValueLiteral = (JValueLiteral) defaultValue;
-      return defaultValueLiteral.cloneFrom(value);
+    if (defaultValue != null) {
+      return defaultValue.cloneFrom(value);
     }
     return null;
   }
@@ -88,6 +89,11 @@ public class JPrimitiveType extends JType {
   }

   @Override
+  public final JLiteral getDefaultValue() {
+    return defaultValue;
+  }
+
+  @Override
   public String getJavahSignatureName() {
     return signatureName;
   }
Index: dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java
diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java index c91b6efbb4373b5a613c56e4738180ff6e4c03e0..ce2854295ba023f1b9df28de3a3d029705fcba6f 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java
@@ -25,7 +25,7 @@ public abstract class JReferenceType extends JType implements CanBeAbstract {
   private transient JNonNullType nonNullType;

   public JReferenceType(SourceInfo info, String name) {
-    super(info, name, JNullLiteral.INSTANCE);
+    super(info, name);
   }

   /**
@@ -39,6 +39,11 @@ public abstract class JReferenceType extends JType implements CanBeAbstract {
   }

   @Override
+  public final JLiteral getDefaultValue() {
+    return JNullLiteral.INSTANCE;
+  }
+
+  @Override
   public String getJavahSignatureName() {
     return "L" + name.replaceAll("_", "_1").replace('.', '_') + "_2";
   }
Index: dev/core/src/com/google/gwt/dev/jjs/ast/JType.java
diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JType.java index f772af7b25747be14b5727fe9401e69620ac3df8..f97e5fae326481140fa2a6e7704ad33474701a88 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/ast/JType.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JType.java
@@ -24,19 +24,15 @@ import com.google.gwt.dev.util.StringInterner;
 public abstract class JType extends JNode implements HasName, CanBeFinal {

   protected final String name;
-  private final JLiteral defaultValue;

-  public JType(SourceInfo info, String name, JLiteral defaultValue) {
+  public JType(SourceInfo info, String name) {
     super(info);
     this.name = StringInterner.get().intern(name);
-    this.defaultValue = defaultValue;
   }

   public abstract String getClassLiteralFactoryMethod();

-  public JLiteral getDefaultValue() {
-    return defaultValue;
-  }
+  public abstract JLiteral getDefaultValue();

   public abstract String getJavahSignatureName();



--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to