anchor.diff:      int mismatch = 0;
       int error = 0;
       int failure = 0;
  +    Type staticType = null;
  +    var runtimeTypes = new Set<Type>();
       for (var record in records) {
  +      if (staticType == null) {
  +        staticType = record.staticType;
  +      } else {
  +        // Are these canonicalized?
  +        // assert(staticType == record.staticType);
  +      }
  +      runtimeTypes.add(record.runtimeType);
         if (record.ddcSuccess) {
           if (record.dartSuccess) {
             success++;
  
positive.code:           failure++;
          }
        }
      }
      final total = success + mismatch + error + failure;
      assert(total != 0);
  
negative.code:     ddcSuccess = false;
    }
    if (obj == null) {
      dartSuccess = true;
    } else {
      // TODO(vsm): We could avoid mirror code by requiring the caller to pass
      // in obj is TypeLiteral as a parameter.  We can't do that once we have a
  