T generateConditional()

in src/main/java/org/jetbrains/jetCheck/GenerativeDataStructure.java [56:69]


  <T> T generateConditional(@NotNull Generator<T> generator, @NotNull Predicate<? super T> condition) {
    for (int i = 0; i < 100; i++) {
      GenerativeDataStructure structure = subStructure(generator, childSizeHint());
      T value = dataTracker.generateOn(generator, structure, this);
      if (condition.test(value)) return value;

      if (random instanceof DataSerializer.SerializedIntSource) {
        throw DataSerializer.errorRestoringSerialized();
      }

      node.removeLastChild(structure.node);
    }
    throw new CannotSatisfyCondition(condition);
  }