anchor.diff:      });
     }
   }
  +
  +/// [SdkExtUriResolver] needs a Map from package name to folder. In the case
  +/// that the analyzer is invoked with a --package-root option, we need to
  +/// manually create this mapping. Given [packageRootPath],
  +/// [_PackageRootPackageMapBuilder] creates a simple mapping from package name
  +/// to full path on disk (resolving any symbolic links).
  +class _PackageRootPackageMapBuilder {
  +  static Map<String, List<fileSystem.Folder>> buildPackageMap(
  +      String packageRootPath) {
  +    var packageRoot = new Directory(packageRootPath);
  +    var packages = packageRoot.listSync(followLinks: false);
  +    var result = new Map<String, List<fileSystem.Folder>>();
  +    for (var package in packages) {
  +      var packageName = path.basename(package.path);
  +      var realPath = package.resolveSymbolicLinksSync();
  +      result[packageName] =
  +          [PhysicalResourceProvider.INSTANCE.getFolder(realPath)];
  +    }
  +    return result;
  +  }
  +}
  
positive.code: import 'package:analyzer_cli/src/options.dart';
  import 'package:dev_compiler/strong_mode.dart';
  import 'package:linter/src/plugin/linter_plugin.dart';
  import 'package:package_config/packages_file.dart' as pkgfile show parse;
  import 'package:path/path.dart' as path;
  import 'package:plugin/manager.dart';
  import 'package:plugin/plugin.dart';
  
negative.code:   /// Convert [sourcePath] into an absolute path.
    static String _normalizeSourcePath(String sourcePath) {
      return path.normalize(new File(sourcePath).absolute.path);
    }
  }
  
  