OptionalUtil#getMapTypeArgument: check nulls; remove 0-arg check

This commit is contained in:
Tagir Valeev
2016-11-11 12:02:36 +07:00
parent 7e574d661c
commit 9fe8c96b78
8 changed files with 98 additions and 6 deletions
@@ -141,11 +141,14 @@ public class OptionalUtil {
@NotNull
public static String getMapTypeArgument(PsiExpression expression, PsiType type) {
if (!(type instanceof PsiClassType)) return "";
if (((PsiClassType)type).getParameterCount() == 0) {
PsiExpression copy =
JavaPsiFacade.getElementFactory(expression.getProject()).createExpressionFromText(expression.getText(), expression);
PsiType exprType = copy.getType();
if (exprType != null && !LambdaUtil.notInferredType(exprType) && TypeConversionUtil.isAssignable(type, exprType)) return "";
PsiExpression copy =
JavaPsiFacade.getElementFactory(expression.getProject()).createExpressionFromText(expression.getText(), expression);
PsiType exprType = copy.getType();
if (exprType != null &&
!exprType.equals(PsiType.NULL) &&
!LambdaUtil.notInferredType(exprType) &&
TypeConversionUtil.isAssignable(type, exprType)) {
return "";
}
return "<" + type.getCanonicalText() + ">";
}