anchor.diff:      List<ChangeNotice> notices = new List.from(_pendingNotices.values);
       _pendingNotices.clear();
       return notices;
  +  }
  +
  +  /**
  +   * Return a [CompilationUnit] for the given library and unit sources, which
  +   * can be incrementally resolved.
  +   */
  +  CompilationUnit _getIncrementallyResolvableUnit(
  +      Source librarySource, Source unitSource) {
  +    LibrarySpecificUnit target =
  +        new LibrarySpecificUnit(librarySource, unitSource);
  +    for (ResultDescriptor result in [
  +      RESOLVED_UNIT,
  +      RESOLVED_UNIT11,
  +      RESOLVED_UNIT10,
  +      RESOLVED_UNIT9,
  +      RESOLVED_UNIT8,
  +      RESOLVED_UNIT7,
  +      RESOLVED_UNIT6
  +    ]) {
  +      CompilationUnit unit = getResult(target, result);
  +      if (unit != null) {
  +        return unit;
  +      }
  +    }
  +    return null;
     }
   
     /**
  
positive.code:         return false;
        }
        Source librarySource = librarySources[0];
        CacheEntry unitEntry =
            _cache.get(new LibrarySpecificUnit(librarySource, unitSource));
        if (unitEntry == null) {
          return false;
        }
        // prepare the library element
        LibraryElement libraryElement = getLibraryElement(librarySource);
        if (libraryElement == null) {
          return false;
        }
        // prepare the existing unit
        CompilationUnit oldUnit =
            getResolvedCompilationUnit2(unitSource, librarySource);
        if (oldUnit == null) {
          return false;
        }
  
negative.code:       incrementalResolutionValidation_lastUnitSource = null;
        incrementalResolutionValidation_lastLibrarySource = null;
        incrementalResolutionValidation_lastUnit = null;
        // prepare the source entry
        CacheEntry sourceEntry = _cache.get(unitSource);
        if (sourceEntry == null) {
          return false;
  