diff --git a/python/src/com/jetbrains/python/inspections/PyMethodMayBeStaticInspection.java b/python/src/com/jetbrains/python/inspections/PyMethodMayBeStaticInspection.java index f1a044acfd56..b179c3e9a9b1 100644 --- a/python/src/com/jetbrains/python/inspections/PyMethodMayBeStaticInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyMethodMayBeStaticInspection.java @@ -57,8 +57,7 @@ public class PyMethodMayBeStaticInspection extends PyInspection { if (decoratorList != null) { for (PyDecorator decorator : decoratorList.getDecorators()) { final String decoratorName = decorator.getName(); - if (PyNames.STATICMETHOD.equals(decoratorName) || PyNames.CLASSMETHOD.equals(decoratorName) || - PyNames.ABSTRACTMETHOD.equals(decoratorName)) { + if (hasSpecificDecorator(decoratorName)) { return; } final Property property = containingClass.findPropertyByCallable(node); @@ -121,5 +120,9 @@ public class PyMethodMayBeStaticInspection extends PyInspection { } } + private static boolean hasSpecificDecorator(String decoratorName) { + return PyNames.STATICMETHOD.equals(decoratorName) || PyNames.CLASSMETHOD.equals(decoratorName) || + PyNames.ABSTRACTMETHOD.equals(decoratorName) || PyNames.ABSTRACTPROPERTY.equals(decoratorName); + } } } diff --git a/python/testData/inspections/PyMethodMayBeStaticInspection/abstractProperty.py b/python/testData/inspections/PyMethodMayBeStaticInspection/abstractProperty.py new file mode 100644 index 000000000000..437a67c3dd8b --- /dev/null +++ b/python/testData/inspections/PyMethodMayBeStaticInspection/abstractProperty.py @@ -0,0 +1,8 @@ +__author__ = 'ktisha' +import abc + + +class A(object): + @abc.abstractproperty + def foo(self): + print "" \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/inspections/PyMethodMayBeStaticInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyMethodMayBeStaticInspectionTest.java index a3e39dd9dddb..931cf9ef78ff 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyMethodMayBeStaticInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyMethodMayBeStaticInspectionTest.java @@ -55,6 +55,10 @@ public class PyMethodMayBeStaticInspectionTest extends PyTestCase { doTest(); } + public void testAbstractProperty() { + doTest(); + } + private void doTest() { myFixture.configureByFile("inspections/PyMethodMayBeStaticInspection/" + getTestName(true) + ".py"); myFixture.enableInspections(PyMethodMayBeStaticInspection.class);