anchor.diff:      if (packageMeta.isSdk) {
         libraries.addAll(getSdkLibrariesToDocument(sdk, context));
       }
  +
  +    List<Source> sources = [];
  +
       files.forEach((String filePath) {
         String name = filePath;
         if (name.startsWith(Directory.current.path)) {
  
positive.code: 
    DartDocResults(this.packageMeta, this.package, this.outDir);
  }
  
negative.code:       }
        print('parsing ${name}...');
        Source source = new FileBasedSource.con1(new JavaFile(filePath));
        sources.add(source);
        if (context.computeKindOf(source) == SourceKind.LIBRARY) {
          LibraryElement library = context.computeLibraryElement(source);
          libraries.add(library);
        }
      });
  
      // Ensure that the analysis engine performs all remaining work.
      AnalysisResult result = context.performAnalysisTask();
      while (result.hasMoreWork) {
        result = context.performAnalysisTask();
      }
  
      List<AnalysisErrorInfo> errorInfos = [];
  
      for (Source source in sources) {
        context.computeErrors(source);
        errorInfos.add(context.getErrors(source));
      }
  
      List<_Error> errors = errorInfos
          .expand((AnalysisErrorInfo info) {
            return info.errors.map((error)
                => new _Error(error, info.lineInfo, packageMeta.dir.path));
          })
          .where((_Error error) => error.severity == ErrorSeverity.ERROR)
          .toList();
      errors.sort();
  
      double seconds = _stopwatch.elapsedMilliseconds / 1000.0;
      print(
          "Parsed ${libraries.length} " "file${libraries.length == 1 ? '' : 's'} in "
          "${seconds.toStringAsFixed(1)} seconds.\n");
  
      if (errors.isNotEmpty) {
        print("Encountered ${errors.length} analysis error${errors.length == 1 ? '' : 's'}:");
        errors.forEach(print);
        // TODO: Should we `exit()` directly, or pass an error condition back?
        exit(1);
      }
  
      return libraries.toList();
    }
  }
  