anchor.diff:  
     static const identicalFilesError =
         'Failed to load diff: OLD and NEW files are identical.';
  +
  +  static const artificialRootNodeName = 'ArtificialRoot';
  +
  +  static const mainNodeName = 'Main';
   
     CallGraph? _analysisCallGraph;
   
  
positive.code:   /// * [DiffTreeType.combined]: returns a tree with all nodes.
    TreemapNode? generateDiffTree(
      Map<String, dynamic> treeJson,
      DiffTreeType diffTreeType,
    ) {
      final isLeafNode = treeJson['children'] == null;
      if (!isLeafNode) {
        return _buildNodeWithChildren(
          treeJson,
          showDiff: true,
          diffTreeType: diffTreeType,
        );
      } else {
        // TODO(peterdjlee): Investigate why there are leaf nodes with size of null.
  
negative.code: 
      Map<String, dynamic> diffMap;
      if (oldFile.isAnalyzeSizeFile && newFile.isAnalyzeSizeFile) {
        var oldFileJson = oldFile.data as Map<String, dynamic>;
        var newFileJson = newFile.data as Map<String, dynamic>;
  
        if (_hasDeferredInfo(oldFileJson) || _hasDeferredInfo(newFileJson)) {
          _isDeferredApp.value = deferredLoadingSupportEnabled;
  
          if (!_hasDeferredInfo(oldFileJson)) {
            oldFileJson = _wrapInArtificialRoot(oldFileJson);
          } else if (!_hasDeferredInfo(newFileJson)) {
            newFileJson = _wrapInArtificialRoot(newFileJson);
          }
        }
  
        final oldApkProgramInfo = ProgramInfo();
        _apkJsonToProgramInfo(
          program: oldApkProgramInfo,
          parent: oldApkProgramInfo.root,
  