private static @NotNull DfType randomNextInt(DfaCallArguments arguments, DfaMemoryState state, DfaValueFactory factory, PsiMethod method) {
    DfaValue[] values = arguments.myArguments;
    if (values == null) return DfType.TOP;
    LongRangeSet fromLowerBound;
    LongRangeSet fromUpperBound;
    if (values.length == 1) {
      fromLowerBound = LongRangeSet.range(0, Integer.MAX_VALUE - 1);
      fromUpperBound = DfIntType.extractRange(state.getDfType(values[0])).fromRelation(RelationType.LT);
    } else if (values.length == 2){
      fromLowerBound = DfIntType.extractRange(state.getDfType(values[0])).fromRelation(RelationType.GE);
      fromUpperBound = DfIntType.extractRange(state.getDfType(values[1])).fromRelation(RelationType.LT);
    } else return DfType.TOP;
    LongRangeSet intersection = fromLowerBound.meet(fromUpperBound);
    return intRangeClamped(intersection);
  }
private static @NotNull DfType randomNextInt(DfaCallArguments arguments, DfaMemoryState state, DfaValueFactory factory, PsiMethod method)