anchor.diff:        info.coverageId = '${field.hashCode}';
       }
   
  -    int closureSize = _addClosureInfo(info, fieldEntity);
  -    info.size = size + closureSize;
  -
       result.fields.add(info);
       return info;
     }
   
  -  ClassTypeInfo visitClassType(ClassEntity clazz) {
  -    // Omit class type if it is not needed.
  -    ClassTypeInfo classTypeInfo = ClassTypeInfo(
  -        name: clazz.name, outputUnit: _unitInfoForClassType(clazz));
  -
  -    // TODO(joshualitt): Get accurate size information for class types.
  -    classTypeInfo.size = 0;
  -
  -    bool isNeeded =
  -        compiler.backendStrategy.emitterTask.neededClassTypes.contains(clazz);
  -    if (!isNeeded) {
  -      return null;
  -    }
  -
  +  ClassTypeInfo visitClassType(ir.Class clazz) {
  +    ClassTypeInfo classTypeInfo = ClassTypeInfo(name: clazz.name);
       result.classTypes.add(classTypeInfo);
       return classTypeInfo;
     }
  
positive.code:       libname = '<unnamed>';
      }
  
      int size = dumpInfoTask.sizeOf(libEntity);
      LibraryInfo info = LibraryInfo(libname, lib.importUri, null, size);
      _entityToInfo[libEntity] = info;
  
      lib.members.forEach((ir.Member member) {
        final memberEntity =
            environment.lookupLibraryMember(libEntity, member.name.text);
        if (memberEntity == null) return;
  
        if (member.function != null) {
          FunctionInfo functionInfo = visitFunction(memberEntity);
          if (functionInfo != null) {
            info.topLevelFunctions.add(functionInfo);
            functionInfo.parent = info;
  
negative.code:       this.closedWorld, this._globalInferenceResults);
  
    void run() {
      // TODO(markzipan): Add CFE constants to `result.constants`.
      component.libraries.forEach(visitLibrary);
    }
  
    LibraryInfo visitLibrary(ir.Library lib) {
  