diff --git a/python/src/com/jetbrains/python/refactoring/introduce/parameter/PyIntroduceParameterHandler.java b/python/src/com/jetbrains/python/refactoring/introduce/parameter/PyIntroduceParameterHandler.java index 4e3ed79443c4..65d1114888da 100644 --- a/python/src/com/jetbrains/python/refactoring/introduce/parameter/PyIntroduceParameterHandler.java +++ b/python/src/com/jetbrains/python/refactoring/introduce/parameter/PyIntroduceParameterHandler.java @@ -11,6 +11,7 @@ import com.intellij.refactoring.introduce.inplace.InplaceVariableIntroducer; import com.intellij.refactoring.util.CommonRefactoringUtil; import com.jetbrains.python.PyBundle; import com.jetbrains.python.psi.*; +import com.jetbrains.python.psi.impl.PyPsiUtils; import com.jetbrains.python.refactoring.introduce.IntroduceHandler; import com.jetbrains.python.refactoring.introduce.IntroduceOperation; import com.jetbrains.python.refactoring.introduce.variable.VariableValidator; @@ -53,6 +54,12 @@ public class PyIntroduceParameterHandler extends IntroduceHandler { return null; } + @Nullable + @Override + protected PsiElement replaceExpression(PsiElement expression, PyExpression newExpression, IntroduceOperation operation) { + return PyPsiUtils.replaceExpression(expression, newExpression); + } + @Override protected boolean checkIntroduceContext(PsiFile file, Editor editor, PsiElement element) { if (element != null) { diff --git a/python/testData/refactoring/introduceParameter/lastStatement.after.py b/python/testData/refactoring/introduceParameter/lastStatement.after.py new file mode 100644 index 000000000000..08cefecbcc1e --- /dev/null +++ b/python/testData/refactoring/introduceParameter/lastStatement.after.py @@ -0,0 +1,2 @@ +def f(a=False): + a \ No newline at end of file diff --git a/python/testData/refactoring/introduceParameter/lastStatement.py b/python/testData/refactoring/introduceParameter/lastStatement.py new file mode 100644 index 000000000000..d54447ef34a9 --- /dev/null +++ b/python/testData/refactoring/introduceParameter/lastStatement.py @@ -0,0 +1,2 @@ +def f(): + False \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/refactoring/PyIntroduceParameterTest.java b/python/testSrc/com/jetbrains/python/refactoring/PyIntroduceParameterTest.java index b4ff5bb1e631..972b414ce359 100644 --- a/python/testSrc/com/jetbrains/python/refactoring/PyIntroduceParameterTest.java +++ b/python/testSrc/com/jetbrains/python/refactoring/PyIntroduceParameterTest.java @@ -27,6 +27,10 @@ public class PyIntroduceParameterTest extends PyIntroduceTestCase { doTest(); } + public void testLastStatement() { + doTest(); + } + @Override protected String getTestDataPath() { return super.getTestDataPath() + "/refactoring/introduceParameter";