fixed PY-9365 Make function from method: leads to unresolved attribute reference for method usages in class

This commit is contained in:
Ekaterina Tuzova
2013-09-23 20:56:32 +04:00
parent 669188513a
commit 6e563e5380
4 changed files with 19 additions and 1 deletions
@@ -11,6 +11,7 @@ import com.intellij.psi.PsiReference;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.usageView.UsageInfo;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.PyNames;
import com.jetbrains.python.codeInsight.imports.AddImportHelper;
import com.jetbrains.python.inspections.PyUnresolvedReferencesInspection;
import com.jetbrains.python.psi.*;
@@ -74,7 +75,7 @@ public class PyMakeFunctionFromMethodQuickFix implements LocalQuickFix {
@NotNull final PsiFile usageFile, boolean addImport) {
final PyExpression qualifier = element.getQualifier();
if (qualifier == null) return;
if (qualifier.getText().equals(PyNames.CANONICAL_SELF)) PyUtil.removeQualifier(element);
if (qualifier instanceof PyCallExpression) { // remove qualifier A().m()
if (addImport)
AddImportHelper.addImport((PsiNamedElement)finalElement, usageFile, element);
@@ -0,0 +1,6 @@
class A():
def method(self):
self.method2()
def metho<caret>d2(self):
print 1
@@ -0,0 +1,7 @@
class A():
def method(self):
method2()
def method2():
print 1
@@ -55,4 +55,8 @@ public class PyMakeFunctionFromMethodQuickFixTest extends PyQuickFixTestCase {
public void testUsageImport2() {
doMultifilesTest(PyMethodMayBeStaticInspection.class, PyBundle.message("QFIX.NAME.make.function"), new String[]{"test.py"});
}
public void testUsageSelf() {
doInspectionTest(PyMethodMayBeStaticInspection.class, PyBundle.message("QFIX.NAME.make.function"));
}
}