mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
PossibleHeapPollutionVarargs: do not warn on compact constructor; do not warn on record if canonical constructor is present
Review ID: IDEA-CR-56682 GitOrigin-RevId: cdd1ee44e8679a374ff495d852a22c9e612149b8
This commit is contained in:
committed by
intellij-monorepo-bot
parent
586bd6da28
commit
755c4647e2
@@ -13,6 +13,7 @@ import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.searches.OverridingMethodsSearch;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.psi.util.JavaPsiRecordUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import org.intellij.lang.annotations.Pattern;
|
||||
@@ -119,6 +120,7 @@ public class PossibleHeapPollutionVarargsInspection extends AbstractBaseJavaLoca
|
||||
if (!PsiUtil.getLanguageLevel(method).isAtLeast(LanguageLevel.JDK_1_7)) return;
|
||||
if (AnnotationUtil.isAnnotated(method, CommonClassNames.JAVA_LANG_SAFE_VARARGS, 0)) return;
|
||||
if (!method.isVarArgs()) return;
|
||||
if (JavaPsiRecordUtil.isCompactConstructor(method)) return;
|
||||
|
||||
final PsiParameter[] parameters = method.getParameterList().getParameters();
|
||||
final PsiParameter psiParameter = parameters[parameters.length - 1];
|
||||
@@ -136,6 +138,8 @@ public class PossibleHeapPollutionVarargsInspection extends AbstractBaseJavaLoca
|
||||
if (header == null) return;
|
||||
PsiRecordComponent lastComponent = ArrayUtil.getLastElement(header.getRecordComponents());
|
||||
if (lastComponent == null || !lastComponent.isVarArgs()) return;
|
||||
PsiMethod constructor = JavaPsiRecordUtil.findCanonicalConstructor(aClass);
|
||||
if (constructor != null && JavaPsiRecordUtil.isExplicitCanonicalConstructor(constructor)) return;
|
||||
final PsiType type = lastComponent.getType();
|
||||
LOG.assertTrue(type instanceof PsiEllipsisType, "type: " + type.getCanonicalText() + "; param: " + lastComponent);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user