mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 23:39:39 +07:00
extract method: copy parameters annotations to the extracted method when applicable (IDEA-40617)
This commit is contained in:
@@ -1137,6 +1137,7 @@ public class ExtractMethodProcessor implements MatchProvider {
|
||||
for (VariableData data : myVariableDatum) {
|
||||
if (data.passAsParameter) {
|
||||
PsiParameter parm = myElementFactory.createParameter(data.name, data.type);
|
||||
copyParamAnnotations(parm);
|
||||
if (isFinal) {
|
||||
PsiUtil.setModifierProperty(parm, PsiModifier.FINAL, true);
|
||||
}
|
||||
@@ -1171,6 +1172,21 @@ public class ExtractMethodProcessor implements MatchProvider {
|
||||
return (PsiMethod)myStyleManager.reformat(newMethod);
|
||||
}
|
||||
|
||||
private void copyParamAnnotations(PsiParameter parm) {
|
||||
final PsiVariable variable = PsiResolveHelper.SERVICE.getInstance(myProject).resolveReferencedVariable(parm.getName(), myElements[0]);
|
||||
if (variable instanceof PsiParameter) {
|
||||
final PsiModifierList modifierList = variable.getModifierList();
|
||||
if (modifierList != null) {
|
||||
for (PsiAnnotation annotation : modifierList.getAnnotations()) {
|
||||
if (SuppressWarnings.class.getName().equals(annotation.getQualifiedName())) continue;
|
||||
final PsiModifierList parmModifierList = parm.getModifierList();
|
||||
LOG.assertTrue(parmModifierList != null, parm);
|
||||
parmModifierList.add(annotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected PsiMethodCallExpression generateMethodCall(PsiExpression instanceQualifier, final boolean generateArgs) throws IncorrectOperationException {
|
||||
@NonNls StringBuilder buffer = new StringBuilder();
|
||||
|
||||
Reference in New Issue
Block a user