docs: @Override
      public/* final */Fact getFactOnEdge(Edge edge) throws DataflowAnalysisException {
          BasicBlock block = isForwards() ? edge.getSource() : edge.getTarget();
  
          Fact predFact = createFact();
          copy(getResultFact(block), predFact);
  
          edgeTransfer(edge, predFact);
  
          Fact result = createFact();
          makeFactTop(result);
          if (this instanceof UnconditionalValueDerefAnalysis) {
              ((UnconditionalValueDerefAnalysis)this).meetInto((UnconditionalValueDerefSet)predFact,
                      edge, (UnconditionalValueDerefSet)result, true);
          } else {
              meetInto(predFact, edge, result);
          }
  
  
          return result;
      }