From 673f3954bfa2f291888fb6e7a9b189a61697158e Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Mon, 13 Mar 2017 15:13:07 +0100 Subject: [PATCH] EA-98873 - CCE: JavaGenericsUtil.isUncheckedWarning --- .../daemon/impl/analysis/JavaGenericsUtil.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/java/java-psi-api/src/com/intellij/codeInsight/daemon/impl/analysis/JavaGenericsUtil.java b/java/java-psi-api/src/com/intellij/codeInsight/daemon/impl/analysis/JavaGenericsUtil.java index 86ca9fb3d218..ef8845ae0a57 100644 --- a/java/java-psi-api/src/com/intellij/codeInsight/daemon/impl/analysis/JavaGenericsUtil.java +++ b/java/java-psi-api/src/com/intellij/codeInsight/daemon/impl/analysis/JavaGenericsUtil.java @@ -100,14 +100,21 @@ public class JavaGenericsUtil { } PsiMethod psiMethod = (PsiMethod)resolve; - if (!psiMethod.isVarArgs()) { + PsiParameter[] parameters = psiMethod.getParameterList().getParameters(); + + int parametersCount = parameters.length; + if (parametersCount == 0) { return false; } + PsiParameter varargParameter = parameters[parametersCount - 1]; + if (!varargParameter.isVarArgs()) { + return false; + } + if (AnnotationUtil.isAnnotated(psiMethod, "java.lang.SafeVarargs", false, false)) { return false; } - int parametersCount = psiMethod.getParameterList().getParametersCount(); - PsiParameter varargParameter = psiMethod.getParameterList().getParameters()[parametersCount - 1]; + PsiType componentType = ((PsiEllipsisType)varargParameter.getType()).getComponentType(); if (isReifiableType(resolveResult.getSubstitutor().substitute(componentType))) { return false;