DfaValue (DfaValueFactory factory, PsiExpression @NotNull [] expressions, PsiType targetType) { DfaValue loopElement = null; for (PsiExpression expression : expressions) { DfaValue expressionValue = getExpressionDfaValue(factory, expression); if (expressionValue == null) { expressionValue = factory.fromDfType(DfTypes.typedObject(expression.getType(), NullabilityUtil.getExpressionNullability(expression))); } loopElement = loopElement == null ? expressionValue : loopElement.unite(expressionValue); if (DfaTypeValue.isUnknown(loopElement)) break; } return loopElement == null ? factory.getUnknown() : DfaUtil.boxUnbox(loopElement, targetType); }