anchor.diff:    final Map<String, LibraryTuple> _libraries = {};
     final SourceResolver _sourceResolver;
   
  +  final List<String> allowedDartPaths;
  +
     factory _SourceCrawler(
         bool analyzeFunctionBodies,
         bool includeDefaultPackageRoot,
         List<String> packageRoots,
  -      bool preserveComments) {
  +      bool preserveComments,
  +      List<String> allowedDartPaths) {
       if (packageRoots == null) {
         packageRoots = [Platform.packageRoot];
       }
  
positive.code:       bool analyzeFunctionBodies: false,
        bool includeDefaultPackageRoot: true,
        List<String> packageRoots,
        bool preserveComments: false}) => new _SourceCrawler(analyzeFunctionBodies, includeDefaultPackageRoot, packageRoots, preserveComments);
  
    /// Resolves and crawls [path], and all files imported (recursively). Returns
    /// an [Iterable] of all the ASTs parsed.
  
negative.code:   }
  
    String _getFileLocation(String uri, [String relativeTo]) {
      if (uri == null || (uri.startsWith("dart:") && !allowedDartPaths.contains(uri))) {
        return null;
      } else if (uri.startsWith("package:") || uri.startsWith("dart:")) {
        return _sourceResolver(uri);
  