diff --git a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractedClassBuilder.java b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractedClassBuilder.java index 721e0127a806..b77198bdcfcb 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractedClassBuilder.java +++ b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractedClassBuilder.java @@ -18,7 +18,6 @@ package com.intellij.refactoring.extractclass; import com.intellij.codeInsight.generation.GenerateMembersUtil; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.codeStyle.JavaCodeStyleManager; @@ -26,7 +25,6 @@ import com.intellij.psi.codeStyle.VariableKind; import com.intellij.psi.tree.IElementType; import com.intellij.psi.util.PsiUtil; import com.intellij.refactoring.psi.MethodInheritanceUtils; -import com.intellij.util.Function; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NonNls; @@ -438,6 +436,12 @@ class ExtractedClassBuilder { } } } + else if (referent instanceof PsiClass) { + String qualifiedName = ((PsiClass)referent).getQualifiedName(); + if (qualifiedName != null) { + out.append(qualifiedName); + } + } else { visitElement(expression); } diff --git a/java/java-tests/testData/refactoring/extractClass/ensurePreservedQualifier/after/Extracted.java b/java/java-tests/testData/refactoring/extractClass/ensurePreservedQualifier/after/Extracted.java new file mode 100644 index 000000000000..d1716b8177ca --- /dev/null +++ b/java/java-tests/testData/refactoring/extractClass/ensurePreservedQualifier/after/Extracted.java @@ -0,0 +1,11 @@ +import java.util.Collections; +import java.util.List; + +public class Extracted { + public Extracted() { + } + + List foo() { + return Collections.emptyList(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/extractClass/ensurePreservedQualifier/after/Test.java b/java/java-tests/testData/refactoring/extractClass/ensurePreservedQualifier/after/Test.java new file mode 100644 index 000000000000..a06540728b92 --- /dev/null +++ b/java/java-tests/testData/refactoring/extractClass/ensurePreservedQualifier/after/Test.java @@ -0,0 +1,2 @@ +public class Test { +} diff --git a/java/java-tests/testData/refactoring/extractClass/ensurePreservedQualifier/before/Test.java b/java/java-tests/testData/refactoring/extractClass/ensurePreservedQualifier/before/Test.java new file mode 100644 index 000000000000..15a9c94db706 --- /dev/null +++ b/java/java-tests/testData/refactoring/extractClass/ensurePreservedQualifier/before/Test.java @@ -0,0 +1,9 @@ + +import java.util.Collections; +import java.util.List; + +public class Test { + List foo() { + return Collections.emptyList(); + } +} diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ExtractClassTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ExtractClassTest.java index 30f547aa7265..2f1ba3669ed9 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/ExtractClassTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/ExtractClassTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -160,6 +160,10 @@ public class ExtractClassTest extends MultiFileTestCase{ doTestInnerClass(); } + public void testEnsurePreservedQualifier() throws Exception { + doTestMethod(); + } + private void doTestFieldAndMethod(final String methodName) throws Exception { doTest((rootDir, rootAfter) -> { PsiClass aClass = myJavaFacade.findClass("Test", GlobalSearchScope.projectScope(myProject));