anchor.diff:  
       Map<String, List<String>> holding = <String, List<String>>{};
       for (Element fn in infoCollector.mapper.functions) {
  -      Iterable<Element> pulling = getRetaining(fn);
  +      Iterable<Selection> pulling = getRetaining(fn);
         // Don't bother recording an empty list of dependencies.
         if (pulling.length > 0) {
           String fnId = infoCollector.idOf(fn);
  
positive.code:   }
  }
  
  
  class DumpInfoTask extends CompilerTask {
    DumpInfoTask(Compiler compiler)
  
negative.code:   }
  
    /**
     * Returns an iterable of [Selection]s that are used by
     * [element].  Each [Selection] contains an element that is
     * used and the selector that selected the element.
     */
    Iterable<Selection> getRetaining(Element element) {
      if (!selectorsFromElement.containsKey(element)) {
        return const <Selection>[];
      } else {
        return selectorsFromElement[element].expand(
          (selector) {
            return compiler.world.allFunctions.filter(selector).map((element) {
              return new Selection(element, selector);
            });
          });
      }
    }
  
  