[java-refactoring] Replace constructor with builder: do not touch anonymous classes

Fixes IDEA-354668 "Replace constructor with builder" does not handle anonymous classes correctly

GitOrigin-RevId: f7d340c1fe3f82bbdaba04db35512faa8ace7289
This commit is contained in:
Tagir Valeev
2024-07-09 14:31:47 +02:00
committed by intellij-monorepo-bot
parent e72accd2a3
commit ca672acb50
5 changed files with 36 additions and 1 deletions

View File

@@ -85,7 +85,7 @@ public class ReplaceConstructorWithBuilderProcessor extends FixableUsagesRefacto
for (PsiReference reference : ReferencesSearch.search(constructor)) {
final PsiElement element = reference.getElement();
final PsiNewExpression newExpression = PsiTreeUtil.getParentOfType(element, PsiNewExpression.class);
if (newExpression != null && !PsiTreeUtil.isAncestor(builderClass, element, false)) {
if (newExpression != null && !PsiTreeUtil.isAncestor(builderClass, element, false) && newExpression.getAnonymousClass() == null) {
usages.add(new ReplaceConstructorWithSettersChainInfo(newExpression, StringUtil.getQualifiedName(myPackageName, myClassName), myParametersMap));
}
}