ExpressionUtils#isEvaluatedAtCompileTime: fixed for casts to String (operand was not checked)

This commit is contained in:
Tagir Valeev
2018-01-24 14:36:20 +07:00
parent d828baf6e3
commit e2d5de3528
2 changed files with 10 additions and 1 deletions
@@ -0,0 +1,8 @@
// "Use 'fill' method without lambda" "false"
import java.util.Arrays;
class Test {
public void test(String[] arr, Object[] arr2) {
Arrays.setAll(String, x <caret>-> (String)(arr2[x]));
}
}
@@ -185,7 +185,8 @@ public class ExpressionUtils {
return false;
}
final PsiType type = castType.getType();
return TypeUtils.typeEquals(CommonClassNames.JAVA_LANG_STRING, type);
return TypeUtils.typeEquals(CommonClassNames.JAVA_LANG_STRING, type) &&
isEvaluatedAtCompileTime(typeCastExpression.getOperand());
}
return false;
}