mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 04:51:24 +07:00
Java: rename method correctly if the name conflicts with javadoc reference (IDEA-355643)
GitOrigin-RevId: c1ae53780e8ec3a56834dd32ecd9bc19cfd222fb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
eb3403c62f
commit
c40e983f98
@@ -335,13 +335,11 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo
|
||||
((PsiJavaCodeReferenceElement)ref).bindToElement(containingClass);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (containingClass != null && !PsiTreeUtil.isAncestor(containingClass, PsiDocMethodOrFieldRef.this, true)) {
|
||||
PsiDocComment fromText = JavaPsiFacade.getElementFactory(containingClass.getProject())
|
||||
.createDocCommentFromText("/**{@link " + containingClass.getQualifiedName() + "#" + newName + "}*/");
|
||||
PsiDocMethodOrFieldRef methodOrFieldRefFromText = PsiTreeUtil.findChildOfType(fromText, PsiDocMethodOrFieldRef.class);
|
||||
addAfter(Objects.requireNonNull(methodOrFieldRefFromText).getFirstChild(), null);
|
||||
}
|
||||
else if (containingClass != null && PsiTreeUtil.getParentOfType(PsiDocMethodOrFieldRef.this, PsiClass.class) != containingClass) {
|
||||
PsiDocComment fromText = JavaPsiFacade.getElementFactory(containingClass.getProject())
|
||||
.createDocCommentFromText("/**{@link " + containingClass.getQualifiedName() + "#" + newName + "}*/");
|
||||
PsiDocMethodOrFieldRef methodOrFieldRefFromText = PsiTreeUtil.findChildOfType(fromText, PsiDocMethodOrFieldRef.class);
|
||||
addAfter(Objects.requireNonNull(methodOrFieldRefFromText).getFirstChild(), null);
|
||||
}
|
||||
|
||||
if (hasSignature || !name.equals(newName)) {
|
||||
|
||||
@@ -671,11 +671,12 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements
|
||||
getTreeParent().replaceChildInternal(this, (TreeElement)ref.getNode());
|
||||
return ref;
|
||||
}
|
||||
else if ((element instanceof PsiField || element instanceof PsiMethod) && ((PsiMember) element).hasModifierProperty(PsiModifier.STATIC)) {
|
||||
else if ((element instanceof PsiField || element instanceof PsiMethod)) {
|
||||
PsiMember member = (PsiMember) element;
|
||||
PsiClass psiClass = member.getContainingClass();
|
||||
if (psiClass == null) throw new IncorrectOperationException();
|
||||
String qName = psiClass.getQualifiedName() + "." + member.getName();
|
||||
boolean isStatic = ((PsiMember)element).hasModifierProperty(PsiModifier.STATIC);
|
||||
String qName = psiClass.getQualifiedName() + (isStatic ? "." : ".this.") + member.getName();
|
||||
PsiExpression ref = parserFacade.createExpressionFromText(qName, this);
|
||||
getTreeParent().replaceChildInternal(this, (TreeElement)ref.getNode());
|
||||
return ref;
|
||||
|
||||
Reference in New Issue
Block a user