Author: [email protected]
Date: Fri Mar 20 16:18:31 2009
New Revision: 5068

Modified:
    changes/jat/ihm/dev/core/src/com/google/gwt/dev/HostedModeBase.java
     
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/BinaryCompilationUnit.java
     
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/BinaryCompiledClass.java
     
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java
     
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationUnitInvalidator.java
     
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JdtCompilationUnit.java
    changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
     
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
     
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/TypeOracleMediatorTest.java

Log:
Add -noBinaries option (probably will be renamed later), redid referenced  
types
infrastructure, and TypeOracleMediatorTest passing.

HostedTest still fails, due to a problem with List<int[]> etc being an  
acceptable
parameterized type that I didn't account for, but hosted mode is close to  
fully
functional (web compile still won't work in this branch).


Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/HostedModeBase.java
==============================================================================
--- changes/jat/ihm/dev/core/src/com/google/gwt/dev/HostedModeBase.java  
(original)
+++ changes/jat/ihm/dev/core/src/com/google/gwt/dev/HostedModeBase.java Fri  
Mar 20 16:18:31 2009
@@ -61,6 +61,34 @@
  abstract class HostedModeBase implements BrowserWindowController {

    /**
+   * Handles the -noBinaries command line flag.
+   */
+  public static class ArgHandlerNoBinaries extends ArgHandlerFlag {
+
+    private final OptionNoBinaries option;
+
+    public ArgHandlerNoBinaries(OptionNoBinaries option) {
+      this.option = option;
+    }
+
+    @Override
+    public String getPurpose() {
+      return "Debugging: disables use of compiled class files.";
+    }
+
+    @Override
+    public String getTag() {
+      return "-noBinaries";
+    }
+
+    @Override
+    public boolean setFlag() {
+      option.setNoBinaries(true);
+      return true;
+    }
+  }
+
+  /**
     * Handles the -blacklist command line argument.
     */
    protected static class ArgHandlerBlacklist extends ArgHandlerString {
@@ -84,7 +112,6 @@
        return BrowserWidgetHostChecker.blacklistRegexes(blacklistStr);
      }
    }
-
    /**
     * Handles the -noserver command line flag.
     */
@@ -232,7 +259,8 @@
    }

    protected interface HostedModeBaseOptions extends JJSOptions,  
OptionLogLevel,
-      OptionGenDir, OptionNoServer, OptionPort, OptionStartupURLs {
+      OptionGenDir, OptionNoServer, OptionPort, OptionStartupURLs,
+      OptionNoBinaries {

      /**
       * The base shell work directory.
@@ -249,6 +277,7 @@
      private boolean isNoServer;
      private int port;
      private final List<String> startupURLs = new ArrayList<String>();
+    private boolean noBinaries;

      public void addStartupURL(String url) {
        startupURLs.add(url);
@@ -270,6 +299,10 @@
        return isNoServer;
      }

+    public void setNoBinaries(boolean noBinaries) {
+      this.noBinaries = noBinaries;
+    }
+
      public void setNoServer(boolean isNoServer) {
        this.isNoServer = isNoServer;
      }
@@ -277,6 +310,20 @@
      public void setPort(int port) {
        this.port = port;
      }
+
+    public boolean useBinaries() {
+      return !noBinaries;
+    }
+  }
+
+  /**
+   * Controls what port to use.
+   *
+   */
+  protected interface OptionNoBinaries {
+    void setNoBinaries(boolean noBinaries);
+
+    boolean useBinaries();
    }

    /**
@@ -319,6 +366,7 @@
        registerHandler(new ArgHandlerLogLevel(options));
        registerHandler(new ArgHandlerGenDir(options));
        registerHandler(new ArgHandlerScriptStyle(options));
+      registerHandler(new ArgHandlerNoBinaries(options));
        registerHandler(new ArgHandlerEnableAssertions(options));
        registerHandler(new  
ArgHandlerDisableAggressiveOptimization(options));
        registerHandler(new ArgHandlerDisableClassMetadata(options));
@@ -538,7 +586,7 @@
        boolean refresh) throws UnableToCompleteException {
      refresh &= alreadySeenModules.contains(moduleName);
      ModuleDef moduleDef = ModuleDefLoader.loadFromClassPath(logger,  
moduleName,
-        refresh, true);
+        refresh, options.useBinaries());
      alreadySeenModules.add(moduleName);
      assert (moduleDef != null) : "Required module state is absent";
      return moduleDef;

Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/BinaryCompilationUnit.java
==============================================================================
---  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/BinaryCompilationUnit.java
         
(original)
+++  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/BinaryCompilationUnit.java
         
Fri Mar 20 16:18:31 2009
@@ -18,6 +18,7 @@

  import com.google.gwt.dev.resource.Resource;
  import com.google.gwt.dev.util.Name.BinaryName;
+import com.google.gwt.dev.util.Name.InternalName;

  import org.eclipse.jdt.core.compiler.CategorizedProblem;

@@ -104,12 +105,12 @@
    }

    @Override
-  protected Set<String> computeFileNameRefs() {
-    Set<String> filenames = new HashSet<String>();
+  protected Set<InternalName> computeReferencedTypes() {
+    Set<InternalName> referencedTypes = new HashSet<InternalName>();
      for (BinaryCompiledClass compiledClass : compiledClasses) {
-      filenames.add(compiledClass.getClassResource().getLocation());
+      referencedTypes.addAll(compiledClass.getReferencedTypes());
      }
-    return filenames;
+    return referencedTypes;
    }

    @Override
@@ -118,8 +119,13 @@
    }

    @Override
-  void setState(State newState) {
-    // TODO(jat): handle setting state to FRESH
+  boolean setState(State newState) {
+    if (newState == State.FRESH) {
+      // TODO(jat): for now, ignore state changes and assume bytecode is  
always
+      // fresh
+      return false;
+    }
      state = newState;
+    return true;
    }
  }

Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/BinaryCompiledClass.java
==============================================================================
---  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/BinaryCompiledClass.java  
 
(original)
+++  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/BinaryCompiledClass.java  
 
Fri Mar 20 16:18:31 2009
@@ -16,6 +16,11 @@

  package com.google.gwt.dev.javac;

+import com.google.gwt.dev.asm.ClassReader;
+import com.google.gwt.dev.asm.FieldVisitor;
+import com.google.gwt.dev.asm.MethodVisitor;
+import com.google.gwt.dev.asm.Type;
+import com.google.gwt.dev.asm.commons.EmptyVisitor;
  import com.google.gwt.dev.js.ast.JsProgram;
  import com.google.gwt.dev.resource.Resource;
  import com.google.gwt.dev.util.Name;
@@ -23,13 +28,78 @@
  import com.google.gwt.dev.util.Name.SourceName;

  import java.util.Collections;
+import java.util.HashSet;
  import java.util.List;
+import java.util.Set;

  /**
   * Represents a compiled class loaded from a .class file.
   */
  public class BinaryCompiledClass extends CompiledClass {

+  /**
+   * Collect all the types which are referenced by a particular class.
+   */
+  private static class CollectReferencesVisitor extends EmptyVisitor {
+    // TODO(jat): support annotation types, types in generic signatures
+
+    private static final EmptyVisitor emptyVisitor = new EmptyVisitor();
+
+    private Set<InternalName> referencedTypes = new  
HashSet<InternalName>();
+
+    public Set<InternalName> getReferencedTypes() {
+      return referencedTypes;
+    }
+
+    @Override
+    public void visit(int version, int access, String name, String  
signature,
+        String superName, String[] interfaces) {
+      referencedTypes.add(Name.internalName(superName));
+      if (interfaces != null) {
+        for (String intf : interfaces) {
+          referencedTypes.add(Name.internalName(intf));
+        }
+      }
+    }
+
+    @Override
+    public FieldVisitor visitField(int access, String name, String desc,
+        String signature, Object value) {
+      addTypeIfClass(Type.getType(desc));
+      return emptyVisitor;
+    }
+
+    @Override
+    public void visitInnerClass(String name, String outerName,
+        String innerName, int access) {
+      referencedTypes.add(Name.internalName(name));
+      if (outerName != null) {
+        referencedTypes.add(Name.internalName(outerName));
+      }
+    }
+
+    @Override
+    public MethodVisitor visitMethod(int access, String name, String desc,
+        String signature, String[] exceptions) {
+      for (Type type : Type.getArgumentTypes(desc)) {
+        addTypeIfClass(type);
+      }
+      addTypeIfClass(Type.getReturnType(desc));
+      return emptyVisitor;
+    }
+
+    @Override
+    public void visitOuterClass(String owner, String name, String desc) {
+      referencedTypes.add(Name.internalName(owner));
+    }
+
+    private void addTypeIfClass(Type type) {
+      if (type.getSort() == Type.OBJECT) {
+        referencedTypes.add(Name.internalName(type.getInternalName()));
+      }
+    }
+  }
+
    private InternalName name;

    private List<Resource> innerClasses;
@@ -86,6 +156,13 @@
        return "";
      }
      return name.substring(0, idx).replace('/', '.');
+  }
+
+  public Set<InternalName> getReferencedTypes() {
+    ClassReader reader = new ClassReader(getBytes());
+    CollectReferencesVisitor collector = new CollectReferencesVisitor();
+    reader.accept(collector, 0);
+    return collector.getReferencedTypes();
    }

    /**

Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java
==============================================================================
---  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java      
 
(original)
+++  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java      
 
Fri Mar 20 16:18:31 2009
@@ -28,6 +28,7 @@
  import java.util.ArrayList;
  import java.util.Collections;
  import java.util.HashMap;
+import java.util.HashSet;
  import java.util.List;
  import java.util.Map;
  import java.util.Set;
@@ -99,7 +100,8 @@
    private Map<InternalName,InternalName> anonymousClassMap = null;
    private Set<CompiledClass> exposedCompiledClasses;
    private List<JsniMethod> jsniMethods = null;
-  private Set<String> fileNameRefs;
+  private Set<InternalName> cachedReferencedTypes;
+  private Set<InternalName> cachedProvidedTypes;

    /*
     * Check if the unit has one or more anonymous classes. 'javac' below  
refers
@@ -245,7 +247,15 @@

    protected abstract Set<CompiledClass> computeCompiledClasses();

-  protected abstract Set<String> computeFileNameRefs();
+  protected Set<InternalName> computeProvidedTypes() {
+    Set<InternalName> providedTypes = new HashSet<InternalName>();
+    for (CompiledClass compiledClass : getCompiledClasses()) {
+      providedTypes.add(compiledClass.getInternalName());
+    }
+    return providedTypes;
+  }
+
+  protected abstract Set<InternalName> computeReferencedTypes();

    /**
     * Called when this unit no longer needs to keep an internal cache of its
@@ -259,7 +269,7 @@
     */
    protected void invalidate() {
      jsniMethods = null;
-    fileNameRefs = null;
+    cachedReferencedTypes = null;
      if (exposedCompiledClasses != null) {
        for (CompiledClass compiledClass : exposedCompiledClasses) {
          compiledClass.invalidate();
@@ -277,11 +287,18 @@

    abstract CategorizedProblem[] getErrors();

-  Set<String> getFileNameRefs() {
-    if (fileNameRefs == null) {
-      fileNameRefs = computeFileNameRefs();
+  Set<InternalName> getProvidedTypes() {
+    if (cachedProvidedTypes == null) {
+      cachedProvidedTypes = computeProvidedTypes();
+    }
+    return cachedProvidedTypes;
+  }
+
+  Set<InternalName> getReferencedTypes() {
+    if (cachedReferencedTypes == null) {
+      cachedReferencedTypes = computeReferencedTypes();
      }
-    return fileNameRefs;
+    return cachedReferencedTypes;
    }

    State getState() {
@@ -295,7 +312,7 @@
    /**
     * Changes the compilation unit's internal state.
     */
-  abstract void setState(State newState);
+  abstract boolean setState(State newState);

    private List<InternalName> getJavacClassNames(byte classBytes[]) {
      AnonymousClassVisitor cv = new AnonymousClassVisitor();

Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationUnitInvalidator.java
==============================================================================
---  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationUnitInvalidator.java
    
(original)
+++  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationUnitInvalidator.java
    
Fri Mar 20 16:18:31 2009
@@ -132,30 +132,30 @@
      // Assume all compiled units are valid at first.
      boolean changed;
      Set<CompilationUnit> validUnits = new HashSet<CompilationUnit>();
+    Set<InternalName> validRefs = new HashSet<InternalName>();
      for (CompilationUnit unit : units) {
        if (unit.isCompiled()) {
          validUnits.add(unit);
+        validRefs.addAll(unit.getProvidedTypes());
        }
      }
      do {
        changed = false;
-      Set<String> validRefs = new HashSet<String>();
-      for (CompilationUnit unit : validUnits) {
-        validRefs.addAll(unit.getFileNameRefs());
-      }
        for (Iterator<CompilationUnit> it = validUnits.iterator();  
it.hasNext();) {
          CompilationUnit unit = it.next();
-        TreeLogger branch = null;
-        for (String ref : unit.getFileNameRefs()) {
-          if (!validRefs.contains(ref)) {
-            if (branch == null) {
-              branch = logger.branch(TreeLogger.WARN, "Compilation unit '"
-                  + unit + "' is removed due to invalid reference(s):");
-              it.remove();
-              changed = true;
-              unit.setState(State.FRESH);
+        if (!validRefs.containsAll(unit.getReferencedTypes())) {
+          if (unit.setState(State.FRESH)) {
+            Set<InternalName> missing = unit.getReferencedTypes();
+            missing.removeAll(validRefs);
+            validRefs.removeAll(unit.getProvidedTypes());
+            TreeLogger branch = logger.branch(TreeLogger.WARN,
+                "Compilation unit '" + unit
+                    + "' is removed due to invalid reference(s):");
+            for (InternalName type : missing) {
+              branch.log(TreeLogger.WARN, type.toString());
              }
-            branch.log(TreeLogger.WARN, ref);
+            it.remove();
+            changed = true;
            }
          }
        }
@@ -165,7 +165,8 @@
    public static void validateCompilationUnits(InvalidatorState state,
        Set<CompilationUnit> units, Set<InternalName> validBinaryTypeNames) {
      for (CompilationUnit unit : units) {
-      if (unit.getState() == State.COMPILED && unit instanceof  
JdtCompilationUnit) {
+      if (unit.getState() == State.COMPILED
+          && unit instanceof JdtCompilationUnit) {
          CompilationUnitDeclaration jdtCud = ((JdtCompilationUnit)  
unit).getJdtCud();
          JSORestrictionsChecker.check(state.jsoState, jdtCud);
          JsniChecker.check(jdtCud);

Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JdtCompilationUnit.java
==============================================================================
---  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JdtCompilationUnit.java   
 
(original)
+++  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JdtCompilationUnit.java   
 
Fri Mar 20 16:18:31 2009
@@ -16,8 +16,12 @@
  package com.google.gwt.dev.javac;

  import com.google.gwt.dev.jdt.TypeRefVisitor;
+import com.google.gwt.dev.util.Name;
+import com.google.gwt.dev.util.Name.BinaryName;
+import com.google.gwt.dev.util.Name.InternalName;

  import org.eclipse.jdt.core.compiler.CategorizedProblem;
+import org.eclipse.jdt.core.compiler.CharOperation;
  import org.eclipse.jdt.internal.compiler.ASTVisitor;
  import org.eclipse.jdt.internal.compiler.CompilationResult;
  import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration;
@@ -105,14 +109,15 @@
    }

    @Override
-  protected Set<String> computeFileNameRefs() {
-    final Set<String> result = new HashSet<String>();
+  protected Set<InternalName> computeReferencedTypes() {
+    final Set<InternalName> result = new HashSet<InternalName>();
      cud.traverse(new TypeRefVisitor() {
        @Override
        protected void onTypeRef(SourceTypeBinding referencedType,
            CompilationUnitDeclaration unitOfReferrer) {
          // Map the referenced type to the target compilation unit file.
-        result.add(String.valueOf(referencedType.getFileName()));
+        result.add(Name.internalName(CharOperation.charToString(
+            referencedType.constantPoolName())));
        }
      }, cud.scope);
      return result;
@@ -153,10 +158,10 @@
     * Changes the compilation unit's internal state.
     */
    @Override
-  void setState(State newState) {
+  boolean setState(State newState) {
      assert (newState != State.COMPILED);
      if (state == newState) {
-      return;
+      return true;
      }
      state = newState;

@@ -165,7 +170,7 @@
        case CHECKED:
          // Must cache before we destroy the cud.
          assert (cud != null);
-        getFileNameRefs();
+        getReferencedTypes();
          for (CompiledClass compiledClass : getCompiledClasses()) {
            compiledClass.checked();
          }
@@ -184,6 +189,6 @@
          // to avoid compiler warnings, see assert above
          break;
      }
+    return true;
    }
-
  }

Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
==============================================================================
--- changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java      
 
(original)
+++ changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java      
 
Fri Mar 20 16:18:31 2009
@@ -286,7 +286,7 @@
      long delta = System.currentTimeMillis() - startCompile;
      if (logger != null) {
        // Will be null in tests.
-      logger.log(TreeLogger.TRACE, "Compiled " + compileUnits
+      logger.log(TreeLogger.INFO, "Compiled " + compileUnits
            + " compilation units in " + delta + "ms");
      }
      return true;

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   
 
Fri Mar 20 16:18:31 2009
@@ -427,8 +427,9 @@
      private final JClassType enclosingClass;

      private JClassType outerClass;
-    private List<JClassType[]> args = new ArrayList<JClassType[]>();
+    private List<JType[]> args = new ArrayList<JType[]>();
      private int arrayDepth = 0;
+    private Throwable creationStackTrace;

      /**
       * Resolve a parameterized type.
@@ -445,6 +446,8 @@
          JType[] returnTypeRef, TypeParameterLookup lookup,
          JClassType enclosingClass,
          char wildcardMatch) {
+      creationStackTrace = new Throwable();
+      creationStackTrace.fillInStackTrace();
        this.logger = logger;
        this.returnTypeRef = returnTypeRef;
        this.lookup = lookup;
@@ -460,37 +463,43 @@

      @Override
      public void visitBaseType(char descriptor) {
-      switch (descriptor) {
-        case 'V':
-          returnTypeRef[0] = JPrimitiveType.VOID;
-          break;
-        case 'B':
-          returnTypeRef[0] = JPrimitiveType.BYTE;
-          break;
-        case 'J':
-          returnTypeRef[0] = JPrimitiveType.LONG;
-          break;
-        case 'Z':
-          returnTypeRef[0] = JPrimitiveType.BOOLEAN;
-          break;
-        case 'I':
-          returnTypeRef[0] = JPrimitiveType.INT;
-          break;
-        case 'S':
-          returnTypeRef[0] = JPrimitiveType.SHORT;
-          break;
-        case 'C':
-          returnTypeRef[0] = JPrimitiveType.CHAR;
-          break;
-        case 'F':
-          returnTypeRef[0] = JPrimitiveType.FLOAT;
-          break;
-        case 'D':
-          returnTypeRef[0] = JPrimitiveType.DOUBLE;
-          break;
-        default:
-          throw new IllegalStateException("Unrecognized base type "
-              + descriptor);
+      // TODO(jat): remove try/catch and creationStackTrace
+      try {
+        switch (descriptor) {
+          case 'V':
+            returnTypeRef[0] = JPrimitiveType.VOID;
+            break;
+          case 'B':
+            returnTypeRef[0] = JPrimitiveType.BYTE;
+            break;
+          case 'J':
+            returnTypeRef[0] = JPrimitiveType.LONG;
+            break;
+          case 'Z':
+            returnTypeRef[0] = JPrimitiveType.BOOLEAN;
+            break;
+          case 'I':
+            returnTypeRef[0] = JPrimitiveType.INT;
+            break;
+          case 'S':
+            returnTypeRef[0] = JPrimitiveType.SHORT;
+            break;
+          case 'C':
+            returnTypeRef[0] = JPrimitiveType.CHAR;
+            break;
+          case 'F':
+            returnTypeRef[0] = JPrimitiveType.FLOAT;
+            break;
+          case 'D':
+            returnTypeRef[0] = JPrimitiveType.DOUBLE;
+            break;
+          default:
+            throw new IllegalStateException("Unrecognized base type "
+                + descriptor);
+        }
+      } catch (ArrayStoreException e) {
+        throw new RuntimeException(
+            "ArrayStore exception in ResolveParameterizedType",  
creationStackTrace);
        }
      }

@@ -543,7 +552,7 @@

      @Override
      public SignatureVisitor visitTypeArgument(char wildcard) {
-      JClassType[] arg = new JClassType[1];
+      JType[] arg = new JType[1];
        args.add(arg);
        // TODO(jat): !! enclosingClass?
        return new ResolveParameterizedType(logger, arg, lookup, null,  
wildcard);
@@ -570,7 +579,13 @@
                + expected + ", actual=" + actual;
            JClassType[] typeArgs = new JClassType[actual];
            for (int i = 0; i < actual; ++i) {
-            typeArgs[i] = args.get(i)[0];
+            JType type = args.get(i)[0];
+            if (!(type instanceof JClassType)) {
+              logger.log(TreeLogger.ERROR, "Parameterized type argument  
is "
+                  + type + ", expected reference type");
+            } else {
+              typeArgs[i] = (JClassType) type;
+            }
            }
            try {
              returnTypeRef[0] =  
typeOracle.getParameterizedType(genericType, outerClass,
@@ -1760,8 +1775,7 @@
      ClassReader reader = new ClassReader(classBytes);
      MyClassVisitor mcv = new MyClassVisitor(classBytes);
      ClassVisitor cv = mcv;
-    if ("java/util/Collections$1".equals(
-        compiledClass.getInternalName().toString())) {
+    if (false) {
        cv = new TraceClassVisitor(cv, new PrintWriter(System.out));
      }
      reader.accept(cv, 0);
@@ -1881,6 +1895,12 @@
        return true;
      }
      type.setResolved();
+    String qname = type.getQualifiedSourceName();
+    if (qname.endsWith("package-info")) {
+      // Ignore package-info classes which exist just to provide Javadoc
+      // for packages.
+      return true;
+    }

      // Build a search list for type parameters to find their definition,
      // resolving enclosing classes as we go up.
@@ -1909,7 +1929,7 @@
            Type.getObjectType(classData.getOuterClass()));
        if (outerType == null) {
          logger.log(TreeLogger.ERROR, "Unable to find class "
-            + outerType.getQualifiedSourceName());
+            + classData.getOuterClass());
          return false;
        }
        // Make sure our outer class has been resolved.
@@ -1969,7 +1989,6 @@
        }
      }

-    String qname = type.getQualifiedSourceName();
      logger = logger.branch(TreeLogger.SPAM, "Found type '" + qname + "'",  
null);

      // Resolve annotations

Modified:  
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/TypeOracleMediatorTest.java
==============================================================================
---  
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/TypeOracleMediatorTest.java
       
(original)
+++  
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/TypeOracleMediatorTest.java
       
Fri Mar 20 16:18:31 2009
@@ -1011,9 +1011,10 @@
        }

        @Override
-      void setState(State newState) {
-        super.setState(newState);
+      boolean setState(State newState) {
+        boolean returnVal = super.setState(newState);
          source = "This will cause a syntax error.";
+        return returnVal;
        }
      };
      units.add(unitThatWillGoBad);

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

Reply via email to