Author: [email protected]
Date: Thu Mar 19 19:01:26 2009
New Revision: 5059

Modified:
     
changes/jat/ihm/dev/core/src/com/google/gwt/core/ext/typeinfo/JRealClassType.java
     
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java

Log:
Enum support, a bit of cleanup.


Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/core/ext/typeinfo/JRealClassType.java
==============================================================================
---  
changes/jat/ihm/dev/core/src/com/google/gwt/core/ext/typeinfo/JRealClassType.java
        
(original)
+++  
changes/jat/ihm/dev/core/src/com/google/gwt/core/ext/typeinfo/JRealClassType.java
        
Thu Mar 19 19:01:26 2009
@@ -60,6 +60,8 @@
    private JClassType superclass;

    private boolean resolved = false;
+
+  private int nextEnumOrdinal = 0;

    public JRealClassType(TypeOracle oracle, JPackage declaringPackage,
        JClassType enclosingType, boolean isLocalType, String name,
@@ -150,6 +152,10 @@

    public JClassType getEnclosingType() {
      return enclosingType;
+  }
+
+  public int getEnumOrdinal() {
+    return nextEnumOrdinal++;
    }

    @Override

Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
==============================================================================
---  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java   
 
(original)
+++  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java   
 
Thu Mar 19 19:01:26 2009
@@ -612,7 +612,7 @@
    protected static class MyClassVisitor extends EmptyVisitor {

      /**
-     * Type of this class {...@linkplain }
+     * Type of this class.
       */
      public enum ClassType {
        TopLevel,
@@ -905,9 +905,6 @@
            // remove "this$1" as a parameter
            int skip = 1;
            int n = argTypes.length - skip;
-          if (n < 0) {
-            boolean stophere = true;
-          }
            Type[] newArgTypes = new Type[n];
            System.arraycopy(argTypes, skip, newArgTypes, 0, n);
            argTypes = newArgTypes;
@@ -1877,18 +1874,6 @@
      return resolvedType;
    }

-  private boolean resolveBoundsForTypeParameters(TreeLogger logger,
-      JTypeParameter[] typeParams, TypeParameterLookup typeParamLookup) {
-//    logger.log(TreeLogger.WARN,
-//        "Unimplemented: resolveBoundsForTypeParameters");
-    if (typeParams == null || typeParams.length == 0) {
-      return true;
-    }
-    for (JTypeParameter typeParam : typeParams) {
-    }
-    return true;
-  }
-
    private boolean resolveClass(TreeLogger logger, JRealClassType type) {
      assert type != null;
      // Avoid cycles and useless computation.
@@ -2078,11 +2063,10 @@
      resolveAnnotations(logger, field.getAnnotations(),  
declaredAnnotations);
      String name = field.getName();
      JField jfield;
-    if (false /* TODO(jat): !! enum constant */) {
+    if ((field.getAccess() & Opcodes.ACC_ENUM) != 0) {
        assert (type.isEnum() != null);
-      // TODO(jat): is this right?
        jfield = new JEnumConstant(type, name, declaredAnnotations,
-          ((Integer) field.getValue()).intValue());
+          type.getEnumOrdinal());
      } else {
        jfield = new JField(type, name, declaredAnnotations);
      }

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

Reply via email to