anchor.diff:    }
   
     void _requiredIntoDependencies(Required fact) {
  +    // TODO: remove dependencies from/onto packages with the same name but
  +    // non-matching sources.
  +
       // Dependencies whose depender is exactly [fact.dep], grouped by the names
       // of packages they depend on.
       var matchingByAllowed = <String, Set<Dependency>>{};
  
positive.code:         required.dep.withConstraint(difference), [required, disallowed]);
    }
  
    void _removeDependency(Dependency dependency);
  
    void _removeDisallowed(Disallowed disallowed);
  
    /// If [dependencies]' dependers cover all of [depender], returns the union of
    /// their allowed constraints.
  
negative.code:       }
      }
  
      /// Trim [fact]'s allowed version if it's not covered by a requirement. See
      /// [_requiredAndAllowed] for details.
      required = _required[fact.allowed.name];
      if (required == null) return fact;
  
      var result = _requiredAndAllowed(required, fact);
      if (result is! Disallowed) return result as Dependency;
  
      _toProcess.add(result);
      return null;
    }
  
    // Resolves [required] and [disallowed], which should refer to the same
  