anchor.diff:  
       // Write summary.
       if (options.buildSummaryOutput != null) {
  -      for (Source source in explicitSources) {
  -        if (context.computeKindOf(source) == SourceKind.LIBRARY) {
  +      if (options.buildSummaryOnlyAst && !options.buildSummaryFallback) {
  +        _serializeAstBasedSummary(explicitSources);
  +      } else {
  +        for (Source source in explicitSources) {
  +          if (context.computeKindOf(source) == SourceKind.LIBRARY) {
  +            if (options.buildSummaryFallback) {
  +              assembler.addFallbackLibrary(source);
  +            } else {
  +              LibraryElement libraryElement =
  +                  context.computeLibraryElement(source);
  +              assembler.serializeLibraryElement(libraryElement);
  +            }
  +          }
             if (options.buildSummaryFallback) {
  -            assembler.addFallbackLibrary(source);
  -          } else if (options.buildSummaryOnlyAst) {
  -            _serializeAstBasedSummary(source);
  -          } else {
  -            LibraryElement libraryElement =
  -                context.computeLibraryElement(source);
  -            assembler.serializeLibraryElement(libraryElement);
  +            assembler.addFallbackUnit(source);
             }
  -        }
  -        if (options.buildSummaryFallback) {
  -          assembler.addFallbackUnit(source);
           }
         }
         // Write the whole package bundle.
  
positive.code: 
  import 'dart:core' hide Resource;
  import 'dart:io' as io;
  
  import 'package:protobuf/protobuf.dart';
  
  import 'package:analyzer/dart/ast/ast.dart' show CompilationUnit;
  import 'package:analyzer/dart/element/element.dart';
  
negative.code:       uriToFileMap[uri] = new JavaFile(path);
      }
      return uriToFileMap;
    }
  }
  
  /**
   * Default implementation of [WorkerConnection] that works with stdio.
   */
  class StdWorkerConnection implements WorkerConnection {
    final MessageGrouper _messageGrouper;
    final io.Stdout _stdoutStream;
  
    StdWorkerConnection(io.Stdin stdinStream, this._stdoutStream)
        : _messageGrouper = new MessageGrouper(stdinStream);
  
    @override
    WorkRequest readRequest() {
      var buffer = _messageGrouper.next;
      if (buffer == null) return null;
  
      return new WorkRequest.fromBuffer(buffer);
    }
  
    @override
    void writeResponse(WorkResponse response) {
      var responseBuffer = response.writeToBuffer();
  
      var writer = new CodedBufferWriter();
      writer.writeInt32NoTag(responseBuffer.length);
      writer.writeRawBytes(responseBuffer);
  
      _stdoutStream.add(writer.toBuffer());
    }
  }
  
  