import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.ig.InspectionGadgetsFix;
+import com.siyeh.ig.memory.InnerClassReferenceVisitor;
+import com.siyeh.ig.psiutils.ClassUtils;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
if (!mayBeInterface(aClass)) {
return;
}
+ if (ClassUtils.isInnerClass(aClass)) {
+ final InnerClassReferenceVisitor visitor = new InnerClassReferenceVisitor(aClass);
+ aClass.accept(visitor);
+ if (!visitor.canInnerClassBeStatic()) {
+ return;
+ }
+ }
registerClassError(aClass);
}
" public class A {}\n" +
"}");
}
+
+ public void testMethodCantBeDefault() {
+ doTest("class Issue {\n" +
+ " public abstract class Inner {\n" +
+ " public Issue getParent() {\n" +
+ " return Issue.this;\n" +
+ " }\n" +
+ " }\n" +
+ "}");
+ }
+
@Override
protected InspectionProfileEntry getInspection() {
final ClassMayBeInterfaceInspection inspection = new ClassMayBeInterfaceInspection();