DfType (DfaCallArguments arguments, DfaMemoryState state, DfaValueFactory factory, PsiMethod method) { DfaValue[] values = arguments.myArguments; if (values == null) return DfType.TOP; LongRangeSet fromLowerBound; LongRangeSet fromUpperBound; if (values.length == 1) { fromLowerBound = LongRangeSet.range(0, Integer.MAX_VALUE - 1); fromUpperBound = DfIntType.extractRange(state.getDfType(values[0])).fromRelation(RelationType.LT); } else if (values.length == 2){ fromLowerBound = DfIntType.extractRange(state.getDfType(values[0])).fromRelation(RelationType.GE); fromUpperBound = DfIntType.extractRange(state.getDfType(values[1])).fromRelation(RelationType.LT); } else return DfType.TOP; LongRangeSet intersection = fromLowerBound.meet(fromUpperBound); return intRangeClamped(intersection); }