anchor.diff:        bool analyzeFunctionBodies: false,
         bool includeDefaultPackageRoot: true,
         List<String> packageRoots,
  -      bool preserveComments: false}) => new _SourceCrawler(analyzeFunctionBodies, includeDefaultPackageRoot, packageRoots, preserveComments);
  +      bool preserveComments: false,
  +      List<String> allowedDartPaths}) =>
  +          new _SourceCrawler(analyzeFunctionBodies, includeDefaultPackageRoot, packageRoots, preserveComments, allowedDartPaths);
   
     /// Resolves and crawls [path], and all files imported (recursively). Returns
     /// an [Iterable] of all the ASTs parsed.
  
positive.code:     final sourceResolver = new SourceResolver.fromPackageRoots(
          packageRoots, includeDefaultPackageRoot);
  
      return new _SourceCrawler._(sourceResolver);
    }
  
    _SourceCrawler._(this._sourceResolver);
  
    /// Crawls, starting at [path], invoking [crawlFile] for each file.
    @override
  
negative.code:   final Map<String, LibraryTuple> _libraries = {};
    final SourceResolver _sourceResolver;
  
    final List<String> allowedDartPaths;
  
    factory _SourceCrawler(
        bool analyzeFunctionBodies,
        bool includeDefaultPackageRoot,
        List<String> packageRoots,
        bool preserveComments,
        List<String> allowedDartPaths) {
      if (packageRoots == null) {
        packageRoots = [Platform.packageRoot];
      }
  