code: public Attribute merge(List<AgBuffer> copyBuffers, int symbol, Type mergedType) {
          Map<Attribute, Merger> mapping;    // map old attribute to merger objects. null: don't merge.
          List<Merger> mergers;
          Merger merger;
          int i;
          int max;
  
          mapping = new HashMap<Attribute, Merger>();
          mergers = new ArrayList<Merger>();
          max = copyBuffers.size();
          for (i = 0; i < max; i++) {
              copyBuffers.get(i).createMergers(mergers, mapping, mergedType);
          }
          runMergers(mergers, mapping);
          merger = Merger.forSymbol(mergers, symbol);
          if (merger == null) {
              throw new IllegalStateException();
          }
          return merger.dest;
      }
docs: Merge all attributes with &gt;0 attributions buffers. Return the merged attribute of the
  specified symbol.