anchor.diff:  class SourceFile {
     String canonicalPath;
     String entryPointImport;
  -  CompilationUnit compilationUnit;
  +  CompilationUnitElement compilationUnit;
   
     SourceFile(this.canonicalPath, this.entryPointImport, this.compilationUnit);
   
  
positive.code: 
    print('pathToSdk: $pathToSdk');
    print('entryPoint: $entryPoint');
    print('classAnnotations: $classAnnotations');
    print('output: $output');
    print('packageRoots: $packageRoots');
  
  
negative.code:   List<String> imports = <String>[];
    List<ClassElement> typeFactoryTypes = <ClassElement>[];
    Map<String, String> typeToImport = new Map<String, String>();
    c.crawl(entryPoint, (CompilationUnitElement compilationUnit, SourceFile source) {
        new CompilationUnitVisitor(c.context, source, classAnnotations, imports,
            typeToImport, typeFactoryTypes).visit(compilationUnit);
    });
    var code = printLibraryCode(typeToImport, imports, typeFactoryTypes);
    new File(output).writeAsStringSync(code);
  