String (PsiExpression lhs, PsiExpression rhs) { if (lhs == null || rhs == null) { return ""; } final PsiType lType = lhs.getType(); PsiType rType = rhs.getType(); if (TypeConversionUtil.isNumericType(rType)) { rType = TypeConversionUtil.binaryNumericPromotion(lType, rType); } if (lType == null || rType == null || TypeConversionUtil.isAssignable(lType, rType) || !TypeConversionUtil.areTypesConvertible(lType, rType)) { return ""; } return '(' + lType.getCanonicalText() + ')'; }