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