anchor.diff:     * If a new linked bundle was linked for the given [node], write the bundle
      * into the memory cache and the file system.
      */
  -  void _writeLinked(_LinkedNode node, bool strong) {
  +  void _writeLinked(_LinkNode node, bool strong) {
       String hash = node.linkedHash;
       if (hash != null && node.linkedNewBytes != null) {
         String fileName = _getLinkedName(hash, strong);
  
positive.code:     }
  
      // Create graph nodes for packages.
      List<_LinkedNode> nodes = <_LinkedNode>[];
      Map<String, _LinkedNode> packageToNode = <String, _LinkedNode>{};
      unlinkedBundles.forEach((package, unlinked) {
        _LinkedNode node = new _LinkedNode(sdkBundle, getDeclaredVariable,
            listedPackages, package, unlinked, packageToNode);
        nodes.add(node);
        packageToNode[package.name] = node;
      });
  
      // Compute transitive dependencies, mark some nodes as failed.
      for (_LinkedNode node in nodes) {
        node.computeTransitiveDependencies();
      }
  
      // Attempt to read existing linked bundles.
      for (_LinkedNode node in nodes) {
        _readLinked(node, strong);
      }
  
  
negative.code:    */
    void computeTransitiveDependencies() {
      if (transitiveDependencies == null) {
        transitiveDependencies = new Set<_LinkNode>();
  
        void appendDependencies(_LinkNode node) {
          if (transitiveDependencies.add(node)) {
            node.dependencies.forEach(appendDependencies);
          }
  