private static void collectionAdd(DfaValueFactory factory, DfaMemoryState state, DfaCallArguments arguments, boolean list) {
    DfaVariableValue size = tryCast(COLLECTION_SIZE.createValue(factory, arguments.myQualifier), DfaVariableValue.class);
    if (size != null) {
      DfIntType sizeType = tryCast(state.getDfType(size), DfIntType.class);
      DfType resultSize = COLLECTION_SIZE.getDefaultValue();
      if (sizeType != null) {
        resultSize = sizeType.eval(DfTypes.intValue(1), LongRangeBinOp.PLUS).meet(DfTypes.intRange(JvmPsiRangeSetUtil.indexRange()));
        if (!list) {
          resultSize = resultSize.join(sizeType.meet(DfTypes.intRange(LongRangeSet.range(1, Integer.MAX_VALUE))));
        }
        if (resultSize == DfType.BOTTOM) {
          // Possible int overflow
          resultSize = COLLECTION_SIZE.getDefaultValue();
        }
      }
      updateState(state, size, resultSize);
    }
  }
private static void collectionAdd(DfaValueFactory factory, DfaMemoryState state, DfaCallArguments arguments, boolean list)