DfaValue (@NotNull DfaValueFactory factory, @NotNull DfaMemoryState state, @NotNull DfaValue @NotNull ... arguments) { DfaValue value = arguments[0]; if (value instanceof DfaBinOpValue) { value = tryReduceOnCast(((DfaBinOpValue)value), state, myTargetType); } DfType dfType = state.getDfType(value); if (value instanceof DfaVariableValue && dfType instanceof DfIntType) { LongRangeSet set = JvmPsiRangeSetUtil.typeRange(myTargetType); if (set != null && !LongRangeSet.all().equals(set) && ((DfIntType)dfType).meetRange(set).equals(dfType)) { return value; } } if (dfType instanceof DfPrimitiveType) { return factory.fromDfType(((DfPrimitiveType)dfType).castTo(myTargetType)); } return factory.getUnknown(); }