anchor.diff:      }
   
       return null;
  +  }
  +
  +  Map<String, List<fileSystem.Folder>> _getPackageMap(Packages packages) {
  +    if (packages == null) {
  +      return null;
  +    }
  +
  +    Map<String, List<fileSystem.Folder>> folderMap =
  +        new Map<String, List<fileSystem.Folder>>();
  +    packages.asMap().forEach((String path, Uri uri) {
  +      folderMap[path] = [PhysicalResourceProvider.INSTANCE.getFolder(uri.path)];
  +    });
  +    return folderMap;
     }
   
     void _processAnalysisOptions(CommandLineOptions options) {
  
positive.code:         List<int> bytes = configFile.readAsBytesSync();
          Map<String, Uri> map = pkgfile.parse(bytes, configFile.uri);
          packages = new MapPackages(map);
        } catch (e) {
          printAndFail(
              'Unable to read package config data from $packageConfigPath: $e');
        }
      } else if (options.packageRootPath != null) {
        Map<String, List<fileSystem.Folder>> packageMap =
            _PackageRootPackageMapBuilder
                .buildPackageMap(options.packageRootPath);
        if (packageMap != null) {
          resolvers.add(new SdkExtUriResolver(packageMap));
        }
        JavaFile packageDirectory = new JavaFile(options.packageRootPath);
        resolvers.add(new PackageUriResolver([packageDirectory]));
      } else {
        fileSystem.Resource cwd =
            PhysicalResourceProvider.INSTANCE.getResource('.');
  
negative.code:   /// [SourceFactory] that has been configured accordingly.
    SourceFactory _chooseUriResolutionPolicy(
        CommandLineOptions options, Map<String, String> customUrlMappings) {
      Packages packages;
      Map<String, List<fileSystem.Folder>> packageMap;
      UriResolver packageUriResolver;
  
      // Process options, caching package resolution details.
      if (options.packageConfigPath != null) {
        String packageConfigPath = options.packageConfigPath;
        Uri fileUri = new Uri.file(packageConfigPath);
  