mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-89831 (inspection "Empty class" vs classes like com.google.inject.TypeLiteral)
This commit is contained in:
@@ -150,12 +150,8 @@ public class EmptyClassInspection extends BaseInspection {
|
||||
if (initializers.length > 0) {
|
||||
return;
|
||||
}
|
||||
if (ignoreClassWithParameterization) {
|
||||
final PsiReferenceList extendsList = aClass.getExtendsList();
|
||||
final PsiReferenceList implementsList = aClass.getImplementsList();
|
||||
if (isSuperParameterization(extendsList) || isSuperParameterization(implementsList)) {
|
||||
return;
|
||||
}
|
||||
if (ignoreClassWithParameterization && isSuperParametrization(aClass)) {
|
||||
return;
|
||||
}
|
||||
if (AnnotationUtil.isAnnotated(aClass, ignorableAnnotations)) {
|
||||
return;
|
||||
@@ -166,7 +162,7 @@ public class EmptyClassInspection extends BaseInspection {
|
||||
registerClassError(aClass, aClass);
|
||||
}
|
||||
|
||||
private boolean isSuperParameterization(PsiReferenceList extendsList) {
|
||||
private boolean hasTypeArguments(PsiReferenceList extendsList) {
|
||||
if (extendsList == null) {
|
||||
return false;
|
||||
}
|
||||
@@ -183,5 +179,26 @@ public class EmptyClassInspection extends BaseInspection {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isSuperParametrization(PsiClass aClass) {
|
||||
if (!(aClass instanceof PsiAnonymousClass)) {
|
||||
final PsiReferenceList extendsList = aClass.getExtendsList();
|
||||
final PsiReferenceList implementsList = aClass.getImplementsList();
|
||||
return hasTypeArguments(extendsList) || hasTypeArguments(implementsList);
|
||||
}
|
||||
final PsiAnonymousClass anonymousClass = (PsiAnonymousClass)aClass;
|
||||
final PsiJavaCodeReferenceElement reference = anonymousClass.getBaseClassReference();
|
||||
final PsiReferenceParameterList parameterList = reference.getParameterList();
|
||||
if (parameterList == null) {
|
||||
return false;
|
||||
}
|
||||
final PsiTypeElement[] elements = parameterList.getTypeParameterElements();
|
||||
for (PsiTypeElement element : elements) {
|
||||
if (element != null) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
package com.siyeh.igtest.classlayout.emptyclass;
|
||||
|
||||
public class EmptyClass {
|
||||
|
||||
{
|
||||
System.out.println("");
|
||||
final java.util.ArrayList<String> stringList = new java.util.ArrayList<String>() {};
|
||||
System.out.println("");
|
||||
}
|
||||
}
|
||||
class MyList extends java.util.ArrayList<String> {}
|
||||
|
||||
Reference in New Issue
Block a user