LongRangeSet (PsiMethodCallExpression call) { boolean exact = true; while(true) { call = MethodCallUtils.getQualifierMethodCall(call); if (FILTER.matches(call) || STATE_FILTER.matches(call)) { exact = false; } else if (ARRAYS_STREAM.matches(call) || COLLECTION_STREAM.matches(call)) { return LongRangeSet.range(0, Integer.MAX_VALUE); } else if (STREAM_OF.matches(call)) { return exact ? LongRangeSet.point(1) : LongRangeSet.range(0, 1); } else if (OPTIONAL_STREAM.matches(call)) { return LongRangeSet.range(0, 1); } else { if (STREAM_OF_ARRAY.matches(call)) { if (MethodCallUtils.isVarArgCall(call)) { return exact ? LongRangeSet.point(call.getArgumentList().getExpressionCount()) : LongRangeSet.range(0, call.getArgumentList().getExpressionCount()); } else { return JvmPsiRangeSetUtil.indexRange(); } } else if (!BOXED.matches(call) && !MAP.matches(call) && !PEEK.matches(call) && !SORTED.matches(call) && !SKIP_STEP.matches(call) && !AS_STREAM.matches(call)) { return LongRangeSet.range(0, Long.MAX_VALUE); } } } }