mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-14 09:12:22 +07:00
IDEA-77607 Introduce refactoring looses annotation
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
class Test {
|
||||
void foo() {
|
||||
@Deprecated String foo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
class Test {
|
||||
void foo() {
|
||||
@Deprecated String f<caret>o = "";
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user