anchor.diff:  
     bool record(StaticInfo info) {
       if (info != null) {
  -      if (info.level >= logger.Level.SEVERE)
  -        failure = true;
  -      if (!infoMap.containsKey(info.node))
  +      if (info.level >= logger.Level.SEVERE) failure = true;
  +      if (!infoMap.containsKey(info.node)) {
           infoMap[info.node] = new List<StaticInfo>();
  +      }
         infoMap[info.node].add(info);
         log.log(info.level, info.message, info.node);
         return true;
  
positive.code:       InterfaceType type = _rules.elementType(parent.element);
        for (VariableDeclaration decl in node.fields.variables) {
          final getter = type.getGetter(decl.name.name);
          if (getter != null)
            checkInvalidOverride(node, getter, type);
          final setter = type.getSetter(decl.name.name);
          if (setter != null)
            checkInvalidOverride(node, setter, type);
        }
      }
      return node;
  
negative.code:         // TODO(vsm): When can this happen?
          assert(element != null);
        }
        DartType expectedType = _rules
            .mapGenericType(_rules.elementType(element));
        if (expectedType == null) expectedType = _rules.provider.dynamicType;
        checkAssignment(arg, expectedType);
      }
      return true;
    }
  
    void checkFunctionApplication(
        Expression node, Expression f, ArgumentList list) {
      DartType type = _rules.getStaticType(f);
      if (type.isDynamic || type.isDartCoreFunction) {
        record(new DynamicInvoke(_rules, node));
  