From 58e9f5ffd84921e126149b2b2d1ca55454a27dc7 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 16 Jul 2013 12:18:53 +0200 Subject: [PATCH] change signature: reorder params with javadoc without * (IDEA-110332) --- .../intellij/refactoring/util/RefactoringUtil.java | 2 +- .../refactoring/changeSignature/ParamJavadoc0.java | 14 ++++++++++++++ .../changeSignature/ParamJavadoc0_after.java | 14 ++++++++++++++ .../intellij/refactoring/ChangeSignatureTest.java | 7 +++++++ 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0.java create mode 100644 java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0_after.java diff --git a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java index ca905b0f252d..abf333ce4f1e 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java @@ -1137,7 +1137,7 @@ public class RefactoringUtil { paramTag.delete(); } for (PsiDocTag psiDocTag : newTags) { - anchor = docComment.addAfter(psiDocTag, anchor); + anchor = anchor != null && anchor.isValid() ? docComment.addAfter(psiDocTag, anchor) : docComment.add(psiDocTag); } } diff --git a/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0.java b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0.java new file mode 100644 index 000000000000..4ef84282282b --- /dev/null +++ b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0.java @@ -0,0 +1,14 @@ +class X { + + /** + * Has a method called {@link #mymethod(int, int)}. + */ + public class TestRefactorLink { + /** + @return nothing + @param y yparam + @param z zparam + */ + public void mymethod(int y, int z) { } + } +} diff --git a/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0_after.java b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0_after.java new file mode 100644 index 000000000000..9b5380692526 --- /dev/null +++ b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc0_after.java @@ -0,0 +1,14 @@ +class X { + + /** + * Has a method called {@link #mymethod(int, int)}. + */ + public class TestRefactorLink { + /** + @return nothing + * @param z zparam + * @param y yparam + */ + public void mymethod(int z, int y) { } + } +} diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java index 6519401d4092..facd46ed342a 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java @@ -155,6 +155,13 @@ public class ChangeSignatureTest extends LightRefactoringTestCase { }, false); } + public void testParamJavadoc0() throws Exception { + doTest(null, new ParameterInfoImpl[] { + new ParameterInfoImpl(1, "z", PsiType.INT), + new ParameterInfoImpl(0, "y", PsiType.INT) + }, false); + } + public void testParamJavadoc1() throws Exception { doTest(null, new ParameterInfoImpl[]{ new ParameterInfoImpl(0, "z", PsiType.BOOLEAN)