anchor.diff:    String packageRoot;
   
     /**
  -   * The [ContextInfo] that encloses this one.
  +   * The [ContextInfo] that encloses this one, or `null` if this is the virtual
  +   * [ContextInfo] object that acts as the ancestor of all other [ContextInfo]
  +   * objects.
      */
     ContextInfo parent;
   
  
positive.code:         return folder.isOrContains(includedFolder.path);
        });
        if (!wasIncluded) {
          _createContexts(includedFolder, false);
        }
      }
      // remove newly excluded sources
  
negative.code:    * If [withPackageSpecOnly] is `true`, a context will be created only if there
     * is a 'pubspec.yaml' or '.packages' file in the [folder].
     *
     * [parent] should be the parent of any contexts that are created.
     */
    void _createContexts(
        ContextInfo parent, Folder folder, bool withPackageSpecOnly) {
      // Decide whether a context needs to be created for [folder] here, and if
      // so, create it.
      File packageSpec;
  
      if (ENABLE_PACKAGESPEC_SUPPORT) {
        // Start by looking for .packages.
        packageSpec = folder.getChild(PACKAGE_SPEC_NAME);
      }
  
      // Fall back to looking for a pubspec.
      if (packageSpec == null || !packageSpec.exists) {
        packageSpec = folder.getChild(PUBSPEC_NAME);
      }
  
      bool parentCreated = false;
      if (packageSpec.exists || !withPackageSpecOnly) {
        parentCreated = true;
        parent = _createContext(parent, folder, packageSpec);
      }
  
      // Try to find subfolders with pubspecs or .packages files.
      try {
        for (Resource child in folder.getChildren()) {
          if (child is Folder) {
            _createContexts(parent, child, true);
          }
        }
      } on FileSystemException {
  