anchor.diff:      // packages they depend on.
       var matchingByAllowed = <String, Set<Dependency>>{};
   
  +    // Fill [matchingByAllowed] and trim any irrelevant dependencies while we're
  +    // at it.
       var ref = fact.dep.toRef();
       for (var dependency in _dependenciesByDepender[ref].toList()) {
         var intersection = fact.dep.constraint
             .intersect(dependency.depender.constraint);
   
         if (intersection.isEmpty) {
  -        // If no versions in [fact] have this dependencies, then it's irrelevant.
  +        // If no versions in [fact] have this dependency, then it's irrelevant.
           _removeDependency(dependency);
         } else if (intersection != dependency.depender.constraint) {
           // If only some versions [dependency.depender] are in [fact], we can
           // trim the ones that aren't.
  +        _removeDependency(dependency);
           var newDependency = new Dependency(
               dependency.depender.withConstraint(intersection),
               dependency.allowed,
  
positive.code:           dependency.depender, allowed, [dependency].addAll(relevant)));
      }
  
      return fact;
    }
  
    // Resolves [required] and [disallowed], which should refer to the same
  
negative.code:         if (!_disallowedIntoRequired(fact)) continue;
          _disallowedIntoDependencies(fact);
          _disallowedIntoIncompatibilities(fact);
        } else if (fact is Dependency) {
          fact = _dependencyIntoDependency(fact);
          if (fact == null) continue;
  
          if (!_dependencyIntoReqired(fact)) continue;
        }
      }
    }
  