docs: @Override
      public void transfer(BasicBlock basicBlock, @CheckForNull InstructionHandle end, Fact start, Fact result)
              throws DataflowAnalysisException {
          copy(start, result);
  
          if (isFactValid(result)) {
              Iterator<InstructionHandle> i = isForwards() ? basicBlock.instructionIterator() : basicBlock
                      .instructionReverseIterator();
  
              while (i.hasNext()) {
                  InstructionHandle handle = i.next();
                  if (handle == end) {
                      break;
                  }
  
                  if (DEBUG && end == null) {
                      System.out.print("Transfer " + handle);
                  }
  
                  // Transfer the dataflow value
                  transferInstruction(handle, basicBlock, result);
  
                  if (DEBUG && end == null) {
                      System.out.println(" ==> " + result.toString());
                  }
              }
          }
      }