docs: public void accumulateBug(BugInstance bug, SourceLineAnnotation sourceLine) {
          if (sourceLine == null) {
              throw new NullPointerException("Missing source line");
          }
          int priority = bug.getPriority();
          if (!performAccumulation) {
              bug.addSourceLine(sourceLine);
          } else {
              bug.setPriority(Priorities.NORMAL_PRIORITY);
          }
  
          lastBug = bug;
          lastSourceLine = sourceLine;
          Data d = map.get(bug);
          if (d == null) {
              String hash = bug.getInstanceHash();
              BugInstance conflictingBug = hashes.get(hash);
              if (conflictingBug != null) {
                  if (conflictingBug.getPriority() <= priority) {
                      return;
                  }
                  map.remove(conflictingBug);
              }
              d = new Data(priority, sourceLine);
              map.put(bug, d);
              hashes.put(hash, bug);
          } else if (d.priority > priority) {
              if (d.priority >= Priorities.LOW_PRIORITY) {
                  reportBug(bug, d);
                  d.allSource.clear();
              }
              d.priority = priority;
              d.primarySource = sourceLine;
          } else if (priority >= Priorities.LOW_PRIORITY && priority > d.priority) {
              bug.setPriority(priority);
              reporter.reportBug(bug);
              return;
          }
          d.allSource.add(sourceLine);
      }