private ShrinkStep findSuccessfulShrink()

in src/main/java/org/jetbrains/jetCheck/PropertyFailureImpl.java [105:124]


  private ShrinkStep findSuccessfulShrink(ShrinkStep step, @Nullable ShrinkStep limit) {
    List<CustomizedNode> combinatorial = new ArrayList<>();

    while (step != null && !step.equals(limit)) {
      StructureNode node = step.apply(shrunk.data);
      if (node != null && iteration.session.addGeneratedNode(node)) {
        CombinatorialIntCustomizer customizer = new CombinatorialIntCustomizer();
        if (tryStep(node, customizer)) {
          return step;
        }
        CombinatorialIntCustomizer next = customizer.nextAttempt();
        if (next != null) {
          combinatorial.add(new CustomizedNode(next, step));
        }
      }

      step = step.onFailure();
    }
    return processDelayedCombinations(combinatorial);
  }