IntList getSuccessors() {
      IntList successors = new IntList(callerBlocks.size());

      /*
       * For each subroutine caller, get it's target. If the
       * target is us, add the ret target (subroutine successor)
       * to our list
       */

      for (int label = callerBlocks.nextSetBit(0);
          label >= 0;
          label = callerBlocks.nextSetBit(label + 1)) {
        BasicBlock subCaller = labelToBlock(label);
        successors.add(subCaller.getSuccessors().get(0));
      }

      successors.setImmutable();

      return successors;
    }
Generates a list of subroutine successors. Note: successor blocks could be listed more than
once. This is ok, because this successor list (and the block it's associated with) will be
copied and inlined before we leave the ropper. Redundent successors will result in redundent
(no-op) merges.

@return all currently known successors (return destinations) for that subroutine
android/android_framework/dex-maker/src/main/java/com/android/dx/cf/code/Ropper.java