From fe2efca0ca841fb48ebf89c14a27aa4d7ab64744 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 14 Nov 2011 16:21:44 +0100 Subject: [PATCH] an empty return statement does not return a value (PY-4502) --- .../python/inspections/PyPropertyDefinitionInspection.java | 3 ++- .../PyPropertyDefinitionInspection26/src/prop_test.py | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/python/src/com/jetbrains/python/inspections/PyPropertyDefinitionInspection.java b/python/src/com/jetbrains/python/inspections/PyPropertyDefinitionInspection.java index 3a2163f9a5dc..5caab4dda612 100644 --- a/python/src/com/jetbrains/python/inspections/PyPropertyDefinitionInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyPropertyDefinitionInspection.java @@ -274,7 +274,8 @@ public class PyPropertyDefinitionInspection extends PyInspection { final PsiElement[] returnStatements = PsiTreeUtil.collectElements(callable, new PsiElementFilter() { @Override public boolean isAccepted(PsiElement element) { - return (element instanceof PyReturnStatement) || (element instanceof PyYieldExpression); + return (element instanceof PyReturnStatement && ((PyReturnStatement) element).getExpression() != null) || + (element instanceof PyYieldExpression); } }); hasReturns = returnStatements.length > 0; diff --git a/python/testData/inspections/PyPropertyDefinitionInspection26/src/prop_test.py b/python/testData/inspections/PyPropertyDefinitionInspection26/src/prop_test.py index 5b6fe8ab0bd9..58db4876912f 100644 --- a/python/testData/inspections/PyPropertyDefinitionInspection26/src/prop_test.py +++ b/python/testData/inspections/PyPropertyDefinitionInspection26/src/prop_test.py @@ -46,4 +46,11 @@ class A(object): def futuroo(self): raise NotImplementedError("Override!") # ok though no return + @property + def xoo(self): + return self._x + @xoo.setter + def xoo(self, x): + self._x = x + return