From 2f4fddec5a17a95fe5a0baa708010843ee5cb946 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 29 Oct 2015 17:17:33 +0100 Subject: [PATCH] introduce constant: add constant to destination class (IDEA-146787) --- .../introduceField/BaseExpressionToFieldHandler.java | 9 +++------ .../introduceConstant/ContainingClass.java | 10 ++++++++++ .../introduceConstant/ContainingClass_after.java | 12 ++++++++++++ .../intellij/refactoring/IntroduceConstantTest.java | 8 ++++++++ 4 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 java/java-tests/testData/refactoring/introduceConstant/ContainingClass.java create mode 100644 java/java-tests/testData/refactoring/introduceConstant/ContainingClass_after.java diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java index 2f940fc2575a..5f6396818e7e 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java @@ -894,13 +894,10 @@ public abstract class BaseExpressionToFieldHandler extends IntroduceHandlerBase return field; } else { - if (forwardReference != null ) { - return forwardReference.getParent() == destClass ? - (PsiField)destClass.addAfter(psiField, forwardReference) : - (PsiField)forwardReference.getParent().addAfter(psiField, forwardReference); - } else { - return (PsiField)destClass.add(psiField); + if (forwardReference != null &&forwardReference.getParent() == destClass) { + return (PsiField)destClass.addAfter(psiField, forwardReference); } + return (PsiField)destClass.add(psiField); } } diff --git a/java/java-tests/testData/refactoring/introduceConstant/ContainingClass.java b/java/java-tests/testData/refactoring/introduceConstant/ContainingClass.java new file mode 100644 index 000000000000..e26888594af9 --- /dev/null +++ b/java/java-tests/testData/refactoring/introduceConstant/ContainingClass.java @@ -0,0 +1,10 @@ +class Test { + + public String getString() { + return StaticInner.STRING; + } + + static class StaticInner { + public static String STRING = "aaaa"; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/introduceConstant/ContainingClass_after.java b/java/java-tests/testData/refactoring/introduceConstant/ContainingClass_after.java new file mode 100644 index 000000000000..57eab30c179b --- /dev/null +++ b/java/java-tests/testData/refactoring/introduceConstant/ContainingClass_after.java @@ -0,0 +1,12 @@ +class Test { + + public static final String xxx = StaticInner.STRING; + + public String getString() { + return xxx; + } + + static class StaticInner { + public static String STRING = "aaaa"; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceConstantTest.java b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceConstantTest.java index 4e261d397f68..4baa4bdb3ca9 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceConstantTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceConstantTest.java @@ -116,11 +116,19 @@ public class IntroduceConstantTest extends LightCodeInsightTestCase { } public void testComments() throws Exception { + doTestExpr(); + } + + private void doTestExpr() throws Exception { configureByFile(BASE_PATH + getTestName(false) + ".java"); checkDefaultType(CommonClassNames.JAVA_LANG_STRING); checkResultByFile(BASE_PATH + getTestName(false) + "_after.java"); } + public void testContainingClass() throws Exception { + doTestExpr(); + } + public void testEscalateVisibility() throws Exception { configureByFile(BASE_PATH + getTestName(false) + ".java"); final PsiClass[] classes = ((PsiJavaFile)getFile()).getClasses();