anchor.diff:  
         // Next resort to a package uri resolver.
         if (disposition == null) {
  -        disposition = _computeFolderDisposition(folder, info);
  -      }
  -
  +        disposition = _computeFolderDisposition(folder, info, dependencies.add);
  +      }
  +
  +      info.setDependencies(dependencies);
         info.context = callbacks.addContext(folder, disposition);
         info.context.name = folder.path;
       } catch (_) {
  
positive.code:     });
      try {
        FolderDisposition disposition;
  
        if (ENABLE_PACKAGESPEC_SUPPORT) {
          // Try .packages first.
  
negative.code:   }
  
    /**
     * Compute the appropriate [FolderDisposition] for [info].  Use
     * [addDependency] to indicate which files needed to be consulted in order to
     * figure out the [FolderDisposition]; these dependencies will be watched in
     * order to determine when it is necessary to call this function again.
     *
     * TODO(paulberry): use [addDependency] for tracking all folder disposition
     * dependencies (currently we only use it to track "pub list" dependencies).
     */
    FolderDisposition _computeFolderDisposition(
        Folder folder, ContextInfo info, void addDependency(String path)) {
      if (info.packageRoot != null) {
        // TODO(paulberry): We shouldn't be using JavaFile here because it
        // makes the code untestable (see dartbug.com/23909).
        JavaFile packagesDir = new JavaFile(info.packageRoot);
  