IDEA-77607 Introduce refactoring looses annotation

This commit is contained in:
anna
2012-01-15 17:39:29 +01:00
parent 05192ef0f4
commit 90bdbd8764
4 changed files with 23 additions and 3 deletions

View File

@@ -139,7 +139,6 @@ public abstract class LocalToFieldHandler {
PsiElementFactory factory = JavaPsiFacade.getInstance(project).getElementFactory();
try {
PsiField field = factory.createFieldFromText(pattern.toString(), null);
field = (PsiField)CodeStyleManager.getInstance(project).reformat(field);
field.getTypeElement().replace(factory.createTypeElement(forcedType));
if (includeInitializer) {
@@ -148,6 +147,9 @@ public abstract class LocalToFieldHandler {
field.getInitializer().replace(initializer);
}
for (PsiAnnotation annotation : local.getModifierList().getAnnotations()) {
field.getModifierList().add(annotation.copy());
}
return field;
}
catch (IncorrectOperationException e) {

View File

@@ -0,0 +1,5 @@
class Test {
void foo() {
@Deprecated String foo;
}
}

View File

@@ -0,0 +1,5 @@
class Test {
void foo() {
@Deprecated String f<caret>o = "";
}
}

View File

@@ -1,14 +1,15 @@
package com.intellij.refactoring;
import com.intellij.JavaTestUtil;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
import com.intellij.idea.Bombed;
import com.intellij.psi.PsiPrimitiveType;
import com.intellij.psi.PsiType;
import com.intellij.refactoring.introduceField.BaseExpressionToFieldHandler;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.testFramework.LightCodeInsightTestCase;
import java.util.Calendar;
/**
* @author ven
*/
@@ -105,4 +106,11 @@ public class IntroduceFieldInSameClassTest extends LightCodeInsightTestCase {
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_CONSTRUCTOR, false);
checkResultByFile("/refactoring/introduceField/afterEnclosingAnonymous.java");
}
@Bombed(month = Calendar.JANUARY, day = 17)
public void testLocalVarAnnotations() throws Exception {
configureByFile("/refactoring/introduceField/beforeLocalVarAnnotations.java");
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_CONSTRUCTOR, false);
checkResultByFile("/refactoring/introduceField/afterLocalVarAnnotations.java");
}
}