projects
/
idea
/
community.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
142ec83
)
IDEA-144571 (False positive inspection "Abstract class may be interface" on non-stati...
author
Bas Leijdekkers
<basleijdekkers@gmail.com>
Thu, 3 Sep 2015 07:56:00 +0000
(09:56 +0200)
committer
Bas Leijdekkers
<basleijdekkers@gmail.com>
Thu, 3 Sep 2015 07:57:18 +0000
(09:57 +0200)
plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspection.java
patch
|
blob
|
history
plugins/InspectionGadgets/test/com/siyeh/igtest/classlayout/ClassMayBeInterfaceInspection.java
[deleted file]
patch
|
blob
|
history
plugins/InspectionGadgets/testsrc/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspectionTest.java
patch
|
blob
|
history
diff --git
a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspection.java
b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspection.java
index ef76238402a661f1d64f9dd494c351d676e0cc57..4196bcb80785fe42901916ddd3f0feb72c07e5e3 100644
(file)
--- a/
plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspection.java
+++ b/
plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspection.java
@@
-29,6
+29,8
@@
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.ig.InspectionGadgetsFix;
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;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@
-210,6
+212,13
@@
public class ClassMayBeInterfaceInspection extends BaseInspection {
if (!mayBeInterface(aClass)) {
return;
}
if (!mayBeInterface(aClass)) {
return;
}
+ if (ClassUtils.isInnerClass(aClass)) {
+ final InnerClassReferenceVisitor visitor = new InnerClassReferenceVisitor(aClass);
+ aClass.accept(visitor);
+ if (!visitor.canInnerClassBeStatic()) {
+ return;
+ }
+ }
registerClassError(aClass);
}
registerClassError(aClass);
}
diff --git
a/plugins/InspectionGadgets/test/com/siyeh/igtest/classlayout/ClassMayBeInterfaceInspection.java
b/plugins/InspectionGadgets/test/com/siyeh/igtest/classlayout/ClassMayBeInterfaceInspection.java
deleted file mode 100644
(file)
index
ee7e0a7
..0000000
--- a/
plugins/InspectionGadgets/test/com/siyeh/igtest/classlayout/ClassMayBeInterfaceInspection.java
+++ /dev/null
@@
-1,8
+0,0 @@
-package com.siyeh.igtest.classlayout;
-
-public abstract class ClassMayBeInterfaceInspection
-{
- public static final int foo = 1;
-
- public abstract void bar();
-}
diff --git
a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspectionTest.java
b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspectionTest.java
index 1eca1dfa8e51887bf94d1f5c3927e4887e9918db..4e59a070e5b83bbb91b2944b7db86e6b674489e5 100644
(file)
--- a/
plugins/InspectionGadgets/testsrc/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspectionTest.java
+++ b/
plugins/InspectionGadgets/testsrc/com/siyeh/ig/classlayout/ClassMayBeInterfaceInspectionTest.java
@@
-46,6
+46,17
@@
public class ClassMayBeInterfaceInspectionTest extends LightInspectionTestCase {
" public class A {}\n" +
"}");
}
" 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();
@Override
protected InspectionProfileEntry getInspection() {
final ClassMayBeInterfaceInspection inspection = new ClassMayBeInterfaceInspection();