private void removeConstraintFromNonNullParameter(@NotNull EKey methodKey,
                                                    List<StandardMethodContract> allContracts) throws EquationsLimitException {
    BitSet possiblyNotNullParameters = StreamEx.of(allContracts)
                                               .flatMapToInt(
                                                 smc -> IntStreamEx.range(smc.getParameterCount())
                                                                   .filter(idx -> smc.getParameterConstraint(idx) == ValueConstraint.NOT_NULL_VALUE))
                                               .toBitSet();
    BitSet alwaysNotNullParameters = findAlwaysNotNullParameters(methodKey, possiblyNotNullParameters);
    if (alwaysNotNullParameters.cardinality() != 0) {
      allContracts.replaceAll(smc -> {
        ValueConstraint[] constraints = smc.getConstraints().toArray(new ValueConstraint[0]);
        for (int i = 0; i < constraints.length; i++) {
          if (alwaysNotNullParameters.get(i)) {
            if (constraints[i] == ValueConstraint.NULL_VALUE) {
              return null;
            }
            constraints[i] = ValueConstraint.ANY_VALUE;
          }
        }
        return new StandardMethodContract(constraints, smc.getReturnValue());
      });
      allContracts.removeIf(Objects::isNull);
    }
  }
private void removeConstraintFromNonNullParameter(@NotNull EKey methodKey,
                                                    List<StandardMethodContract> allContracts)